Linux文件句柄占用数量查看与设置

Linux文件句柄占用数量查看与设置,第1张

安装lsof

yum install lsof

查看线程占句柄

ulimit -a

查看系统打开句柄最大数量

more /proc/sys/fs/file-max

1

查看打开句柄总数

lsof|awk '{print $2}'|wc -l

1

根据打开文件句柄的数量降序排列,其中第二列为进程ID:

lsof|awk '{print $2}'|sort|uniq -c|sort -nr|more

1

根据获取的进程ID查看进程的详情

ps -ef |grep

1

修改linux单进程最大文件连接数

修改linux系统参数。vi /etc/security/limits.conf 添加

softnofile65536

hardnofile65536

修改以后保存,注销当前用户,重新登录,执行ulimit -a ,ok ,参数生效了:

最近重启平台后,启动数据流,确发生报错:

发现文件打开太多,句柄数不够用了,需要调优linux参数:

首先查看下系统的句柄是多少,用ulimit -a 命令查看

linux默认最大文件句柄数是1024个,当你的服务器在大并发达到极限时,就会报出“too many open files”。

修改linux系统参数:vi /etc/security/limits.conf

*softnofile65536

*hardnofile65536

修改以后保存,注销当前用户,重新登录,执行ulimit -a

---查看系统默认的最大文件句柄数,系统默认是1024

# ulimit -n

1024

----查看当前进程打开了多少句柄数

# lsof -n|awk '{print $2}'|sort|uniq -c|sort -nr|more

131 24204 

57 24244

57 24231 ........

其中第一列是打开的句柄数,第二列是进程ID。

可以根据ID号来查看进程名。

# ps aef|grep 24204

nginx24204 24162 99 16:15 ?00:24:25 /usr/local/nginx/sbin/nginx -s

Linux有硬性限制和软性限制。可以通过ulimit来设定这两个参数。方法如下,以root用户运行以下命令:

# ulimit -HSn 4096

以上命令中,H指定了硬性大小,S指定了软性大小,n表示设定单个进程最大的打开文件句柄数量。个人觉得最好不要超过4096,毕竟打开的文件句柄数越多响应时间肯定会越慢。设定句柄数量后,系统重启后,又会恢复默认值。如果想永久保存下来,可以修改.bash_profile文件,可以修改 /etc/profile 把上面命令加到最后.


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/8521538.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-17
下一篇 2023-04-17

发表评论

登录后才能评论

评论列表(0条)

保存