日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

linux:Too Many Open Files(打开的文件过多)

發布時間:2024/9/19 linux 49 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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(打开的文件过多)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。