记录一次云磁盘读取read/IO非常高导致服务器卡死的情况

出现问题:研发更新发布后,服务器异常卡顿,查看监控,磁盘读取read非常高,基本都是峰值,用iotop命令看到读取频率较高的都是些阿里云盾或者ELK的firebeat日志提取服务在读取,把这些都kill掉,还是卡,又怀疑是不是服务器被攻击,但是没有任何可疑IP,也没发现异常进程,于是干脆重启服务器,重启后就不卡了,非常流畅,怀疑是服务的问题,将服务一个个重启,发现启动tomcat-web服务的时候,又卡的不行,定位到问题点了,因为研发使用jenkins自动发布的时候是会重启这个服务的。

        继续排查问题,强行启动了tomcat-web,关闭了mqbroker,服务器又正常了,以为问题出在了mqbroker上,因为mq是消息队列,是存在读取的情况的,但是这么点业务不至于读到服务器卡死,于是继续重启服务器,由于mqbroker是开机自启动,启动后服务器没有卡顿现象,证明mqbroker没问题,问题又回到了tomcat-web上,检查启动命令发现没有配置启动内存参数。

        查看了下服务器内存,可用内存还有5G,但还是尝试了下在tomcat/bin目录下的catalina.sh文件cygwin=false上面添加了一行参数:

       JAVA_OPTS="-Xms2g -Xmx2g -XX:PermSize=512m -XX:MaxPermSize=8g"

-XX:PermSize建议设置为物理内存的64分之一,-XX:MaxPermSize建议设置为物理内存的4分之一

再次启动服务器后正常了,不卡了

原因分析:

        rocketmq新消息在内存存储,内存不足会持久化到磁盘,就会存在频繁的磁盘与内存数据交换。

        不管是tomcat还是jar包服务,建议在启动时添加内存参数限制。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值