User-Profile-Image
hankin
  • 5
  • centos7
  • docker
  • mysql
  • PostgreSQL
  • git/gitlab
  • ELK
  • python
    • python-Tornado
    • python-django
  • redis
  • nginx
  • kvm
  • proxmox
  • mongo
  • kubernetes
  • prometheus
  • GlusterFs
  • nfs
  • freeswitch
  • httpd
  • shell脚本
  • linux
  • fastdfs
  • nextcloud
  • openssl
  • openvpn
  • rabbitmq
  • sqlite
  • svn
  • java
  • ubuntu
  • vue2
  • wordpress
  • php
  • IOT物联网
  • 项目
  • 故障处理
  • 树莓派
  • 博客存档
  • 未分类
  • 杂项
  • #1742(无标题)
  • 新视野
  • 分类
    • 项目
    • 树莓派
    • 杂项
    • 未分类
    • 新视野
    • 故障处理
    • 博客存档
    • wordpress
    • vue2
    • ubuntu
    • svn
    • sqlite
    • shell脚本
    • redis
    • rabbitmq
    • python-django
    • python
    • proxmox
    • prometheus
    • PostgreSQL
    • php
    • openvpn
    • openssl
    • nginx
    • nfs
    • nextcloud
    • mysql
    • mongo
    • linux
    • kvm
    • kubernetes
    • java
    • IOT物联网
    • httpd
    • GlusterFs
    • git/gitlab
    • freeswitch
    • fastdfs
    • ELK
    • docker
    • centos7
  • 页面
    • #1742(无标题)
  • 友链
      请到[后台->主题设置->友情链接]中设置。
Help?

Please contact us on our email for need any support

Support
    首页   ›   centos7   ›   正文
centos7

linux程序提示too many open files或者网络连接数1000左右上不去客户在线数1000左右上不去

2022-10-28 23:33:33
704  0 0

linux centos7上程序提示too many open files或者网络连接数1000左右上不去客户在线数1000左右上不去

显现描述:

centso7系统的上的某wss服务故障,当客户端在线数量达到1k左右,打开浏览器调试,刷新页面后wss消息一直pending中
wss服务日志提示 ...too many open files...

故障原因:

受到系统打开文件数限制,进程打开数量达到1024左右便受限不能继接受新用户连接,若用户数量为2k,则有1k左右的用户连接不上。

故障排除处理流程

查看该服务对应进程的限制情况
使用 ps -ef |grepxx 查看进程id

使用 cat /proc/进程id/limits 查看资源限制情况,注意查看标记处值为1024

使用lsof -p 进程id | wc -l 统计进程实际打开的文件数
#有可能会执行很久
临时解决办法-不用重启主机
1.关闭服务
2.设置临时参数
  ulimit -n 102400
3.在该ssh终端下重启服务
  #注意:设置临时参数只在当前ssh终端有效,所有必须在当期那ssh终端重启服务
永久解决办法

/etc/security/limits.conf

/etc/security/limits.d/xx-nproc.conf

cat /proc/sys/fs/file-max

vim /etc/sysctl.conf
fs.file-max = 6553600

https://www.lnmpweb.cn/archives/7326

拓展

ulimit用法:
 可用来控制shell执行程序的资源。
  -a  显示目前资源限制的设定。
  -c <core文件上限>  设定core文件的最大值,单位为区块。
  -d <数据节区大小>  程序数据节区的最大值,单位为KB。
  -f <文件大小>  shell所能建立的最大文件,单位为区块。
  -H  设定资源的硬性限制,也就是管理员所设下的限制。
  -m <内存大小>  指定可使用内存的上限,单位为KB。
  -n <文件数目>  指定同一时间最多可开启的文件数。
  -p <缓冲区大小>  指定管道缓冲区的大小,单位512字节。
  -s <堆叠大小>  指定堆叠的上限,单位为KB。
  -S  设定资源的弹性限制。
  -t <CPU时间>  指定CPU使用时间的上限,单位为秒。
  -u <程序数目>  用户最多可开启的程序数目。
  -v <虚拟内存大小>  指定可使用的虚拟内存上限,单位为KB。
评论 (0)

点击这里取消回复。

欢迎您 游客  

Copyright © 2025 网站备案号 : 蜀ICP备2022017747号
smarty_hankin 主题. Designed by hankin
主页
页面
  • #1742(无标题)
博主
tang.show
tang.show 管理员
linux、centos、docker 、k8s、mysql等技术相关的总结文档
210 文章 2 评论 194491 浏览
测试
测试