摘要:順風(fēng)車運(yùn)營研發(fā)團(tuán)隊(duì)黃桃問題現(xiàn)象某機(jī)器這段時(shí)間出現(xiàn)掉地的報(bào)警如圖原因分析查看當(dāng)時(shí)的監(jiān)控,等今天出現(xiàn)兩次突降,一次是點(diǎn)左右,一次是左右,查看整周也經(jīng)常出現(xiàn)突降,如圖在分時(shí)突然升高也在時(shí)出現(xiàn)大量寫當(dāng)時(shí)短暫出現(xiàn)降低,之后出現(xiàn)徒
順風(fēng)車運(yùn)營研發(fā)團(tuán)隊(duì) 黃桃
問題現(xiàn)象
某機(jī)器這段時(shí)間出現(xiàn)cpu-idle掉地的報(bào)警 如圖:
原因分析
查看當(dāng)時(shí)的監(jiān)控(php-fpm-idle、cpu-idle,io-wait、io-write 等)
(1)php-fpm-idle今天出現(xiàn)兩次突降,一次是12點(diǎn)左右,一次是16:30左右,查看整周也經(jīng)常出現(xiàn)突降,如圖
(2)io-wait在11:58分時(shí) 突然升高
(3)io-write也在11:58時(shí)出現(xiàn)大量寫:
(4)cpu-idle當(dāng)時(shí)短暫出現(xiàn)降低,之后出現(xiàn)徒增,但是結(jié)合整周的曲線來看,一直維持在70-80之間,徒增原因待分析:
(5)原因推測(cè):因?yàn)楫?dāng)時(shí)出現(xiàn)了大批量的寫日志,導(dǎo)致io-wait上升,php-fpm進(jìn)程因?yàn)閷懳募霈F(xiàn)延時(shí),造成整體響應(yīng)過慢,從而導(dǎo)致了fpm掉地; 對(duì)同一個(gè)文件進(jìn)行 write時(shí),大批量并行會(huì)出現(xiàn)等待,阻塞
驗(yàn)證推測(cè)
(1)查看當(dāng)時(shí)的php-fpm的慢日志,看當(dāng)時(shí)阻塞的地方,基本是在調(diào)用fwrite阻塞
(2)查看當(dāng)時(shí)的程序日志trace.log的大小,日志文件越大的時(shí)間段,正好是fpm-idle下滑嚴(yán)重的階段:
(3)在通過 sar命令,驗(yàn)證下當(dāng)時(shí)的寫入磁盤情況,在出現(xiàn)掉地的時(shí)間段確實(shí)出現(xiàn)極大的寫入,wr_sec/s 從每秒幾百低峰的幾百增長(zhǎng)到十幾萬:
問題原因及優(yōu)化建議
寫入日志大可能兩方面原因:
(1)當(dāng)時(shí)請(qǐng)求暴增
(2)請(qǐng)求未暴增,但是某些請(qǐng)求觸發(fā)了某些不合理的打日志
驗(yàn)證原因1,出現(xiàn)問題時(shí)間段每秒的流量
32 [02/Jul/2018:12:01:12 18 [02/Jul/2018:12:01:13 18 [02/Jul/2018:12:01:14 42 [02/Jul/2018:12:01:15 30 [02/Jul/2018:12:01:16 35 [02/Jul/2018:12:01:17 26 [02/Jul/2018:12:01:18 30 [02/Jul/2018:12:01:19 1 [02/Jul/2018:12:01:22 108 [02/Jul/2018:12:01:24 17 [02/Jul/2018:12:01:25 1 [02/Jul/2018:12:01:27 1 [02/Jul/2018:12:01:29 1 [02/Jul/2018:12:01:30 9 [02/Jul/2018:12:01:33 1 [02/Jul/2018:12:01:31 1 [02/Jul/2018:12:01:32 146 [02/Jul/2018:12:01:33 62 [02/Jul/2018:12:01:34 44 [02/Jul/2018:12:01:35 1 [02/Jul/2018:12:01:37 1 [02/Jul/2018:12:01:38 1 [02/Jul/2018:12:01:41 2 [02/Jul/2018:12:01:44 2 [02/Jul/2018:12:01:50 1 [02/Jul/2018:12:01:45 12 [02/Jul/2018:12:01:50 2 [02/Jul/2018:12:01:45 7 [02/Jul/2018:12:01:50 1 [02/Jul/2018:12:01:46 1 [02/Jul/2018:12:01:50 1 [02/Jul/2018:12:01:46 15 [02/Jul/2018:12:01:50 7 [02/Jul/2018:12:01:48 2 [02/Jul/2018:12:01:50 1 [02/Jul/2018:12:01:48 342 [02/Jul/2018:12:01:50 65 [02/Jul/2018:12:01:51 46 [02/Jul/2018:12:01:52 54 [02/Jul/2018:12:01:53 1 [02/Jul/2018:12:01:55 1 [02/Jul/2018:12:01:56 1 [02/Jul/2018:12:01:57 1 [02/Jul/2018:12:01:59 16 [02/Jul/2018:12:02:03 1 [02/Jul/2018:12:02:01 1 [02/Jul/2018:12:02:02 42 [02/Jul/2018:12:02:03 1 [02/Jul/2018:12:02:02 187 [02/Jul/2018:12:02:03 39 [02/Jul/2018:12:02:04 40 [02/Jul/2018:12:02:05 25 [02/Jul/2018:12:02:06 44 [02/Jul/2018:12:02:07 29 [02/Jul/2018:12:02:08
正常情況是QPS是30左右,出問題時(shí)間段則非常不穩(wěn)定,時(shí)高時(shí)低,相差非常大,例如在 12:01:50 時(shí) 342 qps,但是前十幾秒則基本都是個(gè)位數(shù);原因?前幾十秒都阻塞了,響應(yīng)不了,積累到了12:01:50才響應(yīng);整體流量并未出現(xiàn)暴增;
驗(yàn)證原因2,查看當(dāng)時(shí)traceId日志,查看寫進(jìn)去的內(nèi)容:
發(fā)現(xiàn)這段寫入非常巨大,一行就119kb ,總共寫了 33555 行,總大小占:33555 * 119KB = 3993045KB =3899M 基本可以斷定為這行出的問題了
優(yōu)化建議:在底層打日志的類中對(duì)字符串長(zhǎng)度做限制,避免這種大批量的寫入;
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://m.hztianpu.com/yun/28968.html
摘要:周三晚加上了對(duì)阿波羅超時(shí)的監(jiān)控,周四觀察上線期間阿波羅超時(shí)指標(biāo)的變化,時(shí)間也吻合。月日下午又報(bào)了一次警與此同時(shí)的阿波羅超時(shí)監(jiān)控這里同時(shí)列出機(jī)器指標(biāo)的目的是為了說明,盡管沒有報(bào)警,但機(jī)器的指標(biāo)變化和是統(tǒng)一的。 順風(fēng)車運(yùn)營研發(fā)團(tuán)隊(duì) 熊浩含 問題現(xiàn)象 線上報(bào)警群里時(shí)而有php-fpm-idle的零星報(bào)警,持續(xù)時(shí)間很短(幾秒甚至一秒),見下圖 showImg(https://segmentf...
摘要:相信大家在學(xué)習(xí)的過程中都用到過這個(gè)模塊,但是可能只是用到了其中的一兩個(gè)方法,對(duì)于其更強(qiáng)大的功能沒有更深的認(rèn)識(shí)。今天我就按照自己的方式向大家介紹一下這個(gè)模塊。 相信大家在學(xué)習(xí)python的過程中都用到過這個(gè)模塊,但是可能只是用到了其中的一兩個(gè)方法,對(duì)于其更強(qiáng)大的功能沒有更深的認(rèn)識(shí)。今天我就按照自己的方式向大家介紹一下這個(gè)模塊。groupby:用于分組 rows=[ {name:j...
摘要:但執(zhí)行后沒有任何信息輸出,這時(shí)候通過什么方法能知道程序錯(cuò)在哪里這里可以將解決問題能力分為個(gè)等級(jí),越到后面的表示能力越強(qiáng)。這個(gè)考驗(yàn)全部通過,表明此程序員已經(jīng)具備了專業(yè)程序員應(yīng)該有的解決問題能力了。 這個(gè)話題老生長(zhǎng)談了,在面試中必然考核的能力中,我個(gè)人認(rèn)為解決問題能力是排第一位的,比學(xué)習(xí)能力優(yōu)先級(jí)更高。解決問題的能力既能看出程序員的思維能力,應(yīng)變能力,探索能力等,又可以看出他的經(jīng)驗(yàn)。如果解...
摘要:的一鍵安裝開發(fā)環(huán)境非侵入式監(jiān)控平臺(tái)優(yōu)化系統(tǒng)性能定位的神器之前在用做本地開發(fā)環(huán)境,因?yàn)闆]有這些對(duì)程序性能追蹤及分析的工具,所以索性基于的編排了一套自己使用。 DNMP PLUS dnmp = Docker + Nginx + MySQL + PHP + Redis + MongDB plus = xhgui + xhprof + tideways dnmp-plus = PHPer 的一...
摘要:會(huì)依據(jù)協(xié)議,將請(qǐng)求的數(shù)據(jù)等信息發(fā)送給解析器,接下來解析器會(huì)解析文件,初始化執(zhí)行環(huán)境,然后處理請(qǐng)求,再以規(guī)定的格式返回處理后的結(jié)果,退出進(jìn)程。它的特點(diǎn)是會(huì)在動(dòng)態(tài)分配處理進(jìn)程給請(qǐng)求,以達(dá)到提高效率的目的,大多數(shù)實(shí)現(xiàn)都會(huì)維護(hù)一個(gè)進(jìn)程池。 PHP作為世界上最好的編程語音,被廣泛的運(yùn)用到Web開發(fā)中。因?yàn)槠湔Z法和C類似,有著非常平緩的學(xué)習(xí)曲線,越來越多的人使用PHP進(jìn)行Web產(chǎn)品的快速開發(fā)。PH...
閱讀 930·2021-10-11 10:59
閱讀 2860·2019-08-30 15:43
閱讀 2202·2019-08-30 11:08
閱讀 1708·2019-08-29 15:20
閱讀 1113·2019-08-29 13:53
閱讀 548·2019-08-26 13:24
閱讀 1698·2019-08-26 13:24
閱讀 2887·2019-08-26 12:08