安裝lsof
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:
1,查看進程允許打開的最大文件句柄數
ulimit -n
2,設置進程能打開的最大文件句柄數
ulimit -n xxx
-H 指定資源的硬限制
-S 指定資源的軟限制
hard 代表當前硬限制
soft 代表當前軟體限制
unlimited 代表不限制.
3, 文件限制配置文件
/etc/security/limits.conf
4,文件句柄最大數據配置
配置文件:/proc/sys/fs/file-max
這個參數的默認值和內存大小有關系,可以使用公式:file-max 內存大小/ 10k.
4.1 建議將整個系統的文件句柄值至少設置為 65536
4.2 echo "65536" > /proc/sys/fs/file-max
4.3 sysctl -w fs.file-max=65536
4.4 echo "fs.file-max=65536" >> /etc/sysctl.conf
5,文件句柄使用情況配置文件:/proc/sys/fs/file-nr
這三個值分別指:系統已經分配出去的句柄數、已經分配但是還沒有使用的句柄數以及系統最大的句柄數(和file-max一樣)。
6,查看進程打開的文件句柄數
lsof:列出當前系統打開文件的工具。
⑶ linux查看多少文件linux查看多少文件
linux查看文件夾下的文件個數?
1、首先打開linux系統,進入到圖形界面中去:
2、然後右鍵在桌面點擊,點擊桌面菜單中的終端,打開終端埠:
3、最後輸入命令「ls~|wc-w」,其中wc用來計算統計文件的數據,回車後即可看到目錄數。以上就是查看linux文件夾下文件數目的操作方法:
linux查看打開文件數?
Linux文件數打開數查看當前系統最大的文件打開數,在linux終端中輸入ulimit-a「openfiles」參數選項後面的數值就是當前系統支持的最大打開文件數修改linux最大文件打開數如果要修改linux最大文件打開數,可以通過參數命令unlimit-n後面接需要設置的文件數量。
設置好之後,再次查看unlimit-a你會發現已經設置為新的數量了設置好之後,再次編輯修改重啟設置的服務,已經沒有剛剛那個1024文件數限制的報錯提示其他修改方法除此之外,如果針對不同的用戶。
也可以通過編輯修改/etc/rc.local文件設置環境變數,添加unlimit-n,重啟之後一般就自動設置好了查看系統句柄文件數當前系統文件句柄的最大數目,只用於查看,不能設置修改cat/proc/sys/fs/file-max查看進程打開文件數如果需要查看所有進程的文件打開數,命令lsof|wc-l
linux查看每個目錄下有多少文件?
1、點擊電腦終端,或者是直接按滑鼠右鍵選擇終端。
2、然後輸入命令:【ls~|wc-w】回車後即可看到目錄數,其中【~】代表的home目錄。
3、如果上面的命令:【ls~|wc-w】不帶有【ls|wc-w】。那麼說明當前目錄,這里是桌面無目錄或者是文件,因此顯示0,
4、如果是查詢根目錄,則把【~】替換為【/】。那麼此時得到的是根目錄下的數字。
5、如果是查看電腦整個目錄數目,那麼輸入命令:【sudols/*|wc-w】。
6、此時電腦上所有的目錄都會列出來的。
linux系統如何查看文件夾下有多少個文件?
1、首先打開linux系統,進入到圖形界面中去:
2、然後右鍵在桌面點擊,點擊桌面菜單中的終端,打開終端埠:
3、最後輸入命令「ls~|wc-w」,其中wc用來計算統計文件的數據,回車後即可看到目錄數。以上就是查看linux文件夾下文件數目的操作方法:
⑷ linux下面怎麼查詢某個進程正在使用的socket句柄數量
可以通過指令查詢當前進程打開了多少句柄,Linux下有exec函數族可以執行指令內,把指令寫進去就行了。容
-查看當前進程打開了多少句柄數
# lsof -n|awk '{print $2}'|sort|uniq -c|sort -nr|more
-根據ID號來查看進程名。
# ps aef|grep ID號
滿意請採納。
⑸ linux如何獲取磁碟的繁忙程度和打開的文件句柄數
磁碟繁忙程度一般用iostat看
可以從 /proc/sys/fs/file-nr,看到整個系統目前使用的文件句柄數量回
查找文件句柄問題的時候,還答有一個很實用的程序lsof.可以很方便看到某個進程開了那些句柄.也可以看到某個文件/目錄被什麼進程佔用了
⑹ linux查看打開的文件句柄
linux系統下查看進程打開文件 在/proc下,對應每個進程有一個以進程號命名的目錄,該目錄下有一個fd目錄,該目錄下面的每個文件是一個符號連接,其文件名對應該進程佔用的一個文件描述符,而連接指向的內容表示文件描述符對應的實際文件,有多少...
⑺ 如何查看LINUX單進程能夠打開的最大文件句柄數
在Linux下,我們使用ulimit -n 命令可以看到單個進程能夠打開的最大文件句柄數量(socket連接也算在裡面)。系統默認值1024。
對於一般的應用來說(象Apache、系統進程)1024完全足夠使用。但是如何象squid、mysql、java等單進程處理大量請求的應用來說就有 點捉襟見肘了。如果單個進程打開的文件句柄數量超過了系統定義的值,就會提到「too many files open」的錯誤提示。如何知道當前進程打開了多少個文件句柄呢?下面一段小腳本可以幫你查看:
lsof -n |awk '{print $2}'|sort|uniq -c |sort -nr|more
在系統訪問高峰時間以root用戶執行上面的腳本,可能出現的結果如下:
# lsof -n|awk '{print $2}'|sort|uniq -c |sort -nr|more
131 24204
57 24244
57 24231
56 24264
其中第一行是打開的文件句柄數量,第二行是進程號。得到進程號後,我們可以通過ps命令得到進程的詳細內容。
ps -aef |grep 24204
mysql 24204 24162 99 16:15 ? 00:24:25 /usr/sbin/mysqld
哦,原來是mysql進程打開最多文件句柄數量。但是他目前只打開了131個文件句柄數量,遠遠底於系統默認值1024。
但是如果系統並發特別大,尤其是squid伺服器,很有可能會超過1024。這時候就必須要調整系統參數,以適應應用變化。Linux有硬性限制和軟性限制。可以通過ulimit來設定這兩個參數。方法如下,以root用戶運行以下命令:
ulimit -HSn 4096
以上命令中,H指定了硬性大小,S指定了軟性大小,n表示設定單個進程最大的打開文件句柄數量。個人覺得最好不要超過4096,畢竟打開的文件句柄 數越多響應時間肯定會越慢。設定句柄數量後,系統重啟後,又會恢復默認值。如果想永久保存下來,可以修改.bash_profile文件,可以修改 /etc/profile 把上面命令加到最後。