您好,登錄后才能下訂單哦!
本篇內容介紹了“Linux服務器怎么查看所有進程的文件打開數”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!
文件是Linux系統中的一切事物的存在形式,計算機中的數據和硬件都是通過文件的形式進行管理,Linux的文件主要有普通文件、文件夾、設備文件、鏈接文件、管道文件、套接字文件(數據通信的接口)等類型,Linux 中的各種事物比如像文檔、文件夾、鍵盤、監視器、硬盤、可移動媒體設備、打印機、調制解調器、虛擬終端等等都是定義在文件系統空間下的字節流。
因此在Linux系統上的web程序,在進行TCP連接時,系統為每個TCP連接創建一個socket句柄,而每個句柄也是一個文件句柄,所以web程序對文件的操作情況,是影響到服務器性能的重要指標,像網站在高流量高并發的場景下出現"Too many open files"的異常就是因為打開的文件數超過限制,而程序中對資源(包括圖片、音視頻資源)、網頁、以及接口的請求在Linux系統里的表現為對文件的訪問,如果打開文件數超出了系統限制(系統級和用戶級)的數量,就會拒絕接下來的文件訪問
當前用戶級的文件數限制,可以通過 ulimit -n 來查看,如圖:
而系統級別的文件數限制,則通過sysctl -a來查看,如下圖:
一般系統***文件數會根據硬件資源計算出來的,如果強行需要修改***打開文件數可以通過ulimit -n 10240來修改,當這種方式只對當前進程有效,如果需要***有效則需要修改/etc/security/limits.conf(重啟系統生效),如下圖:
其中:
root :指定用戶,如對所有用戶,則寫 *
soft:軟限制
hard:硬件限制
nofile 是代表***文件打開數
除此之外,下面是一些打開文件數操作相關的指令,僅供參考:
1、查看所有進程的文件打開數:
lsof |wc -l
2、查看某個進程打開的文件數:
lsof -p pid |wc -l
3、查看系統中各個進程分別打開了多少句柄數:
lsof -n|awk '{print $2}'|sort|uniq -c|sort -nr|more
“Linux服務器怎么查看所有進程的文件打開數”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。