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 把上面命令加到最后.
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)