成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

風云再續:他抖任他抖,IO診斷在我手

系統
話說上回青囊協助曾泰處理完官道的網絡抖動大案之后,接到急報說邗溝發生鹽船劇烈抖動以致傾覆的大案,狄仁杰又帶上青囊火速啟程趕往邗溝。

[[432179]]

本文轉載自微信公眾號「云巔論劍」,作者李光水、毛文安 。轉載本文請聯系云巔論劍公眾號。

一、引子

話說上回青囊協助曾泰處理完官道的網絡抖動大案之后,接到急報說邗溝發生鹽船劇烈抖動以致傾覆的大案,狄仁杰又帶上青囊火速啟程趕往邗溝。

[[432180]]

二、邗溝現場斷案

此時大運河上一片沉寂,青囊遞給狄仁杰兩片從案發現場打撈上來,標記有“iostat印記”的鹽船龍骨碎片,沉聲道,“邗溝覆船案,兩年內已發生多次。每到邗溝,大風忽起,船只便開始抖動搖晃;更甚者,船只直接解體。為此,我收集到解體船只的碎片,發現這船體抖動確有玄機。”運河之上押運官鹽的船只,遇風浪或保持穩健前行,或搖晃解體,如能知曉各部件抖動之時間長短,分析其關聯部位,便能揪出幕后真兇。

面對此龍骨碎片,青囊不禁聯想到之前處理 IO 問題時的一件奇事,當時系統也是抖得厲害,blktrace 等工具無法清楚解釋在哪里抖的,后來便研究了一下 IO 領域的抖動問題,它表現為在一段時間內,IO 性能無法始終保持一致,會突發性的下跌到不符合我們所預期的性能范圍。就業務影響而言,數據存儲效率低下、無法維持穩定的對外服務,影響用戶體驗。目前看邗溝覆船案,極有可能跟 IO 抖動有關,不禁喜上眉梢。

狄仁杰接過碎片,仔細端詳 iostat 中的各指標,沉吟片刻道,“磁盤 vda 乃官家所部署的云盤,號稱 us 級別延遲,現在可以看到寫 iops 最高也不過十、寫 IO 最高也不過百 KB/s,何以在如此低的 IO 負載情況下,竟有數十ms的await沖高,著實令我百思不得其解。”

await 是一個從時間維度描述 IO 性能的指標,表示為單位時間內每個 IO 請求被處理的平均耗時,單位為微秒或者毫秒,亦可理解為 IO 的響應時間。這個指標是內核 IO 子系統 block 層透出來后經過系統工具 iostat 加工之后的結果,因此,它既包含了一個 IO 在 IO 軟件棧中處理的時間,也包含了磁盤的處理時間。因此 await 沖高現象是 IO 抖動問題中比較典型的特征。

“狄閣老莫愁,針對此類 IO 抖動問題,鄙人正巧最近研制出一診斷利器——iosdiag,已經集成到 sysAK 的工具集,或許可為閣老排憂解難”,青囊笑道。

眾人目光炯炯,恍若流光般向青囊匯聚而去,狄仁杰笑道,“青囊之神技,果真層出不窮,且與我等說來,何為 iosdiag?”

三、 iosdiag 功能介紹

青囊道:

iosdiag,是 sysAK 工具平臺中的 IO 存儲診斷工具,已具備 IO 時延探測功能、IO HANG 診斷功能兩大功能,前者用于分析當前 IO 存儲鏈路中的時延抖動問題并確定抖動邊界,后者可檢測當前系統中 IO HANG 事件并確定問題邊界。

IO 時延,指 IO 在其生命周期內所經歷的 IO 各路徑上的時間損耗,通常情況下,可以分為 OS 耗時和磁盤耗時,而 OS 內比較受關注的就是 IO 棧了,IO 棧里面又包含復雜的 block、驅動等部分;正所謂每每碰到 IO 抖動問題,必有人抓耳撓腮、暗無天日吶。

iosdiag 中的 iolatency工具,實現了 IO 時延探測功能,最喜隱匿于內核 IO 棧之中,竟能眼觀六路,耳聽八方,以迅雷不及掩耳之勢,將各 IO 在生命周期之內,不同關鍵路徑上的時間戳信息盡收于乾坤寶袋之中;而后又基于此,計算 IO 路徑上的所有時延數據,來確認 IO 耗時最大的路徑(磁盤耗時或者軟件內耗時),可謂神通廣大,法力無邊。

且 iosdiag latency 已經成功定位到多起線上 IO 抖動問題,目前具備如下特色:

  • 支持捕獲 IO 延遲超過指定耗時的 IO
  • 支持獲取 IO 各路徑延遲信息,準確定界磁盤、OS 耗時(包含 block、驅動、磁盤、IO 結束耗時)問題
  • 信息格式化輸出,更直觀,具備完整單個 IO 信息、所有 IO 統計信息、進程級IO 耗時分析,能夠直接了當的知道哪里出了問題

