20220218too_many_open_files

Feb 18, 2022

too_many_open_files

前方技术传过来服务报错: too many open files,这个第一眼看出来就是服务器句柄消耗空了。但是我这里无法定位,所以需要精确到是哪些文件被打开,然后我找找附近代码即可。

下载lsof 离线包

首先离线原因,我需要lsof的离线安装。

centos: yum install yum-utils -y 下载后能得到yumdownloader 工具

然后使用yumdownloader 下载lsof 包: yumdownloader lsof --resolve --destdir=/root/mytest

–resolve 会下载对应依赖;–destdir 会将rpm包下载到对应文件夹。

接下来将该安装包拖到内网服务器。

rpm安装该包

rpm -ivh *.rpm

使用docker ps 查找对应的容器

推荐使用对应容器查找方案,单独隔离,如果打印很多,那该进程肯定是满的。

docker ps

根据docker 容器找到实际进程pid

docker inspect -f '{{ .State.Pid }}' ${docker 容器名 / dockerId}

这个能获取实际进程pid

打印所有open 的句柄

lsof -p ${pid}

列出所有打开的句柄。 lsof: list open file

结尾

没有结尾,搞定收工