近日在優化Oracle的時候,遇到了oracle的SGA大小遠遠大於Linux系統共享內存的最大值,以至於當我用ipcs命令查看的時候,oracle的SGA區被分成了10個段,這大大影響的oracle的反應速度。後來經過查閱資料,得出一下簡便的修改共享內存的方法,和大家共享。
一般的以為修改系統共享內存需要修改內核程序,然後make,很麻煩。其實,只要在rc.local的加入一點東西,就可以免去修改內核的麻煩。修改方法如下:修改/etc/rc.d/rc.local文件。
在文件的前面注釋的後面加入以下行:
#修改內核共享內存大小;
echo 134217728 > /proc/sys/kernel/shmmax;
#說明:這裡的值為內存的一半;
#如果系統內存是256M,則值為134217728 ;
#如果系統內存是512M,則值為268435456;
修改完成以後,重起機器就搞定。
linxu默認情況下的共享內存大小好像是32M,我的機器修改前用ipcs查看,oracle分段是10個,修改以後,只有1個。oracle在一個內存分段內,使得數據交換的速度有所提高。