“甚好!知我者,真乃青囊也,此迷局當以 iosdiag latency 破之”,邊聽青囊介紹,狄仁杰一臉愁容漸漸消散,滿面春風取而代之,如今已是柳暗花明,既有 iosdiag latency 利器在手,何不上去診斷一把。

四、iosdiag 抖動問題破解

狄仁杰早已迫不及待,讓青囊運行了 sysak iosdiag latency,開始了激動人心的 IO 抖動診斷之旅。

  1. [root@VM20200727-16 /root] 
  2. #sysak iosdiag latency -b 10 -t 10 

以上命令表示,sysak iosdiag latency 將在系統中運行 10 秒,并收集系統中該時間段內延遲超過 10ms 的 IO,隨后退出診斷,屆時,IO 在各路徑上的延遲將無所遁形。時間 1 秒 1 秒過去,眾人滿懷期待,當看到 iosdiag 診斷結束之后,狄仁杰隨即打開了診斷日志文件,果然大有玄機,而后眾人發現,總共收集到 9 個IO,其中 flush/fua io 有 6 個,而經過統計主要 IO 耗時竟然集中在 OS 的 block 中(最大耗時 51.4ms)

  1. ... 
  2.         "diskname":"vda"
  3.         "total_ios": 9, 
  4.         "flush/fua":6 
  5.         "delays":[ 
  6.             ... 
  7.             { 
  8.                 "component":"os(block)"
  9.                 "percent":"58.988%"
  10.                 "max":51442, 
  11.                 "min":14, 
  12.                 "avg":20686 
  13.             }, 
  14.             { 
  15.                 "component":"os(driver)"
  16.                 "percent":"0.034%"
  17.                 "max":22, 
  18.                 "min":4, 
  19.                 "avg":12 
  20.             }, 
  21.             { 
  22.                 "component":"disk"
  23.                 "percent":"40.966%"
  24.                 "max":51291, 
  25.                 "min":250, 
  26.                 "avg":14366 
  27.             }, 
  28.             { 
  29.                 "component":"os(complete)"
  30.                 "percent":"0.009%"
  31.                 "max":7, 
  32.                 "min":2, 
  33.                 "avg":3 
  34.             } 
  35.         ] 
  36.         ... 

“iosdiag 果真神器也!”,狄仁杰忍不住贊嘆,朝青囊豎起了大拇指。

“只是現下已知 os(block) 耗時嚴重,可否進一步獲悉耗時原因?”

“當然可以,狄閣老且看,診斷結果中不僅包含延遲分布統計信息,同時還包含延遲最大的 IO,我們可以將此 IO 展開來看,或可發現其中玄機”,青囊笑答曰。

  1. "abnormal_seq":{ 
  2.         "summary":{ 
  3.             "check_time":"Thu Oct 14 11:21:36 2021"
  4.             "event":"slow io"
  5.             "component":"os(block)"
  6.             "delay":"51442 us"
  7.             "total_delay":"51738 us"
  8.             "cpu":0, 
  9.             "comm":"jbd2/vda1-8 -> kworker/4:1H"
  10.             "pid":"358 -> 352"
  11.             "diskname":"vda"
  12.             "op":"FWFS"
  13.             "sector":59159840, 
  14.             "data_len":4096 
  15.         }, 
  16.         "detail":{...} 
  17.     } 

“此 IO 為 jbd2 線程發起的 flush/fua 請求(op: FWFS),總耗時 51.7ms,而 block 層耗時竟有 51.4ms,實在是不正常。正如我們對 block 層 flush 實現機制的理解,flush/fua 請求在真正寫入數據前后,要執行多次 flush 請求,不僅要求串行執行,而且還需要 workqueue 的介入,繁瑣至極。由此可見,有兩種可能性導致此 IO 耗時長:workqueue 調度慢或者磁盤本身就慢。”

聽完青囊的分析,狄仁杰面露喜色,認為已經離真相不遠,追問,“不知是否還有信息可以查看進一步原因?”

