Linux /etc/sysctl.conf 重启没有生效
修改系统核心参数
改变系统默认设置值
/etc/sysctl.conf
修改共享内存大小为物理内存的一半以及消息队列的个数为300等。Linux修改
/etc/sysctl.conf文件,修改完后执行/sbin/sysctl -e -p /etc/sysctl.conf(好像有时sysctl -p可以直接生效)
可以当即生效,并且下次重启后也继续生效.例如:
mmsgbill:/etc/rc.d/rc5.d # more /etc/sysctl.conf
kernel.shmmax= 1062117376
kernel.msgmni = 300
kernel.msgmnb = 163840
kernel.msgmax = 56383
fs.fs-max = 104032
在 Linux 上, /proc/sys/fs/file-max 决定内核可以支持的最大文件数。 你可
以通过往该文件写入一个不同的数值修改此值, 或者在 /etc/sysctl.conf 里增
加一个赋值。 每个进程的最大打开文件限制是在编译内核的时候固定的;
参阅 /usr/src/linux/Documentation/proc.txt 获取更多信息。
linux13:/etc/pam.d # grep limit /etc/pam.d/*
/etc/pam.d/login:session required pam_limits.so
/etc/pam.d/sshd:session required pam_limits.so
/etc/pam.d/su:session required pam_limits.so
/etc/pam.d/xdm:session required pam_limits.so
linux13:/etc/pam.d # grep -v \# /etc/security/limits.conf
* hard nofile 65536
* soft nofile 65536
linux13:/etc/pam.d #
注意:Linux有时候修改/etc/sysctl.conf重启后不能生效,这时候需
要在Linux启动脚本目录/etc/init.d/boot.d里面检查是否存在boot.sysctl的
启动项,例如
mmsgbill:~ # ls -al /etc/init.d/boot.d/S15boot.sysctl
lrwxrwxrwx 1 root root 14 Sep 1 11:02 /etc/init.d/boot.d/S15boot.sysctl -> ../boot.sysctl
如果没有,可以手工创建sysctl的启动项
mmsgbill:/etc/init.d/boot.d # cd /etc/init.d/boot.d
mmsgbill:/etc/init.d/boot.d # ln -s ../boot.sysctl S15boot.sysctl
mmsgbill:/etc/init.d/boot.d # ls -al S15boot.sysctl
lrwxrwxrwx 1 root root 14 Sep 3 16:33 S15boot.sysctl -> ../boot.sysctl
也可以在常用启动状态/etc/rc.d/rc5.d/增加一个修改核心参数的可执行脚本,例如
mmsgbill:~ # cat /etc/rc.d/rc5.d/S91rclocal
/sbin/sysctl -e -p /etc/sysctl.conf
Linux还可以通过下列动态修改和查看系统共享内存以及消息队列的个数。
mmsgbill:/home/zxin10/impsys # cat /proc/sys/kernel/shmmax
1062117376
mmsgbill:/home/zxin10/impsys # cat /proc/sys/kernel/msgmni
160
mmsgbill:/home/zxin10/impsys # echo 1000000000 > /proc/sys/kernel/shmmax
mmsgbill:/home/zxin10/impsys # echo 330 > /proc/sys/kernel/msgmni
mmsgbill:/home/zxin10/impsys # cat /proc/sys/kernel/shmmax
1000000000
mmsgbill:/home/zxin10/impsys # cat /proc/sys/kernel/msgmni
330