can not open so many files 錯誤處理

在運行server的時候總是會遇到這個錯誤,在linux下open files的數量是有限制的,一般爲1024,如果運行server,總是會需要修改這個值的,查看本機limit的數量的方式:

ulimit -a  # -a 表示顯示所有的數量限制,如果要查看open files的數量可以使用-n參數

ulimit -n

ulimit的參數說明:

-H 設置硬件資源限制.
-S 設置軟件資源限制.
-a 顯示當前所有的資源限制.
-c size:設置core文件的最大值.單位:blocks
-d size:設置數據段的最大值.單位:kbytes
-f size:設置創建文件的最大值.單位:blocks
-l size:設置在內存中鎖定進程的最大值.單位:kbytes
-m size:設置可以使用的常駐內存的最大值.單位:kbytes
-n size:設置內核可以同時打開的文件描述符的最大值.單位:n
-p size:設置管道緩衝區的最大值.單位:kbytes
-s size:設置堆棧的最大值.單位:kbytes
-t size:設置CPU使用時間的最大上限.單位:seconds
-v size:設置虛擬內存的最大值.單位:kbytes


既然找到了原因,現在就需要修改這個限制條件,用root用戶權限打開文件:

sudo vim /etc/security/limits.conf

然後在後邊添加兩句話:

*   soft  nofile 65536

*   hard nofile 65536  # 後邊的數字你自己的實際情況而定

軟限制是給出warning的限制上限;硬限制時強制限制

前面的*說明對所有的登陸用戶都適用,也可以通過制定登錄用戶名來針對用戶更改


最後保存退出後,需要退出shell,重新登錄,使其生效。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章