如何解決Linux下Too many open files問(wèn)題
引起的原因就是進(jìn)程在某個(gè)時(shí)刻打開(kāi)了超過(guò)系統(tǒng)限制的文件數(shù)量以及通訊鏈接數(shù)。 通過(guò)命令ulimit -a可以查看當(dāng)前系統(tǒng)設(shè)置的最大句柄數(shù)是多少
core file size (blocks, -c) 0
data seg size (kbytes, -d) unlimited
scheduling priority (-e) 0
file size (blocks, -f) unlimited
pending signals (-i) 31767
max locked memory (kbytes, -l) 64
max memory size (kbytes, -m) unlimited
open files (-n) 1024
pipe size (512 bytes, -p) 8
POSIX message queues (bytes, -q) 819200
real-time priority (-r) 0
stack size (kbytes, -s) 8192
cpu time (seconds, -t) unlimited
max user processes (-u) 31767
virtual memory (kbytes, -v) unlimited
file locks (-x) unlimited
可以看到,open files的配置是1024,可以通過(guò)如下命令將open files增加
ulimit -n 65535
這種修改方式可以臨時(shí)把文件打開(kāi)數(shù)量增加到65535,但是系統(tǒng)重啟后這個(gè)配置會(huì)失效。
還有一種方式是修改系統(tǒng)的配置文件,以Ubuntu為例,配置文件默認(rèn)在
/etc/security/limits.conf
在這個(gè)配置文件中增加
* soft nofile 65535* hard nofile 6553
如果要查看某個(gè)進(jìn)程目前打開(kāi)的句柄數(shù)量,可以通過(guò)如下命令:
lsof -p 進(jìn)程ID|wc -l
此外,如果用supervisor托管和啟動(dòng)項(xiàng)目,會(huì)遇到這個(gè)配置無(wú)法生效的問(wèn)題,原因在于supervisor會(huì)默認(rèn)配置打開(kāi)的句柄數(shù)量是1024,
如果要查看某個(gè)進(jìn)程最大open files,可以通過(guò)這個(gè)進(jìn)程的進(jìn)程號(hào)對(duì)應(yīng)的limits查看
cat /proc/進(jìn)程ID/limits
其中有一行是:
Max open files10241024bytes
supervisor托管的程序這一行默認(rèn)都是supervisor配置的最大數(shù)量1024,這時(shí)需要手動(dòng)改一下supervisor的配置文件,修改方式如下,以Ubuntu系統(tǒng)為例,找到supervisor的配置文件supervisord.conf
在[supervisord]選項(xiàng)中,增加minfds選項(xiàng)的配置
[supervisord]minfds=65535 ; min. avail startup file descriptors; default 1024
配置完畢后,需要重啟supervisor(以systemctl為例)
systemctl restart supervisor
即可生效
在通過(guò):
cat /proc/進(jìn)程號(hào)/limits
查看下對(duì)應(yīng)進(jìn)程的可open files的數(shù)量
Max open files6553565535bytes
以上就是如何解決Linux下Too many open files問(wèn)題的詳細(xì)內(nèi)容,更多關(guān)于解決Linux下Too many open files問(wèn)題的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
linux?和?dockerfile?中配置環(huán)境變量的方式總結(jié)
要熟悉?dockerfile?配置?linux?的知識(shí)不能少,所以本文將給大家總結(jié)?linux?與?dockerfile?中各種環(huán)境變量,需要的朋友可以參考下2023-07-07使用LNMP一鍵安裝包配置CentOS服務(wù)器環(huán)境教程
當(dāng)我們的服務(wù)器或vps安裝好centos之后,接下來(lái)是配置服務(wù)器環(huán)境了,我們推薦LNMP一鍵安裝包來(lái)配置生產(chǎn)環(huán)境。2011-03-03Linux 6 下編譯安裝 PHP 5.6實(shí)例詳解
這篇文章主要介紹了Linux 6 下編譯安裝 PHP 5.6實(shí)例詳解的相關(guān)資料,需要的朋友可以參考下2017-04-04如何解決win10與Ubuntu16.04時(shí)間不同步的問(wèn)題的方法
本篇文章主要介紹了如何解決win10與Ubuntu16.04時(shí)間不同步的問(wèn)題的方法,非常具有實(shí)用價(jià)值,需要的朋友可以參考下2017-05-05