“狄閣老此前是否留意到除了 os(block)路徑耗時嚴重之外,還有 disk 路徑也占據了 40% 的的耗時?由此,我料問題必定由磁盤引起,我們可再找一個捕獲到的寫 IO 請求展開來看”,青囊似乎早已了然于胸,淡然從診斷日志文件中隨意取出一個寫 IO 信息。

  1.     "summary":{ 
  2.         "check_time":"Thu Oct 14 11:21:36 2021"
  3.         "event":"slow io"
  4.         "component":"disk"
  5.         "delay":"32465 us"
  6.         "total_delay":"32520 us"
  7.         "cpu":0, 
  8.         "comm":"jbd2/vda1-8 -> kworker/0:1H"
  9.         "pid":"358 -> 357"
  10.         "diskname":"vda"
  11.         "op":"WS"
  12.         "sector":59159848, 
  13.         "data_len":98304 
  14.     }, 
  15.     "detail":{ 
  16.         "delays":[ 
  17.             {...}, 
  18.             { 
  19.                 "component":"block"
  20.                 "delay":43 
  21.             }, 
  22.             { 
  23.                 "component":"driver"
  24.                 "delay":8 
  25.             }, 
  26.             { 
  27.                 "component":"disk"
  28.                 "delay":32465 
  29.             }, 
  30.             { 
  31.                 "component":"complete"
  32.                 "delay":4 
  33.             } 
  34.         ], 
  35.         "points":[...] 
  36.     } 

至此眾人發現,正常的寫 IO,在磁盤側的延遲竟然達到 32.4ms,同時此 IO 也是通過 workqueue 下發,但 block 側的消耗也僅 43us,由此可見沒有 workqueue 調度慢問題,是磁盤有問題。

自打將磁盤升級之后,線上穩定運行數月,未見await沖高問題,而沉寂了許久的大運河也重現往日喧囂,官家鹽船南來北往,淮北百姓終于又能吃上官鹽了。

五、后記

一個月后,破案捷報傳到洛陽,武則天讀完奏折驚嘆不已,“邗溝覆船已發多次,各家工具齊上,尚不能破,獨狄懷英竟以青囊之 iosdiag 神器,不日便告功成,真乃神乎其技矣。只是這青囊,為何許人也?”

這時忽有內史答曰,“青囊,英文名 sysAK,是龍蜥社區(OpenAnolis)的一個開源項目,里面有諸多工具神技”

武則天驚呼,“sysAK,真乃神技也!”

而此時遠隔千里之外的大運河邊,楊柳依依,狄仁杰正依依不舍送別青囊,“這些日子多虧有你解決各類疑難雜癥,你那諸多神技,也令我大開眼界,我實在不舍你離去”。

 

“這些時日承蒙閣老厚愛,奈何要務在身,不便久留。日后若閣老再有需要,哪怕遠在天邊,青囊必定肝腦涂地,為閣老解憂。”

 

責任編輯:武曉燕 來源: 云巔論劍
相關推薦

2020-02-11 13:22:20

this函數JavaScript

2019-11-06 16:33:29

Ignite微軟技術

2019-06-21 09:55:10

刷抖美腿App

2020-08-06 10:09:08

抖音木馬安全隱私

2015-11-06 11:02:24

微信羅素生活

2022-01-22 07:44:12

抖音PC 版電腦刷抖音

2021-08-16 08:02:34

技術文檔代碼

2020-07-22 08:58:56

C++特性函數

2018-06-22 14:03:37

mysql刪庫

2009-06-10 09:37:39

2021-04-29 05:58:20

微信搖一搖抖音

2015-03-18 11:38:38

.com

2025-05-28 01:22:00

SpringBeanXML

2021-01-04 10:04:11

人臉識別人工智能數據

2021-04-07 13:31:36

人臉識別人工智能AI

2015-03-25 09:42:21

2025-05-26 04:21:00

2009-06-02 08:14:42

2021-06-28 05:19:32

抖音電腦

2022-02-22 08:29:59

Vue前端防抖
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产精品久久久久9999鸭 | 欧美一区二区在线观看 | 成人欧美| 亚洲 一区 | av网站推荐 | 日本一区二区三区在线观看 | 超碰成人免费 | 国产黑丝av| 日本久久一区二区三区 | 综合九九 | 亚洲成人免费在线观看 | 国产精品一区二区视频 | av在线一区二区三区 | 国产成人综合网 | 91精品久久久久久久久 | 91高清视频在线观看 | 啪一啪 | 伦理午夜电影免费观看 | 国产精品久久 | 99精品电影 | 五月天天丁香婷婷在线中 | 欧美国产日韩精品 | 亚洲精品久久久一区二区三区 | 日本久久综合 | 欧美二区三区 | 国产一区二区三区四区 | 在线观看免费福利 | 精品91久久 | 亚洲视频免费在线观看 | 一区二区欧美在线 | 日韩精品一二三 | 欧美黑人又粗大 | 四色成人av永久网址 | 日本三级网址 | 色综久久| 在线免费激情视频 | 亚洲一区 | 激情网站在线 | 黄瓜av| 国产综合av | 一区二区三区在线免费观看 |