修改 /etc/sysctl.conf 文件之後,執行命令 # sysctl -p 立刻生效
1、kernel.shmmax
用於定義單個共享內存段的最大值
shmmax 設置應該足夠大,能在一個共享內存段下容納下整個的SGA ,設置的過低可能會
導致需要創建多個共享內存段,這樣可能導致系統性能的下降。
2、kernel.shmall
控制共享內存頁數。Linux 共享內存頁大小爲4KB, 共享內存段的大小都是共享內存頁大小的整數倍。
例如:一個共享內存段的最大大小是16G,那麼需要共享內存頁數是 16GB/4KB=16777216KB/4KB=4194304 (頁),也就是64Bit 系統下16GB 物理內存,設置 kernel.shmall = 4194304 才符合要求(幾乎是原來設置2097152
的兩倍)。這時可以將shmmax 參數調整到 16G 了,同時可以修改SGA_MAX_SIZE 和SGA_TARGET 爲 12G(您想設置的SGA 最大大小,當然也可以是2G~14G 等,還要協調PGA參數及OS等其他內存使用,不能設置太滿,比如16G)。
3、kernel.shmmni
是共享內存段的最大數量(注意這個參數不是 shmmin,是shmmni, shmmin 表示內存段最小大小 ) 。shmmni 缺省值4096 ,一般肯定是夠用了。
參考:http://blog.zol.com.cn/1084/article_1083499.html
4、kernel.sem
是semaphores的縮寫,
查看當前設置
# cat /proc/sys/kernel/sem
250 32000 100 128
4個數據分別對應
SEMMSL 250 表示每個信號集中的最大信號量數目
SEMMNS 32000 表示系統範圍內的最大信號量總數目
SEMOPM 100 表示每個信號發生時的最大系統操作數目
SEMMNI 128 表示系統範圍內的最大信號集總數目
如當oracle DB初始化參數文件中PROCESSES參數設置較大時,需要調整SEMAPHORES設置
SEMMSL,應該設置爲服務器中各個實例中最大的PROCESSES參數+10,例如,當最大的PROCESSES參數爲5000時,SEMMSL應
設置爲5010。
SEMMNS,參數應設置爲SEMMSL*SEMMNI,接上例SEMMSL爲5010,SEMMNS參數應爲(5010*128)=641280。
SEMOPM,參數應設置與SEMMSL參數相同,接上例此處應設置爲5010
更改當前SEMAPHORES參數設置:
# echo "5010 641280 5010 128" > /proc/sys/kernel/sem
# cat /proc/sys/kernel/sem
5010 641280 5010 128
如需啓動時自動應用,可在/etc/sysctl.conf增加:
kernel.sem =5010 641280 5010 128
參考:http://www.cnscn.org/htm_data/20/0905/47739.html
5、fs.file-max
可以分配的文件句柄的最大數目(文件系統最大可打開文件數)
6、net.ipv4.ip_local_port_range
表示用於向外連接的端口範圍。缺省情況下很小:32768到61000,改爲1024到65000。
7、net.core.rmem_default和net.core.rmem_max
默認和最大的TCP數據接收緩衝
8、net.core.wmem_default和net.core.wmem_max
默認和最大的TCP數據發送緩衝