服务器CPU占用突然飙升有哪些常见原因?
内容摘要
服务器CPU突然飙升常见原因有挖矿入侵、定时任务大量压缩、慢SQL或流量突增、爬虫、内存泄漏与Full GC、死循环等;排查应先top -H看线程与用户/内核态并核对定时任务时间点,不要急着重启以免丢失线索。
上礼拜三凌晨两点多,手机嗡嗡震,运维群里@我,说一台阿里云的机器CPU从平时15%直接干到98%,告警短信发了十几条。我眯着眼登上去,top一看,一个名字乱七八糟的进程吃满核心,路径在/tmp底下——得,挖矿的。顺着查,Redis没设密码还开着公网端口,被人塞进来了。删进程、改配置、加固安全组,折腾到四点半。
这种事我碰得太多了。突然飙CPU,八九不离十就那么几个套路。
最常见其实是自己人干的。之前有个项目,每天凌晨三点准点炸一下,查了半宿,结果是同事写的一个crontab备份脚本,tar -zcvf压一堆日志,好几个G,单线程硬压,机器直接趴窝。
还有就是慢SQL或者流量突增。有次压测,QPS刚上来,MySQL里一个没走索引的查询全表扫,CPU蹭蹭往上涨,慢日志里一排几秒的。也有被爬虫薅的,日志一分钟涨几百M,nginx光写盘就够呛。
再就是内存泄漏导致GC疯跑,或者代码里一个while没写break,上线才发现。Java堆配得太小也很典型,Full GC一直不停,CPU压根降不下来。
现在我的习惯是先top -H看线程,再看是用户态还是内核态,然后对一下时间点是不是撞上哪个定时任务,基本能锁个八九不离十。别一上来就重启,重启完啥线索都没了。
版权声明:本文来自 GJ站长论坛《服务器CPU占用突然飙升有哪些常见原因?》
原文链接:https://www.gj0.com/thread-1715.html
转载请注明出处并保留本声明;内容仅代表作者观点,与本站立场无关。若本文涉嫌侵权,请联系本站处理。
原文链接:https://www.gj0.com/thread-1715.html
转载请注明出处并保留本声明;内容仅代表作者观点,与本站立场无关。若本文涉嫌侵权,请联系本站处理。
全部回复 0
还没有回复,来抢沙发~