Ubuntu20.04如何永久修改同一時間打開文件數上限以及解決Too many open files問題

 

 

 

近期遇到一個問題,寫的代碼同一時間維護的tcp鏈接過多,導致linux的文件句柄達到上限,出現Too many open files的問題。網上大多回答混亂,在這裏做個總結,提醒日後使用。


1.查看命令

ulimit -a


2.臨時的修改,關閉終端失效

ulimit -n 204800
或
ulimit -SHn 204800     //S代表soft,超過該值則warning;H代表hard,超過則error;這是同時設置兩個值,也可以分開設置

ulimit -Sn 102400
ulimit -Hn 204800


3.永久設置

[處理非圖像登錄]
sudo vim /etc/security/limits.conf     

打開後,在文件最後添加:

* soft nofile 204800
* hard nofile 204800
* soft nproc 204800
* hard nproc 204800

ubuntu系統下,一定要把*改爲你自己的用戶名。好像是識別不了通配符。centos就沒問題。
保存退出。

[處理非圖像登錄]
然後,在下面的兩文件中加入:DefaultLimitNOFILE=204800

sudo vim /etc/systemd/user.conf 
sudo vim /etc/systemd/system.conf 

保存退出即可。


4.重啓機器


重啓後,測試下

輸入 ulimit -n ,查看系統級是否修改成功
輸入 su - usrname -c 'ulimit -aHS' -s '/bin/bash'  查看用戶級是否修改成功
輸入 cat /proc/[PID]/limits   查看進程級是否修改成功


注意:同一時間打開文件上限數量,根據自己的實際需要設定。
————————————————

                            一年之內毫無半點成績,想起來做人真是沒趣。
                        
原文鏈接:https://blog.csdn.net/qq_26039331/article/details/115253574

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