程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> Oracle數據庫 >> Oracle教程 >> 未開啟HugePagesORACLEsession劇增時引起的一次悲劇

未開啟HugePagesORACLEsession劇增時引起的一次悲劇

編輯:Oracle教程

未開啟HugePagesORACLEsession劇增時引起的一次悲劇


故障簡單描述一下:LINUX系統未開啟HugePages,主機內存將近300G,SWAP是32G。ORACLE 的 SGA_MAX_SIZE設置是主機內存的將近80%,SGA_TARGET設置是主機內在的將近60%,正常情況下數據庫session大約在將近500。故障當天業務有變化,session數增加了一倍,達到上1000個,內存緊張,用到了SWAP空間。

解決:找時間關數據庫,重新配置HugePages,重啟數據庫後觀察,內存消耗較少,與未開啟HugePages之前是數量級對比。Hugepage可以減輕cpu的負擔,還可以減少系統內存的消耗;一般情況下建議linux的數據庫系統配置Hugepage(特別是內存大、SESSION多).

會話數600多時
 

[oracle@* ~]$ ps -ef|grep LOCAL| wc -l
613
[oracle@* ~]$ ps -ef|grep LOCAL| wc -l
647
[oracle@ ~]$ free -m
total used free shared buffers cached
Mem: 257927 255079 2847 0 64 148001
-/+ buffers/cache: 107013 150914
Swap: 31999 13738 18261
[oracle@ ~]$ cat /proc/meminfo |grep PageT
PageTables: 94353044 kB
[oracle@ ~]$ free -m
total used free shared buffers cached
Mem: 257927 255182 2745 0 64 147743
-/+ buffers/cache: 107373 150553
Swap: 31999 13981 18018
[oracle@ ~]$ ps -ef|grep LOCAL| wc -l
654
[oracle@~]$ cat /proc/meminfo |grep PageT
PageTables: 95038204 kB


會話數上1000時,
 

[oracle@ ~]$ cat /proc/meminfo |grep PageT
PageTables: 110855888 kB
[oracle@ ~]$ ps -ef|grep LOCAL| wc -l
1016

補充下配置HugePages後的使用情況

[oracle@ ~]$ cat /proc/meminfo |grep Page
PageTables: 164464 kB
[oracle@~]$ ps -ef|grep LOCAL|wc -l
429

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved