linux:Too Many Open Files(打开的文件过多)
生活随笔
收集整理的這篇文章主要介紹了
linux:Too Many Open Files(打开的文件过多)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
前言
- linux RH7
- ulimit命令
- lsof命令
- /proc/{pid}/limits
- 了解linux:系統對open files的限制
今天發現某個程序發生了Too Many Open Files(打開的文件過多)錯誤。該程序的PID為4837。下面為檢查過程。
檢查系統對單個進程文件句柄的限制
用ulimit -n命令查詢:
> ulimit -n65535或用ulimit -a命令查詢open files:
> ulimit -a core file size (blocks, -c) 0 data seg size (kbytes, -d) unlimited scheduling priority (-e) 0 file size (blocks, -f) unlimited pending signals (-i) 255796 max locked memory (kbytes, -l) 64 max memory size (kbytes, -m) unlimited open files (-n) 65535 pipe size (512 bytes, -p) 8 POSIX message queues (bytes, -q) 819200 real-time priority (-r) 0 stack size (kbytes, -s) 8192 cpu time (seconds, -t) unlimited max user processes (-u) 255796 virtual memory (kbytes, -v) unlimited file locks (-x) unlimited檢查發生Too Many Open Files的進程的Max open files
每個進程均會有對應的Max open files設置,用到的命令:
cat /proc/{pid}/limits |grep 'Max open files'檢查結果:
> cat /proc/4837/limits |grep 'Max open files' Max open files 4096 4096 files或:
> cat /proc/4837/limits Limit Soft Limit Hard Limit Units Max cpu time unlimited unlimited seconds Max file size unlimited unlimited bytes Max data size unlimited unlimited bytes Max stack size 8388608 unlimited bytes Max core file size 0 unlimited bytes Max resident set unlimited unlimited bytes Max processes 255796 255796 processes Max open files 4096 4096 files Max locked memory 65536 65536 bytes Max address space unlimited unlimited bytes Max file locks unlimited unlimited locks Max pending signals 255796 255796 signals Max msgqueue size 819200 819200 bytes Max nice priority 0 0 Max realtime priority 0 0 Max realtime timeout unlimited unlimited us進程使用了多少文件句柄
用到的命令:
> lsof -p pid | wc -l檢查結果:
> lsof -p 4837 | wc -l lsof: WARNING: can't stat() fuse.gvfsd-fuse file system /run/user/1001/gvfsOutput information may be incomplete. 4169至此,發現了問題:ulimit查詢到最大open files數量是65535, /proc/4837/limits查詢到Max open files數量是4096,lsof查詢到的打開文件數量4169。顯然進程4837打開文件數量超過了/proc/4837/limits中的限制。
至于lsof查詢到的打開文件數量是4169而不是4096,這個還沒搞清楚。
查pid
> ps -ef | grep java總結
以上是生活随笔為你收集整理的linux:Too Many Open Files(打开的文件过多)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux:系统对open files的
- 下一篇: 氮肥的作用(哪些肥料属于氮肥)