Linux 開啟控制代碼限制的調整,linux控制代碼限制調整
Linux 開啟控制代碼限制的調整
參考文章:
Linux---進程控制代碼限制總結(http://blog.csdn.net/jhcsdb/article/details/32338953)
!! 本文內容僅在 RHEL6.4 上測試通過.
Linux 控制代碼限制分為1系統級限制和2使用者級限制:
/proc/sys/fs/nr_open > /proc/sys/fs/file-max >= ulimit -Hn >= ulimit -Sn
1 系統級限制1.1 /proc/sys/fs/nr_open
系統檔案系統支援檔案控制代碼總數上限, 預設值1048576 (1M). 該值上限受限於系統記憶體. 這個是所有限制的最大值.
1.2 /proc/sys/fs/file-max
系統檔案系統支援檔案控制代碼總數最大值, 必須小於 nr_open. 查看命令(下面3個命令等效):
[root@vm-cdh4 ~]# sysctl -a | grep -i file-max --colorfs.file-max = 188436[root@vm-cdh4 ~]# cat /proc/sys/fs/file-max188436[root@vm-cdh4 ~]# sysctl -e fs.file-maxfs.file-max = 188436
查看當前系統使用的開啟檔案描述符數命令:
[root@vm-cdh4 ~]# cat /proc/sys/fs/file-nr832 0 188436
其中file-max = 188436
1.3 更改 file-max
臨時改變, 重啟後消失:
[root@vm-cdh4 ~]# sysctl -w fs.file-max=102400
永久性的更改, 在
/etc/sysctl.conf中加入(適用於 2.2 和 2.4 版核心):
fs.file-max=102400#### 僅對於2.2 版核心:#### fs.inode-max=102400
當
/etc/sysctl.conf改變之後,運行下面的命令使改變立即生效:
[root@vm-cdh4 ~]# sysctl -p
2 使用者級限制2.1 硬上限 ulimit -Hn
單個進程控制代碼數硬上限. <= file-max. 查看命令:
[root@vm-cdh4 ~]# ulimit -Hn4096
臨時更改,
重啟後消失:
[root@vm-cdh4 ~]# ulimit -Hn 8192[root@vm-cdh4 ~]# ulimit -Hn8192
2.2 軟上限 ulimit -Sn
單個進程控制代碼數軟上限, <= ulimit -Hn. 查看命令:
[root@vm-cdh4 ~]# ulimit -Sn1024[root@vm-cdh4 ~]# ulimit -n1024
臨時更改,
重啟後消失:
[root@vm-cdh4 ~]# ulimit -Sn 8000[root@vm-cdh4 ~]# ulimit -n8000
2.3 修改單個進程控制代碼數上限
同時臨時修改軟硬上限(<=file-max)重啟後消失:
[root@vm-cdh4 ~]# ulimit-SHn 10240
永久修改軟硬上限(RHEL6.4), 在 /etc/security/limits.conf 裡設定(* 表示對所有使用者):
#......#@student - maxlogins 4* hard nofile 10240* soft nofile 10240# End of file