too|too many open files 问题
场景:游戏玩家不能登录游戏,自己尝试登录发现 确实登不上,整个区服都被限制了。
查看login日志,发现 报错:too many open files
- 何为文件句柄数:
files不单是文件的意思,也包括打开的通讯链接(比如socket),正在监听的端口等等,所以有时候也可以叫做句柄(handle),这个错误通常也可以叫做句柄数超出系统限制。
- 修改服务器限制:
ulimit -a 查看当前 open files 值:
文章图片
图片.png
1) 仅当前终端生效:
ulimit -HSn 102400
2)修改配置文件(需重启服务器后生效):
添加以下语句进 /etc/security/limits.conf
- soft nofile 102400
- hard nofile 102400
- soft core unlimited
- hard core unlimited
3)修改 启动脚本文件,如/etc/profile(每次打开终端都会生效):
添加如下内容:
sudo ulimit -HSn 102400
/proc/sys/fs/file-max 文件
文章图片
图片.png 怕以后还会出现这种状况,就做了个监控。
- 截取最新的login 日志,如果 出现 errno=Too many open files 字段则zabbix 报警
/etc/zabbix/zabbix_agentd.conf 里加如下字段:
UserParameter=open_file,grep "errno=Too many open files" /xxx/loginserver.log| wc -l
重启客户端 再配置 zabbix 网页端即可
2.利用 lsof
lsof(list open files)是一个列出当前系统打开文件的工具。
计算当前 打开文件数总和:
lsof | awk '{print $2}' | wc -l
但是由于条目过多 ,运算时间超过30 s,
zabbix timeout默认值是3秒,最大也只能设置成30秒
所以不可行 。
但其实可以 运行一个 计划任务 , 把执行输入 到文件里,利用zabbix 读取就可以了
推荐阅读
- opencv|opencv C++模板匹配的简单实现
- Java|Java OpenCV图像处理之SIFT角点检测详解
- Me|Me too 女孩子都要变成“魔法师”
- 2019年PB|2019年PB County Senior Open, 保龄生涯(64)
- OpenCV|OpenCV-Python实战(18)——深度学习简介与入门示例
- 废材自救记录|虚拟机-无法安装vmware tools的解决方法
- 2.关于OpenGL|2.关于OpenGL 坐标系以及渲染流程
- grep|grep 时 Argument list too long
- 360|360 将停止 StartCom 数字证书业务;微软的 Visual Studio Tools for AI 现已提供使用
- OpenCV|OpenCV for Unity 通过WebCamTextureToMatHelper帮助类来获取摄像头的画面