linux系統控制代碼數命令

2021-10-07 07:39:37 字數 2511 閱讀 5200

linux的/proc/sys/fs/file-max決定了當前核心可以開啟的最大的檔案控制代碼數。

cat /proc/sys/fs/file-max

修改系統最大開啟檔案描述符數:

臨時設定:echo 1000000 > /proc/sys/fs/file-max 

永久設定:修改/etc/sysctl.conf檔案,增加fs.file-max = 1000000 

準確的檢視fd使用總數的命令是:

cat /proc/sys/fs/file-nr

錯誤的查詢fd使用總數的命令是:

lsof |wc -l

1.lsof 的結果包含了並非以fd形式開啟的檔案,比如用mmap方式訪問檔案(fd一欄顯示為mem),實際並不占用fd。 

2.centos 7的lsof(我這裡lsof -v的版本號是4.87)是按pid/tid/file的組合對應一行,不是一行乙個fd。同乙個程序如果多個執行緒訪問同乙個檔案通常只需要開啟一次、占用乙個fd,但在lsof中就顯示多行。

如果用lsof -p ,則不按tid顯示,結果數少很多。但仍包含了沒有使用fd的檔案。

臨時設定:ulimit -n 1000000。

永久設定:修改/etc/security/limits.conf檔案,增加下面的行

*         hard    nofile      1000000

*         soft    nofile      1000000

root      hard    nofile      1000000

root      soft    nofile      1000000

修改後需要重啟服務

[root@localhost cloud-game-web]# cat /proc/5772/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             62496                62496                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       62496                62496                signals   

max msgqueue size         819200               819200               bytes     

max nice priority         0                    0                    

max realtime priority     0                    0                    

max realtime timeout      unlimited            unlimited            us 

當前程序開啟最大控制代碼數是4096

檢視當前程序的開啟檔案數量:lsof -p pid | wc -l      (lsof -p 1234 | wc -l  )

嚴格說lsof -p pid | wc -l查詢的資料不準確,裡面含有重複的控制代碼檔案數,已經mem占用也包含了

linux 檔案控制代碼數檢視命令

當你的伺服器在大併發達到極限時,就會報出 too many open files ulimit a 輸出如下 core file size blocks,c 0 data seg size kbytes,d unlimited scheduling priority e 0 file size bl...

linux檔案控制代碼數

1 問題闡述 too many open files 顧名思義即開啟過多檔案數。不過這裡的files不單是檔案的意思,也包括開啟的通訊鏈結 比如socket 正在監聽的埠等等,所以有時候也可以叫做控制代碼 handle 這個錯誤通常也可以叫做控制代碼數超出系統限制。2 產生的原因 經常在使用linu...

Linux檔案控制代碼數配置

1 單程式控制程式碼數限制 檢視配置的控制代碼數 ulimit n cat etc security limits.conf soft nofile 655360 hard nofile 655360 2 全域性控制代碼數限制 cat proc sys fs file max 3 分析控制代碼數常用...