一款比較強悍的儲存效能分析工具(未完待續)

2021-10-09 12:18:56 字數 1780 閱讀 3565

我這邊zip解壓縮和io跑分類問題經常會涉及到不同儲存晶元間的儲存效能對比。

眾所周知,儲存效能問題,跟儲存晶元自身效能,塊裝置層和檔案系統層的效能都有關係的。所以說搞出一款工具,能夠直觀地看出

某效能問題對應的在儲存bsp層,塊裝置層和檔案系統層的耗時資訊,是有助於解決儲存效能問題的。

該工具目前比較適合用來分析單執行緒儲存效能問題。

比如zip解壓縮,androbench順序讀寫和sqlite跑分都是屬於單執行緒效能問題分析範疇的。因為這些測試專案在實際進行時,只有乙個執行緒在做效能測試工作,最後輸出的效能指標只跟該執行緒的效能有關。

1 搭建bcc環境

2 獲取儲存效能分析工具

3 開啟效能trace

執行 下面命令,開啟儲存效能trace。

adeb shell

./ioworkload_analysis.py 0 > /data/io.log

4 開始效能測試

開始跑效能測試(比如上面的zip解壓縮和io跑分),

跑完效能測試後,把上面生成的手機裡面的/data/io.log檔案adb pull到電腦端, 產生的檔案系統層,塊裝置層和bsp層的儲存效能耗時資訊都在上面的io.log檔案裡面。

5 分析儲存各層面的效能耗時

拿androbench跑分效能分析舉例,來說明怎麼得到在bsp層,塊裝置層和檔案系統層的耗時資訊。(androbench跑分效能跟thread-***這個執行緒的工作效能掛鉤的)

1> 檔案系統層

cat io.log | grep thread- | grep vfs | awk ';end '

可以得到檔案系統層面的總耗時資訊

cat io.log | grep thread- |  | wc -l

可以得到檔案系統層總共傳送了多少fsync or write or read系統呼叫數目。

2> 儲存bsp層

cat io.log | grep thread- | grep req | awk ';end '

可以得到跑分時發出的塊裝置層所有請求完成(req issue到req complete)總耗時資訊。

cat io.log | grep thread- | grep req | wc -l

可以得到跑分時發出的請求總數目。

請求完成的平均耗時 = 所有請求的總耗時 / 上面的總數目.

請求完成的最大耗時和耗時分布可由sort -nr命令得出。

上面資訊便代表了儲存bsp層的耗時資訊。

3> 塊裝置層

cat io.log | grep thread- | grep req | awk ';end '

得到了io跑分時的塊裝置層的請求排隊耗時(req insert到req issue)資訊。

cat io.log | grep thread- | grep blk | awk ';end '

可以得到io跑分時的塊裝置層submit bio的總耗時。

cat io.log | grep thread- | grep blk | wc -l

得到跑分時的submit_bio呼叫次數。

上面資訊便代表了塊裝置層的耗時資訊。

因為塊裝置層的耗時有兩方面的耗時組成,乙個是submit_bio的耗時,乙個是請求排隊耗時。

目前正在應用該工具解決io跑分和zip解壓縮中不同儲存晶元對比的效能問題。

已經能夠成功看出jira:miui-1826523裡面的q版本sliqte效能衰退問題是由於檔案系統層fsync效能不如p版本造成的,

儲存bsp層和塊裝置層q版本的效能還好於p版本的。(該jira還在進一步地分析定位中)

一款比top強悍好用的程序管理監控工具

ps 近來發現了乙個與top類似,但比top好用強大的程序管理監控工具,就是htop,跟大家分享一下!超好用,運維必備!top 乙個可以讓使用者與之互動的程序檢視器。作為文字模式的應用程式,主要用於控制台或x終端中。當前具有按樹狀方式來檢視程序,支援顏色主題,可以定製等特性。與top相比,htop有...

一款好用的lnmp工具

恭喜,lnamp 已安裝成功 wdcp管理面板 http c48 whailun.houdunphp.com 8080 預設使用者密碼 admin wdlinux.cn 檢視伺服器web環境 探針資訊 phpinfo資訊 wdos官網 wdcp管理系統交流論壇 lanmp一鍵安裝包 wdos論壇討論...

foolbox 一款神奇的Python工具箱

原文 foolbox 翻譯 vincent foolbox是乙個python工具箱,它可以建立一些對抗樣本從而來迷惑神經網路。它需要python,numpy和scipy。pip install foolbox我們測試的時候使用的是python 2.7 3.5和3.6版本。當然python其它版本也可...