Linux会限制文件句柄数量,默认为1024,当超过该阈值后,会报"to many open files"
## 使用ulimit -a查看当前打开文件句柄限制 ulimit -a |grep 'open file' ## 使用ulimit -n查看当前打开文件句柄限制 ulimit -n ## 临时修改最大文件句柄数,针对当前会话有效 ## ulimit -SHn 等价于 ulimit -n ## H代表硬限制,硬限制指实际的限制 ## S代表软限制,软限制指警告限制,仅给出系统警告 ulimit -n 10000 ## 永久修改最大文件句柄数,对新会话有效 echo "* soft nofile 204800" >> /etc/security/limits.conf echo "* hard nofile 204800" >> /etc/security/limits.conf
## 统计各进程打开句柄数:
lsof -n|awk '{print $2}'|sort|uniq -c|sort -nr
## 统计各用户打开句柄数:
lsof -n|awk '{print $3}'|sort|uniq -c|sort -nr
## 统计各命令打开句柄数:
lsof -n|awk '{print $1}'|sort|uniq -c|sort -nr
ulimit命令
语法格式 ulimit [-acdfHlmnpsStvw] [size] 参数介绍 -H 设置硬件资源限制. -S 设置软件资源限制. -a 显示当前所有的资源限制. -c size:设置core文件的最大值.单位:blocks -d size:设置数据段的最大值.单位:kbytes -f size:设置创建文件的最大值.单位:blocks -l size:设置在内存中锁定进程的最大值.单位:kbytes -m size:设置可以使用的常驻内存的最大值.单位:kbytes -n size:设置内核可以同时打开的文件描述符的最大值.单位:n -p size:设置管道缓冲区的最大值.单位:kbytes -s size:设置堆栈的最大值.单位:kbytes -t size:设置CPU使用时间的最大上限.单位:seconds -v size:设置虚拟内存的最大值.单位:kbytes -u number:设置用户最大进程数(max user processes)