LinuxÉèÖÃÄں˲ÎÊýµÄ·½·¨
1 Äں˲ÎÊýµÄ²é¿´·½·¨
ʹÓá°sysctl -a¡±ÃüÁî¿ÉÒԲ鿴ËùÓÐÕýÔÚʹÓõÄÄں˲ÎÊý¡£Äں˲ÎÊý±È½Ï¶à£¨Ò»°ã¶à´ï500Ï£¬°´ÕÕǰ׺Ö÷Òª·ÖΪÒÔϼ¸´óÀࣺnet.ipv4¡¢net.ipv6¡¢net.core¡¢vm¡¢fs¡¢dev.parport¡¢dev.cdrom ¡¢dev.raid¡¢kernelµÈµÈ¡£ÏàͬµÄlinux£¬°²×°µÄ×é¼þºÍʹÓõķ½Ê½²»Ò»Ñù£¬ÕýÔÚʹÓõÄÄں˲ÎÊýÊDz»Ò»ÑùµÄ¡£
ËùÓеÄÄں˲ÎÊýµÄ˵Ã÷ÎĵµÊǷŵ½/usr/src/linux/Documentation/sysctlÖеģ¬Èç¹ûÏëÖªµÀ¶ÔÄں˲ÎÊýµÄ˵Ã÷£¬¿ÉÒÔµ½¸ÃĿ¼Ï²鿴ÏàÓ¦µÄ˵Ã÷Îĵµ¡£
2 Äں˲ÎÊýµÄµÄÉèÖ÷½·¨
ÓÉÓÚLinuxµÄÄں˲ÎÊýÐÅÏ¢¶¼´æÔÚÄÚ´æÖУ¬Òò´Ë¿ÉÒÔͨ¹ýÃüÁîÖ±½ÓÐ޸쬲¢ÇÒÐ޸ĺóÖ±½ÓÉúЧ¡£Ò²¿ÉÒÔͨ¹ýÎļþµÄ·½Ê½½øÐÐÉèÖá£ÏÂÃæ¾Í½éÉÜÕâÁ½ÖÖÐ޸ķ½·¨¡£
2.1 ÃüÁîÉèÖõķ½Ê½
¿ÉÒÔÓÃÁ½ÖÖ·½·¨ÊµÏÖ¡£
1¡¢Ê¹Óá°sysctl -w ²ÎÊýÃû=Öµ¡±µÄ·½Ê½
¼ÙÉèÎÒÃǰÑnet.ipv4.ip_forwardµÄÖµÐÞ¸ÄΪ1£¬Ê¹ÓÃÃüÁî¡°sysctl -w net.ipv4.ip_forward=1¡±¡£
2¡¢ÐÞ¸ÄÄں˲ÎÊý¶ÔÓ¦µÄprocÎļþ
Äں˲ÎÊýλÓÚ/proc/sys/֮ϣ¬²ÎÊýÃû³ÆÊÇÒÔÎļþËùÔڵķ¾¶£¬²¢½«¡°/¡±ÒÔ¡°.¡±À´È¡´ú¡£¾ÙÀýÀ´Ëµ£¬/proc/sys/net/ip_forwardµÄ²ÎÊýÃû³ÆÎªnet.ipv4.ip_forward¡£
ͬÑù°Ñnet.ipv4.ip_forwardµÄÖµÐÞ¸ÄΪ1£¬Ê¹ÓÃÃüÁî¡°echo ¡°1¡± > /proc/sys/net/ipv4/ip_forward¡±¡£
×¢Ò⣬ÕâÀïprocÎļþ¸úÆÕͨµÄÎļþ²»Ò»Ñù¡£Ò»°ãÒ»¸öÎļþÓÃechoдÈëÄÚÈÝÖ®ºó£¬»á±ä³ÉÒ»¸öÎı¾Îļþ£¬µ«echoÐÞ¸ÄprocÎļþÖ®ºó»¹ÊǸö¿ÕÎļþ¡£
2.2 ÎļþÉèÖõķ½Ê½
¸ü¸ÄµÄÄں˲ÎÊýĬÈϱ£´æÔÚ/etc/sysctl.confÎļþÖС£Ð޸ĵÄʱºò¿ÉÒÔÖ±½ÓÓÃvi±à¼sysctl.confÎļþ£¬Ôö¼ÓÒªÐ޸ĵÄÄں˲ÎÊýÄÚÈÝ£¬Ð޸ĵĸñʽΪ£º²ÎÊýÃû=Öµ¡£ÀýÈ磬°Ñnet.ipv4.ip_forwardµÄÖµÐÞ¸ÄΪ1£¬ÔÚsysctl.confÖÐÔö¼ÓÏÂÃæÕâÐÐÄÚÈÝ£º
net.ipv4.ip_forward=1
ÎļþÐ޸ĺú󣬽øÐб£´æ¡£È»ºóʹÓá°sysctl -p ÅäÖÃÎļþÃû¡±À´Ê¹ÅäÖÃÉúЧ£¬Èç¹ûÅäÖÃÎļþÊÇĬÈϵģ¬¿ÉÒÔ²»ÓÃÊäÅäÖÃÎļþÃû£¬¼´Ê¹Óá°sysctl -p¡±¡£
ͨ¹ýÎļþÉèÖõķ½Ê½Ð޸ĵÄÄں˲ÎÊýÊÇÔÚÏµÍ³ÖØÆôºó½«Ê§Ð§£¨ÎÒ֮ǰÈÏΪÐ޸ĺóµÄÄں˲ÎÊý·ÅÔÚÎļþÖУ¬ÏµÍ³Æô¶¯µÄʱºò»á¶ÁÕâ¸öÎļþ£¬ÖØÆôºóÉèÖÃÓ¦¸Ã²»»áʧЧ¡£µ«¾¹ýÑéÖ¤£¬Ò»°ã»áʧЧ£¬µ«Èç¹û°Ñ½«Ä¬ÈϵÄboot.sysctl·þÎñ´ò¿ª£¬ËùÒÔϵͳÆô¶¯Ê±¾Í»áÖ´ÐÐÕâ¸öÎļþµÄÉèÖã©¡£°ÑÎÒÃÇÐ޸IJÎÊýµÄÃüÁîдÈëÆô¶¯Ö´Ðнű¾ÎļþÀï/etc/rc.local£¬ÕâÑùÏµÍ³ÖØÆôºóÅäÖþͲ»»áʧЧ¡£
Îļþ·½Ê½µÄºÃ´¦ÊÇÄں˲ÎÊýÉèÖõÄÖµ¿ÉÒÔÓÃÎļþ±£ÁôÏÂÀ´£¬µ÷Óá°sysctl -p¡±¿ÉÒÔʹÎÄ
¼þÖеÄËùÓÐÅäÖõÄÖµÂíÉÏÉúЧ¡£
3 Äں˲ÎÊýÉèÖõÄʵ¼ÊÓ¦ÓÃ
3.1 ÎļþºÍÍøÂçÀà²ÎÊý
ÎÒÃÇÒ»°ãÐèÒª¹Ø×¢µÄÎļþÀàµÄÄں˲ÎÊýÓÐfs.file-maxºÍfile-nr¡£fs.file-maxÊÇÒ»¸öϵͳÄÜÉêÇëµ½µÄ×î´óÎļþ¾ä±úÊý£»file-nrÊÇÖ»¶ÁµÄ£¬ËüÓëfile-maxÏà¹Ø£¬½öÓÃÓÚÏÔʾÒÑ·ÖÅäÎļþ¾ä±úµÄÊýÄ¿¡¢ÒÑʹÓÃÎļþ¾ä±úµÄÊýÄ¿¡¢Îļþ¾ä±úµÄ×î´óÊýÄ¿£¬ÈçÏÂͼËùʾ¡£ suse11lwb:/home/zxin10/steven # sysctl -a|grep fs.file-nr fs.file-nr = 5152 0 6815744 ¶ÔÓÚÎļþ¾ä±úµÄÎÊÌ⣬¶ÔÓÚÒª´¦ÀíºÜ¶àÎļþµÄ½Ó¿Ú»úҪעÒ⣬ϵͳµÄÎļþ¾ä±úÊÇ·ñ¹»Óá£ÒÔǰ¶ÌÐÅÍø¹ÜÏîÄ¿¾Í³öÏÖ¹ýÎļþ¾ä±úµÄÎÊÌ⣬ÏÖ³¡ÊÇSolarisϵͳ£¬¶ø¼ÒÀïµÄ²âÊÔÊÇÔÚHP-UX½øÐУ¬ÓÉÓÚSolarisĬÈÏÖ§³ÖµÄÎļþ¾ä±ú±ÈHP-UXÉٺܶࣨÈçÏÂͼËùʾ£©£¬¼ÒÀï²âÊÔûÓз¢ÏÖ£¬´Ó¶øµ¼Ö¹ÊÕÏй©µ½ÏÖ³¡¡£ ²Ù×÷ϵͳÃû³Æ Solaris AIX Suse Linux HP-UX NT ĬÈÏϵͳ¾ä±úÊý 256 2000 1024 2000 10000 ÏÂÃæ½éÉÜÐÞ¸ÄÎļþ¾ä±úÏÞÖÆµÄ·½·¨¡£ 1¡¢°´ÕÕ×î´ó´ò¿ªÎļþÊýÁ¿µÄÐèÇóÉèÖÃÄں˲ÎÊý£¬²¢ÇÒͨ¹ý¼ì²é/proc/sys/fs/file-maxÎļþÀ´È·ÈÏ×î´ó´ò¿ªÎļþÊýÒѾ±»ÕýÈ·ÉèÖá£
# cat /proc/sys/fs/file-max
Èç¹ûÉèÖÃֵ̫С£¬ ÐÞ¸ÄÎļþ/etc/sysctl.confµÄ±äÁ¿µ½ºÏÊʵÄÖµ¡£
2¡¢ÔÚ/etc/security/limits.confÎļþÖÐÉèÖÃ×î´ó´ò¿ªÎļþÊý£¬ ÏÂÃæÊÇÒ»ÐÐÌáʾ£º #
ÕâÐÐÉèÖÃÁËÿ¸öÓû§µÄĬÈÏ´ò¿ªÎļþÊýΪ2048¡£ ×¢Òâ\ÏîÓÐÁ½¸ö¿ÉÄܵÄÏÞÖÆ´ëÊ©¡£¾ÍÊÇ
3¡¢Ê¹Óá°ulimit -n 2048¡±À´ÏÞÖÆÓû§µÄ×î´óÎļþ´ò¿ªÊýΪ2048¡£ulimit -n¶Ô·ÇrootÓû§ÓÐÏÞÖÆ£¬¶ÔrootÓû§ÔòûÓÐÏÞÖÆ£¬ÄÜÏíÊܵ½Õû¸öϵͳ¿ÉÒÔͬʱ´ò¿ªµÄÎļþÊýµÄºÃ´¦¡£
ÉèÖþä±úÊýÁ¿ºó£¬ÏµÍ³ÖØÆôºó£¬ÓÖ»á»Ö¸´Ä¬ÈÏÖµ¡£Èç¹ûÏëÓÀ¾Ã±£´æÏÂÀ´£¬¿ÉÒÔÐÞ¸Ä.bash_profileÎļþ£¬°ÑÉÏÃæÃüÁî¼Óµ½×îºó¡£
3.2 ƽ̨Äں˲ÎÊý
ƽ̨ÔÚ°²×°µÄ¹ý³ÌÖУ¬»áµ÷ÓÃÒ»¸öרÃŵÄshellÀ´¸ºÔðϵͳÄں˲ÎÊýµÄÉèÖá£Õâ¸öshellÊÇcheckkernel£¬ÔÚÆ½Ì¨ÉÏ/home/zxin10/binĿ¼ÏÂÄÜÕÒµ½¡£¶ÔÓÚLinux£¬ÐèÒª¹Ø×¢µÄÊÇÆäÖеÄcheck_linux_kernelº¯Êý¡£ÏÂÃæÊÇÉæ¼°µ½ÉèÖÃÄں˲ÎÊýµÄÖ÷Òª´úÂ룬³ý¿ªÉèÖÃÁËÆ½Ì¨Ïà¹ØµÄһЩÄں˲ÎÊý£¬ÁíÍâÕë¶ÔOracleÊý¾Ý¿âÒ²½øÐÐÁËÏàÓ¦µÄÉèÖ㬴ó¼Ò¿ÉÒÔÒ»Æð·ÖÎöһϡ£
##### ÏûÏ¢¶ÓÁеÄÉèÖà if ! grep -q \ then echo \$ShmMaxSizecfg > /proc/sys/kernel/shmmax\ fi
if ! grep -q \ then
echo \msgmni\ fi
if ! grep -q \ then
echo \msgmnb\ fi
if ! grep -q \ then
echo \msgmax\ fi
########## Õë¶ÔOralceµÄһЩÄں˲ÎÊýµÄÉèÖà ## 2007.01.10 add for oracle10g if [ \ then
if ! grep -q \ then
echo \32000 100 128\\\sem\
echo \65000\\\/ip_local_port_range\ echo \rmem_max\ echo \rmem_default\ echo \ >/proc/sys/net/core/wmem_max\ echo \ >/proc/sys/net/core/wmem_default\ fi fi
ÏÂÃæÊÇÍøÉÏһƪredhat linux as 4.7 ¾²Ä¬°²×° oracle 10gµÄ¹ý³ÌÖÐÉæ¼°µ½Äں˲ÎÊýÉèÖõIJ¿·Ö£¬¸úÉÏÃæÆ½Ì¨ÉèÖõÄÄÚÈÝ´óÖÂÏàͬ¡£ ¼ì²éÄں˲ÎÊý ÕýÔÚ¼ì²é semmsl=250; ÒÑ·¢ÏÖ semmsl=250¡£ ͨ¹ý ÕýÔÚ¼ì²é semmns=32000; ÒÑ·¢ÏÖ semmns=32000¡£ ͨ¹ý ÕýÔÚ¼ì²é semopm=100; ÒÑ·¢ÏÖ semopm=100¡£ ͨ¹ý ÕýÔÚ¼ì²é semmni=128; ÒÑ·¢ÏÖ semmni=128¡£ ͨ¹ý ÕýÔÚ¼ì²é shmmax=536870912; ÒÑ·¢ÏÖ shmmax=2147483648¡£ ͨ¹ý ÕýÔÚ¼ì²é shmmni=4096; ÒÑ·¢ÏÖ shmmni=4096¡£ ͨ¹ý ÕýÔÚ¼ì²é shmall=2097152; ÒÑ·¢ÏÖ shmall=2097152¡£ ͨ¹ý ÕýÔÚ¼ì²é file-max=65536; ÒÑ·¢ÏÖ file-max=65536¡£ ͨ¹ý ÕýÔÚ¼ì²é VERSION=2.6.9; ÒÑ·¢ÏÖ VERSION=2.6.9-78.EL¡£ ͨ¹ý ÕýÔÚ¼ì²é ip_local_port_range=1024 - 65000; ÒÑ·¢ÏÖ ip_local_port_range=1024 - 65000¡£ ͨ¹ý ÕýÔÚ¼ì²é rmem_default=262144; ÒÑ·¢ÏÖ rmem_default=1048576¡£ ͨ¹ý ÕýÔÚ¼ì²é rmem_max=262144; ÒÑ·¢ÏÖ rmem_max=1048576¡£ ͨ¹ý ÕýÔÚ¼ì²é wmem_default=262144; ÒÑ·¢ÏÖ wmem_default=262144¡£ ͨ¹ý ÕýÔÚ¼ì²é wmem_max=262144; ÒÑ·¢ÏÖ wmem_max=262144¡£ ͨ¹ý ¼ì²éÍê³É¡£´Ë´Î¼ì²éµÄ×ÜÌå½á¹ûΪ: ͨ¹ý ÏÂÃæ¶ÔÉÏÃæÉæ¼°µ½µÄÄں˲ÎÊý½øÐÐ˵Ã÷¡£
shmmax£º¹²ÏíÄÚ´æ¶ÎµÄ×î´ó×Ö½ÚÊý£¬½¨ÒéÉè´óµã£¬ÉõÖÁ¿ÉÒÔ´ó¹ýÎïÀíÄÚ´æµÄ×Ö½ÚÊý¡£¸Ã²ÎÊý¶¨ÒåÁ˹²ÏíÄÚ´æ¶ÎµÄ×î´ó³ß´ç£¨ÒÔ×Ö½ÚΪµ¥Î»£©¡£È±Ê¡Îª32M£¬¶ÔÓÚoracleÀ´Ëµ£¬¸Ãȱʡֵ̫µÍÁË£¬Í¨³£½«ÆäÉèÖÃΪ2G¡£
shmmin£º¹²ÏíÄÚ´æ¶ÎµÄ×îС³ß´ç¡£Õâ¸ö²ÎÊýµÄÉèÖÃÒ»°ã²»»á³öÎÊÌâ¡£
shmmni£º¹²ÏíÄÚ´æ¶ÎµÄ×î´óÊýÄ¿¡£Õâ¸öÄں˲ÎÊýÓÃÓÚÉèÖÃϵͳ·¶Î§ÄÚ¹²ÏíÄÚ´æ¶ÎµÄ×î´óÊýÁ¿¡£¸Ã²ÎÊýµÄĬÈÏÖµÊÇ4096 ¡£Í¨³£²»ÐèÒª¸ü¸Ä¡£
shmseg£ºÃ¿¸ö½ø³Ì¿É·ÖÅäµÄ×î´ó¹²ÏíÄÚ´æ¶ÎÊýÄ¿
shmall£º×î´óµÄ²¢·¢¹²ÏíÄÚ´æ¶ÎÊýÄ¿£¬±ÈSGA»¹Òª´ó¡£¸Ã²ÎÊý±íʾϵͳһ´Î¿ÉÒÔʹÓõĹ²ÏíÄÚ´æ×ÜÁ¿£¨ÒÔҳΪµ¥Î»£¬Ò»¸öÒ³´óСΪ4KB£©¡£È±Ê¡Öµ¾ÍÊÇ2097152£¬Í¨³£²»ÐèÒªÐ޸ġ£
sem£ºÊÇsemaphoresµÄËõд£¬¸Ã²ÎÊý±íʾÉèÖõÄÐźÅÁ¿¡£Ëü°üº¬ËĸöÖµ£ºsemmsl¡¢semmns¡¢semopm¡¢semmni¡£ suse11lwb:~ # sysctl -a|grep sem kernel.sem = 250 32000 100 128 semmns£ºÐźŵƵÄ×î´óÊýÁ¿£¬¸úORACLEµÄPROCESSÊýÓйء£SEMMSL * SEMMNI semopm£ºÏµÍ³µ÷ÓÃÔÊÐíµÄÐźÅÁ¿×î´ó¸öÊý¡£ÖÁÉÙ100£»»òÕßµÈÓÚSEMMSL semmni£ºÏµÍ³ÐźÅÁ¿set×î´ó¸öÊý¡£×îÉÙ128
semmsl£ºÃ¿¸öÐźŵƼ¯ºÏÖÐ×î¶àµÄÐźŵÆÊýÄ¿¡£×îС250£»¶ÔÓÚprocesses²ÎÊýÉèÖýϴóµÄϵͳ½¨ÒéÉèÖÃΪprocesses+10¡£
msgmni£ºÖ¸¶¨ÏûÏ¢¶ÓÁбêʶµÄ×î´óÊýÄ¿¡£È±Ê¡ÉèÖãº16
msgmax£º´ÓÒ»¸ö½ø³Ì·¢Ë͵½ÁíÒ»¸ö½ø³ÌµÄÏûÏ¢µÄ×î´ó³¤¶È¡£½ø³Ì¼äµÄÏûÏ¢´«µÝÊÇÔÚÄں˵ÄÄÚ´æÖнøÐУ¬²»»á½»»»µ½´ÅÅÌÉÏ£¬ËùÒÔÈç¹ûÔö¼Ó¸ÃÖµ£¬Ôò½«Ôö¼Ó²Ù×÷ϵͳËùʹÓõÄÄÚ´æÊýÁ¿¡£È±Ê¡ÉèÖãº8192
msgmnb£ºÒ»¸öÏûÏ¢¶ÓÁÐÖÐ×î´óµÄ×Ö½ÚÊý¡£È±Ê¡ÉèÖãº16384
optmem_max£ºÃ¿¸ösocketµÄ×î´ó»º´æ´óС
rmem_default£º½ÓÊÕsocketµÄȱʡ»º´æ´óС(×Ö½Ú) rmem_max£º½ÓÊÕsocketµÄ×î´ó»º´æ´óС(×Ö½Ú) wmem_default£º·¢Ë͵Äsocketȱʡ»º´æ´óС(×Ö½Ú) wmem_max£º·¢Ë͵Äsocket×î´ó»º´æ´óС(×Ö½Ú)
p_local_port_range£º±íʾÓÃÓÚÏòÍâÁ¬½ÓµÄ¶Ë¿Ú·¶Î§¡£È±Ê¡Çé¿öϺÜС£º32768µ½61000£¬¸ÄΪ10000µ½65000¡££¨×¢Ò⣺ÕâÀï²»Òª½«×îµÍÖµÉèµÄÌ«µÍ£¬·ñÔò¿ÉÄÜ»áÕ¼ÓõôÕý³£µÄ¶Ë¿Ú!
file-max£º±íʾÎļþ¾ä±úµÄ×î´óÊýÁ¿¡£Îļþ¾ä±úÉèÖñíʾÔÚlinuxϵͳÖпÉÒÔ´ò¿ªµÄÎļþÊýÁ¿¡£Èç¹ûÉèÖùýС£¬Oracle½«ÎÞ·¨Æô¶¯£¬»òÔËÐв»Õý³£¡£

