文件句柄数设置-linux

发布时间:2023年12月26日

在使用Linux时我们需要同时打开多个文件,来适配高并发的需求,这时就需要设置一下文件句柄数了,默认打开的是1024

文件句柄,文件描述符,会随着进程数增加而增加。
Linux是有文件句柄限制的,而且默认都是1024,作为一台生产服务器,其实很容易就达到 这个数量,因此我们需要把这个值改大一些。我们可以用ulimit -n 来查看当前用户句柄数限制

ulimit 命令
1、查看当前打开文件句柄数

ulimit -n
2、查看所有配置参数

ulimit -a
3、临时修改句柄数

unlimit -HSn 2048
4、永久修改句柄数(系统全局设置)

sudo vim /etc/security/limits.conf

#<domain> ? ? ?<type> ?<item> ? ? ? ? <value>
##* ? ? ? ? ? ? ? soft ? ?core ? ? ? ? ? ?0
#root ? ? ? ? ? ?hard ? ?core ? ? ? ? ? ?100000
#* ? ? ? ? ? ? ? hard ? ?rss ? ? ? ? ? ? 10000
#@student ? ? ? ?hard ? ?nproc ? ? ? ? ? 20
#@faculty ? ? ? ?soft ? ?nproc ? ? ? ? ? 20
#@faculty ? ? ? ?hard ? ?nproc ? ? ? ? ? 50
#ftp ? ? ? ? ? ? hard ? ?nproc ? ? ? ? ? 0
#ftp ? ? ? ? ? ? - ? ? ? chroot ? ? ? ? ?/ftp
#@student ? ? ? ?- ? ? ? maxlogins ? ? ? 4* ? ? ? soft ? ?nofile ?65535
* ? ? ? hard ? ?nofile ?65535

* #代表所有用户

- #超过文件句柄数时,什么都不干

soft #超过文件句柄数时,仅提示

hard #超过文件句柄数时,直接限制

用户局部设置,?vim /etc/security/limits.conf


root - nofile 65535
root soft nofile 65535
root hard nofile 65535


5、系统优化

sudo vim /etc/sysctl.conf

net.ipv4.tcp_fin_timeout = 2
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_tw_recycle = 1
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_keepalive_time = 600
net.ipv4.ip_local_port_range = 4000   65000
net.ipv4.tcp_max_syn_backlog = 16384
net.ipv4.tcp_max_tw_buckets = 36000
net.ipv4.route.gc_timeout = 100
net.ipv4.tcp_syn_retries = 1
net.ipv4.tcp_synack_retries = 1
net.core.somaxconn = 16384
net.core.netdev_max_backlog = 16384
net.ipv4.tcp_max_orphans = 16384
net.ipv4.ip_forward = 1

在底部追加:fs.file-max=655350
配置立即生效:

sudo sysctl -p


这样就修改完毕了,用户级句柄数的修改需要重启一下才能生效,最好执行一下reboot,再次输入ulimit -n查看已经修改好了。

针对nginx服务vim /etc/nginx/nginx.conf?


user  www;
worker_processes  1;
#添加下面一行
worker_rlimit_nofile 65535;
文章来源:https://blog.csdn.net/qq_40006446/article/details/135220971
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。