-
禍害阿里云宕機(jī)3小時的IO HANG究竟是什么?
關(guān)鍵字: 阿里云宕機(jī)IO HANG本文來自微信公號“CSDN”(ID:CSDNnews),作者 | 王知無, 責(zé)編| 郭 芮。
2019年3月3日凌晨,微博炸鍋,有網(wǎng)友反映說阿里云疑似出現(xiàn)宕機(jī),華北很多互聯(lián)網(wǎng)公司受到暴擊傷害,APP、網(wǎng)站全部癱瘓,我自己的朋友圈和微信群里也有好友反饋,剛剛從被窩被叫起來去修Bug,結(jié)果發(fā)現(xiàn)服務(wù)器登不上去了......
凌晨2點(diǎn)37分,阿里云官方回應(yīng)稱:華北2地域可用區(qū)C部分ECS服務(wù)器等實(shí)例出現(xiàn)IO HANG,經(jīng)緊急排查處理后逐步恢復(fù),此外將根據(jù)協(xié)議盡快賠償。并已經(jīng)全面排查其他地域及可用區(qū),未發(fā)現(xiàn)此類情況。
IO HANG
那么問題來了,IO HANG是個什么鬼?簡單的說,就是服務(wù)器磁盤讀寫過慢,導(dǎo)致線程和進(jìn)程掛起。大量讀寫線程/進(jìn)程掛起導(dǎo)致服務(wù)器宕機(jī)......
阿里云有大量的類似RDS、HybridDB數(shù)據(jù)庫,支持海量數(shù)據(jù)在線事務(wù)(OLTP)和在線分析(OLAP),需要大量的IO讀寫,而Linux的IO性能將直接影響SQL的執(zhí)行速度,嚴(yán)重情況下將導(dǎo)致服務(wù)器卡死和宕機(jī)。
如何監(jiān)控自己服務(wù)器的IO情況呢?本文將帶大家詳細(xì)了解這些常用的命令。
如何監(jiān)控自己服務(wù)器的IO情況?
常用的命令包括:top,iostat和iotop。那么他們都有什么區(qū)別,以及如何使用呢?我們一一分解。
我本機(jī)安裝的是CentOS-7的虛擬機(jī),內(nèi)核信息為:
top命令
top命令提供了實(shí)時的對系統(tǒng)處理器的狀態(tài)監(jiān)視。它將顯示系統(tǒng)中CPU最"敏感"的任務(wù)列表,該命令可以按CPU使用、內(nèi)存使用和執(zhí)行時間對任務(wù)進(jìn)行排序,而且該命令的很多特性都可以通過交互式命令。
在Linux下,輸入`top` :
Tasks、Cpus、Mem和Swap分別代表了進(jìn)程信息、CPU信息和內(nèi)存信息。各個列表示的指標(biāo)意義如下 :
PID進(jìn)程id
USER進(jìn)程所有者用戶名
PR 優(yōu)先級
NI nice值
VIRT進(jìn)程使用的虛擬內(nèi)存總量
RES進(jìn)程使用的未被換出的物理內(nèi)存大小
SHR共享內(nèi)存大小
S 進(jìn)程狀態(tài)S=睡眠T=跟蹤R=運(yùn)行Z=僵尸進(jìn)程D=不可中斷的睡眠進(jìn)程
CPUcpu時間統(tǒng)計
MEM 物理內(nèi)存占比
TIME+進(jìn)程使用的CPU時間總計單位1/100秒
COMMAND命令行命令名
top常用的交互式命令使用格式:
top [-] [d] [p] [q] [c] [C] [S] [s] [n]
參數(shù)說明:
d:指定每兩次屏幕信息刷新之間的時間間隔,當(dāng)然用戶可以使用s交互命令來改變之;
p:通過指定監(jiān)控進(jìn)程ID來僅僅監(jiān)控某個進(jìn)程的狀態(tài);
q:該選項(xiàng)將使top沒有任何延遲的進(jìn)行刷新。如果調(diào)用程序有超級用戶權(quán)限,那么top將以盡可能高的優(yōu)先級運(yùn)行;
S:指定累計模式;
s:使top命令在安全模式中運(yùn)行,這將去除交互命令所帶來的潛在危險;
i:使top不顯示任何閑置或者僵死進(jìn)程;
c:顯示整個命令行而不只是顯示命令名。
通過top命令,我們即可查到當(dāng)前服務(wù)器的進(jìn)程占用CPU和內(nèi)存情況。
iostat命令
iostat主要用于監(jiān)控系統(tǒng)設(shè)備的IO負(fù)載情況,iostat首次運(yùn)行時顯示自系統(tǒng)啟動開始的各項(xiàng)統(tǒng)計信息,之后運(yùn)行iostat將顯示自上次運(yùn)行該命令以后的統(tǒng)計信息。用戶可以通過指定統(tǒng)計的次數(shù)和時間來獲得所需的統(tǒng)計信息。
基本使用:
$iostat -d -k 2
參數(shù)說明:
-d:顯示設(shè)備(磁盤)使用狀態(tài);
-k:某些使用block為單位的列強(qiáng)制使用Kilobytes為單位;
2:數(shù)據(jù)顯示每隔2秒刷新一次。
如果提示沒有iostat命令需要使用yum安裝,安裝命令如下:
`yum install sysstat`
參數(shù)解釋如下:
tps:該設(shè)備每秒的傳輸次數(shù),一次傳輸意思是“一次I/O請求”,多個邏輯請求可能會被合并為“一次I/O請求”;
kB_read/s:每秒從設(shè)備(drive expressed)讀取的數(shù)據(jù)量;kB_wrtn/s:每秒向設(shè)備(drive expressed)寫入的數(shù)據(jù)量;
kB_read:讀取的總數(shù)據(jù)量;
kB_wrtn:寫入的總數(shù)量數(shù)據(jù)量,這些單位都為Kilobytes。
上面的例子中,我們可以看到磁盤sda以及它的各個分區(qū)的統(tǒng)計數(shù)據(jù),當(dāng)時瞬時統(tǒng)計的磁盤總TPS是1.88,下面是各個分區(qū)的TPS(因?yàn)槭撬查g值,所以總TPS并不嚴(yán)格等于各個分區(qū)TPS的總和)。
在實(shí)際業(yè)務(wù)中,我們經(jīng)常使用的命令是:
iostat -xdm
例如:iostat -xdm 2,2代表2秒鐘刷新一次。
我們可以看到,%util這個參數(shù)即代表磁盤繁忙程度。100%表示磁盤繁忙, 0%表示磁盤空閑。但是我們需要注意,磁盤繁忙程度并不意味著磁盤讀寫速度大小。
iostat是系統(tǒng)級別的監(jiān)控指令,iostat給我們的展示結(jié)果揭示了我們當(dāng)前服務(wù)器磁盤的繁忙程度,雖然有一定的指導(dǎo)意義,但是不能精確到進(jìn)程級別,這時候我們就需要iotop了。
iotop命令
我們上文講到top命令,顧名思義,iotop代表io版本的top命令,使用起來簡單粗暴,直接在命令行敲下:iotop。
iotop命令可以按進(jìn)程統(tǒng)計IO狀況,我們可以指導(dǎo)當(dāng)前系統(tǒng)哪些進(jìn)程在占用IO,百分比是多少,占用IO的進(jìn)程是在讀,還是在寫,讀寫量是多少等信息。然后我們可以定位到具體的進(jìn)程,查看進(jìn)程詳情。
同樣個iotop命令有一個很像的命令叫做pidstat,參數(shù)很多。
例如:`pidstat -d` :
我們同樣可以看到每個進(jìn)程的讀寫情況,然后定位到具體的線程去查看問題。
總結(jié)
在生產(chǎn)實(shí)踐中,實(shí)時監(jiān)控我們的服務(wù)器IO情況至關(guān)重要,尤其是數(shù)據(jù)庫所在的服務(wù)器,它直接關(guān)系到我們的程序的讀寫速度、SQL的執(zhí)行情況等。
服務(wù)器IO的情況是我們選擇服務(wù)器的重要考慮因素之一。IO變差,輕則寫入服務(wù)讀寫響應(yīng)緩慢,重則導(dǎo)致大量進(jìn)程長時間掛起,數(shù)據(jù)庫擁堵卡死,服務(wù)器嚴(yán)重卡頓,甚至宕機(jī)。
作者:王知無,阿里巴巴高級大數(shù)據(jù)開發(fā)工程師,先后在京東,阿里等大型互聯(lián)網(wǎng)公司從事大數(shù)據(jù)平臺、實(shí)時計算和離線計算中間件和業(yè)務(wù)平臺開發(fā)。自媒體人,業(yè)余講師,希望為更多的互聯(lián)網(wǎng)開發(fā)人員提供最新和最熱的大數(shù)據(jù)方向的技術(shù)動態(tài),技術(shù)前沿研究。
- 原標(biāo)題:禍害阿里云宕機(jī)3小時的 IO HANG 究竟是個什么鬼?!
- 責(zé)任編輯:程北墨
- 最后更新: 2019-03-07 16:41:41
-
國家科技的引擎:軍工巨頭的權(quán)力密碼
2019-03-07 13:39 -
5G談“風(fēng)暴”可能為之尚早,芯片廠商之間的拉鋸戰(zhàn)是熱身賽
2019-03-07 13:35 科技前沿 -
中國手機(jī)“不克制”營銷史
2019-03-07 11:34 手機(jī) -
預(yù)防中興式危機(jī)?日媒稱華為向供應(yīng)商提出擴(kuò)大供給
2019-03-07 10:21 華為 -
“你打籃球像蔡徐坤”:微信翻譯這個bug是怎么回事?
2019-03-07 10:13 TMT觀察 -
中國頁巖氣單井日產(chǎn)量創(chuàng)新高
2019-03-07 07:28 能源戰(zhàn)略 -
蘋果供應(yīng)商曬折疊屏大招:正研發(fā)可折玻璃
2019-03-06 21:38 蘋果新“品” -
去年我國研發(fā)經(jīng)費(fèi)支出近2萬億元,比上年增11.6%
2019-03-06 21:03 科技前沿 -
只差一塊錢,小米9和iQOO到底誰更香?
2019-03-06 17:41 手機(jī) -
中國存儲器能否打破海外壟斷?
2019-03-06 17:29 TMT觀察 -
-
小米盧偉冰總結(jié)魅族Note 9:遺憾還在繼續(xù)
2019-03-06 17:06 -
三星正研發(fā)兩款折疊屏手機(jī),一款類似華為Mate X
2019-03-06 16:22 大公司 -
去年全球智能手機(jī)出貨量減少5.1% 北美銳減13.2%
2019-03-06 14:57 手機(jī) -
觀點(diǎn):提速降費(fèi)與5G使能兼顧 運(yùn)營商如何兼顧
2019-03-06 13:30 -
格力手機(jī)3代上架官網(wǎng) 售價3600元
2019-03-06 13:22 -
動工在即!華為要用100億打造上海青浦研發(fā)基地
2019-03-06 12:14 大公司 -
“夜視眼藥水” 治色盲有戲
2019-03-06 11:14 -
最新報告:萬億研發(fā)經(jīng)費(fèi),中國都花在哪兒了?
2019-03-06 10:28 科技前沿 -
蘋果iPhone XI配置曝光:三攝、水下模式、黑暗模式
2019-03-05 20:10 手機(jī)
相關(guān)推薦 -
“美國已解除這項(xiàng)對華出口禁令” 評論 240“不如申請成中國一省” ,德國鋰企竟如此激將歐盟 評論 125最新聞 Hot
-
“美國已解除這項(xiàng)對華出口禁令”
-
“印軍將全面排查中國產(chǎn)零部件”
-
美國和盟友鬧掰?“本質(zhì)沒變,中國需高度警惕”
-
斯塔默不吱聲,英財相當(dāng)場落淚,“哭崩”市場
-
家樂福CEO放話:對中國小包裹,要學(xué)特朗普征稅100%
-
莫迪表態(tài):金磚是重要平臺
-
“還想阻撓大陸武統(tǒng)?美國太晚了”
-
受賄數(shù)額特別巨大,齊同生被提起公訴
-
“美國占一半,中國分四成,歐洲...”
-
李在明最新涉華表態(tài)
-
叫完“爸爸”又被白宮整活,北約秘書長:驚喜且有趣
-
私自留存涉密材料,宋立強(qiáng)被開黨籍
-
印度外長在美表態(tài):要這么對中國
-
中國緊盯貿(mào)易協(xié)議,“若誰聯(lián)美抗中,必遭反制”
-
“美國人自豪感急劇下降,特別是民主黨人”
-
“富士康要求中國員工從印度撤離”
-