服务器问题记录

2018-02-27 10:59:31来源:oschina作者:云中游的鱼人点击

分享

页面请求,不定时无响应

现象:前端页面,有时会打不开;有时个别请求无返回信息;f12 查看请求,提示“no-referrer-when-downgrade”




分析过程:


1、查看请求对应的服务端是否正常(查看服务器日志),发现服务端对于请求可以正常响应;从前端来看,同一个请求,有时有返回信息,有时无返回信息


2、查看nginx access 日志,发现部分请求返回http 499;同一个uri,有返回http 200 和http 499


3、查看nginx upstream 配置,发现配置中存在一个无效的服务端地址


结论:


nginx 不会检测upstream 中配置的服务器是否有效,当配置了无效的服务端地址时,请求通过nginx 转发到该无效的服务器时,就会造成请求不可用,nginx 会将该请求的响应封装为 http 499

dubbo 提示线程池已满

现象:dubbo 提示线程池已满;前端显示服务不稳定


分析过程:


1、查看dubbo 服务日志,日志仅显示线程池已满


2、查看服务对应的 error 日志,发现zookeeper 分布式锁有时会释放失败,然后去查看zookeeper 日志,未发现异常


3、阿里云监控报警,数据库CPU 占比超过90%


结论:


查询某列表未使用缓存,导致大量请求(每分钟5W次左右)在短时间内访问数据库(本身查询速度没问题,但是请求量太大),造成数据库瓶颈,并对正常的写业务造成影响,大量对于数据库的访问,都在排队,造成响应时间过长,dubbo服务线程池压满


解决方案:


1、按需对查询增加 redis 缓存,JVM 缓存,nginx 缓存


2、对数据库进行读写分离处理,防止下一次大量请求导致的数据库瓶颈问题


MySql 存储空间清理

数据文件的清理:使用 truncate table_name 来清理数据量多的表


使用delete 的话,不会释放磁盘空间,需要使用:optimize table tab_name 来释放。


注意:optimize 会锁表,应在空闲时期进行处理


select sum(data_length + index_length + data_free) / 1024 / 1024 from information_schema.tables;


查询数据文件所占空间

挖矿病毒minerd

解决方案:


挖矿病毒伪装为 ntp 进程,但正常的ntp进程名为ntpd


rm -rf /var/spool/cron/crontabs rm -rf ~/.ssh/KHK75NEOiq rm -rf /opt/KHK75NEOiq33 rm -rf /opt/* rm -rf /etc/init.d/ntp rm -rf /usr/sbin/ntp rm -rf /usr/local/etc pkill minerd kill -9 (/usr/sbin/ntp的进程号)

微信扫一扫

第七城市微信公众平台