有同学咨询,他们公司的一台服务器,是一台Linux用作负载均衡的服务器,最近在使用过程中,随着连接数的增加,服务器突然挂掉了,这是怎么回事呢?今天丁老师就这个问题做一下解答。
故障分析
服务器:Linux
用途:负载均衡服务
故障情况:用户连接数增加,服务器挂掉。
故障排查:
1.应用程序故障:通过测试,无Bug报错,应用程序正常。
2.系统故障:无,系统无报错,仅用户连接增加到一定程度后才会崩溃。
猜测与分析:
在确定不是系统本身和部署的程序故障而导致的问题后,丁老师心里已大概有了方向,估计就是哪个地方的配置引起的故障,意思就是某个地方配置的连接数量达到了实际连接数量的峰值而导致的系统崩溃。
故障修复
在确定了大概方向后,丁老师对相关的系统文件进行了逐一排查。
1.首先,分别查看系统CPU负载情况、内存是否爆满、load是否异常。
top
htop
uptime2.一切正常,其次查看系统连接数。
netstat -an | wc -l
ulimit -n此时发现,系统连接数非常高,并且文件句柄返回1024,此时丁老师判断该问题大致是由高并发引起的故障。
3.查看Nginx服务器日志,检查报错信息。
tail -f /var/log/nginx/error.log在错误日志中,查看到返回too many open files信息,再查看系统日志。
/var/log/messages
dmesg返回socket: too many open files。这时丁老师已经可以判断,这基本上是由高并发引起文件句柄被耗尽而引发的故障。
4.查看limits.conf
/etc/security/limits.conf5.增加连接数
soft nofile 65535
hard nofile 655356.修改系统配置
/etc/systemd/system.conf
/etc/systemd/user.conf
DefaultLimitNOFILE=65535
DefaultLimitNPROC=655357.给Nginx加大文件句柄。
vi /usr/lib/systemd/system/nginx.service
LimitNOFILE=655358.重启服务器,故障解决。
全文总结
通过该问题发现,该故障引起的核心是Linux服务器在高并发情况下,因文件句柄上限过低(默认设置为1024),导致连接耗尽,服务崩溃,同时相关配置是未持久化的,因此每次重启后,都会恢复默认值从而再次引起故障。
这种故障出现时通常表现为:
1.网站突然打不开、请求超时。
2.并发一高服务器就崩溃宕机。
3.服务器重启后会短暂恢复,但很快就再次崩溃。
常见错误日志:
too many open files
EMFILE
socket: too many open files针对该故障,丁老师先是通过查看系统负载、连接数以及错误日志,快速定位是由文件句柄耗尽引起的故障。然后在解决时,通过修改Nginx的limits.conf、调整systemd的LimitNOFILE等配置文件参数,提升系统的文件句柄数配置,避免因高并发导致处罚文件句柄上限而引起崩溃的问题。
二维码码有三个参数: 数据类型、大小(“像素 ”数)和纠错级别。能存储多少信息也取决于这些参数。例如,纠错级别越低,可存储的信息越多,但代码越难被读者识别。最大尺寸和最小纠错值如下:最大字符数 7089个字符(纯数字)字母数字 4296...
今天有同学在群里提问,在使用photoshop编辑文字时,经常会弹出一个文字选择的面板如图:这时文字也无法输入,也无法取消和关闭,很是烦人,怎么取消这个功能呢?经过丁老师研究,方法很简单:1.打开photoshop菜单-编辑2.选择首选...
#通用微信小程序原型生成提示词 #角色设定与技术要求 您是一位世界级的全栈工程师,同时精通产品规划和UI/UX设计。现在需要开发一款微信小程序,要求输出一套完整的微信小程序原型图。 请严格按照以下要求执行: #核心技术规范 使用Tail...
有做程序员的同学最近在群里问,最近在找工作时,经常遇到Java程序员要求精通Dubbo、Marven、Jekins,可这些都是什么东东呀?么乱七八糟的呀,完全搞不懂呢。哈哈,其实这些都是java开发中, 经常用到的中间件程序,别着急,丁...
挺不错的浏览器,强加入了edge image viewer图片浏览器,感觉不是那么好,对于开发者来说,更想要原生的东西。包括微信网页版里的表情图片,用edge image viewer打开的话,无法保存为gif格式,即使保存了,也只是第一帧...
上一期我们讲到了《微信小程序发布后多久可以能被搜索到?》,我们已经知道了微信小程序在上架后,多久能被搜索到的一个时间范围。本期我们讲一下,微信小程序被搜索,如何提升排名,是搜索结果靠前的方法。首先,微信小程序的搜索结果排名,并没有一个固定的...
最近要在某单位内网部署项目,使用了lnmp来配置环境,软件安装成功,可安装后不管是打开ip地址还是默认站点,都提示nginx 403 forbidden,这是怎么回事呢?首先,已经出现了nginx 403提示,说明nginx是安装正常的。其...
国外很多VPS购买后,只有密码,没有登录账号,如何登录呢?我们以one.com为例,购买了VPS后,只能设置密码,但是用root,也无法登录,是怎么回事呢?查了官方文档,原来修改的VPS密码,不是root的,这个VPS默认的账号是admin...