在日常運(yùn)維過(guò)程中,經(jīng)常碰到的問(wèn)題,就是cpu使用率高達(dá)100%,那遇到這個(gè)問(wèn)題時(shí),需要怎么去解決呢,不知道方法的小伙伴,就會(huì)感覺(jué)一籌莫展。如果知道方法,一步一步的去排查,很容易就能解決linux系統(tǒng)CPU資源耗盡的故障。
首先我們要定位到底什么原因?qū)е耤pu使用率超標(biāo),先定位看看是什么進(jìn)程消耗掉了cpu資源。
第一步可以使用ps命令查看一下
ps aux|sort -n -k4|tail -20
上述命令可以查看消耗cpu資源最多的20個(gè)進(jìn)程,不過(guò)是逆序的,這樣能定位出是什么進(jìn)程引起的CPU資源耗盡。
喜歡top的同學(xué),也可以用top進(jìn)行查看,top工具使用也是很方便,這里就簡(jiǎn)單介紹一下top的使用
在top里按cpu使用率排序
top進(jìn)入top界面之后,使用shift+p就可以按cpu進(jìn)行排序
在top里按內(nèi)存使用率排序
top進(jìn)入top界面之后,使用shift+m就可以按內(nèi)存進(jìn)行排序
到這里基本就可以定位到是什么進(jìn)程占用了cpu資源,如果是MySQL進(jìn)程消耗大量的cpu資源,該怎么去定位呢。
數(shù)據(jù)庫(kù)占用CPU資源,90%以上情況是因?yàn)槁齭ql導(dǎo)致,原理也很簡(jiǎn)單,因?yàn)槁齭ql會(huì)導(dǎo)致全表掃描,掃描數(shù)據(jù)量太大,內(nèi)存排序,磁盤(pán)排序,鎖爭(zhēng)用等。那怎么去排查呢,使用下面命令
show full processlist
查看到有sending data,copying to tmp table,copying to tmp table on disk,sorting result,using filesort,locked有這種狀態(tài)的sql語(yǔ)句基本都是元兇了,殺掉這些慢sql查詢就能解決問(wèn)題,當(dāng)然還得聯(lián)系開(kāi)發(fā)對(duì)相關(guān)程序進(jìn)行優(yōu)化處理。