linux修改文件描述符,linux最大允许的文件描述符open files数nofile修改
open file resource limit 是linux中process可以打開的文件句柄數量。增加這個數值需要調整兩個配置:
第一步,
修改系統最大允許的文件描述符
查看當前的設置:
$
cat /proc/sys/fs/file-max
2390251
或者
$
sysctl -a
fs.file-max
= 2390251
該系統是CentOS
5.x x64版本,安裝好后沒有做過優化設定, 2390251是其默認值
$
ulimit -n
1024
如果
/proc/sys/fs/file-max小于我們要設定的句柄數量,可以通過:
$echo
"2390251" > /proc/sys/fs/file-max
或者修改
/etc/sysctl.conf,在文件中修改fs.file-max的值(沒有就創建一條)
修改完后可以通過
$
sysctl -p
使設置生效
2.
文件描述符修改后,需要調整針對用戶或者組(user/group)的限制
/etc/security/limits.conf,文件格式為
其中為
soft或者hard,有些應用會自動把soft限制提升到hard限制,如java,至于nginx,沒有看到相關的文檔。
如:
*
- nofile? 8192
表示對所有的用戶,文件描述符可以用到
8192, 或者
user_abc
- nofile? 8192
表示對用戶
user_abc,文件描述符可以用到 8192
3.
有些情況 /etc/security/limits.conf并不會發生作用,如在 init.d 中啟用的進程,或者daemons運行的進程。
此時比較有效的辦法是在init的script中,明確命令
ulimit -n xxxxx
除了在系統中進行設定 nofile(fs.file-max) 值外,可以在 nginx.conf
中指定worker_process可以使用的nofile值,如:
#user? nobody;
worker_processes? 3;
#error_log? logs/error.log;
#error_log? logs/error.log? notice;
error_log? logs/error.log? info;
pid? /var/run/nginx.pid;
worker_rlimit_nofile? 8192;
events {
use epoll;
worker_connections? 8192;
}
重新加載nginx配置,使新設定生效。
總結
以上是生活随笔為你收集整理的linux修改文件描述符,linux最大允许的文件描述符open files数nofile修改的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux下qt检查进程是否存在,Lin
- 下一篇: linux删除百万个文件夹,linux下