歡迎光臨
每天分享高質量文章

Linux服務器性能的重要指標:打開檔案數的限制

來自:編程無界(微信號:qianshic),作者:假不理



檔案是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


●編號622,輸入編號直達本文

●輸入m獲取文章目錄

推薦↓↓↓

 

運維

更多推薦18個技術類微信公眾號

涵蓋:程式人生、演算法與資料結構、黑客技術與網絡安全、大資料技術、前端開發、Java、Python、Web開發、安卓開發、iOS開發、C/C++、.NET、Linux、資料庫、運維等。

赞(0)

分享創造快樂