系統技術非業餘研究 » ioprofile調查應用IO情況的利器
我們在做IO密集型的應用程式的時候,比如MySQL資料庫,通常系統的表現取決於workload的型別。 比如我們要調優,我們就必須非常清楚的知道資料的訪問規律,收集到足夠的資料,用來做調優的依據。
有很多工具可以收集系統層面的,裝置層面的,程序層面的IO資料,但是沒有一個現成的工具可以回答我們比如應用打開了多少檔案,檔案的讀和寫的比例是多少,呼叫了多少次sync, 每次的資料大小是多少,呼叫了多少次,每次用了多少時間, 是順序操作還是隨機操作,是那個執行緒發起的操作。
當然如果你對系統足夠熟悉的話,你可以用systemtap來編寫指令碼獲取這些資料,也不是什麼難事。但是大部分的同學沒有足夠的耐心去做這個。
這時候Percona同樣來救助了。他提供了一整套工具來協助定位MySQL伺服器的問題。這套工具適合於大部分的IO伺服器。
Aspersa is a collection of open-source system utilities primarily designed to ease the work of Percona consultants. This manual is the primary documentation for Aspersa tools. Please contribute your improvements.
它依賴於strace和lsof來做統計,所以在執行的時候會對目標系統產生一定的效能影響,不過還好,你可以指定收集資料的時間。
現在我們來試驗下效果:
[[email protected] ~]$ sudo /tmp/aspersa-read-only/ioprofile -p 21826 Password: Sun Jan 16 02:16:52 CST 2011 total pread pwrite write fsync filename 0.491959 0.000000 0.453529 0.000000 0.038430 /mnt/ibdata1 0.296719 0.000000 0.273126 0.000000 0.023593 /mnt/ib_logfile0 0.161494 0.061440 0.091133 0.000000 0.008921 /u01/mysql/data/ic_test/auction_auctions_0021.ibd 0.146056 0.036532 0.102320 0.000000 0.007204 /u01/mysql/data/ic_test/auction_auctions_0020.ibd 0.144570 0.007500 0.128466 0.000000 0.008604 /u01/mysql/data/ic_test/auction_auctions_0058.ibd 0.138565 0.054159 0.078342 0.000000 0.006064 /u01/mysql/data/ic_test/auction_auctions_0009.ibd 0.136702 0.017857 0.111383 0.000000 0.007462 /u01/mysql/data/ic_test/auction_auctions_0000.ibd ... [[email protected] ~]$ sudo /tmp/aspersa-read-only/ioprofile -p 21826 -c count Sun Jan 16 02:18:31 CST 2011 total pread pwrite write fsync open filename 1439 0 1410 0 29 0 /mnt/ib_logfile1 691 0 0 691 0 0 /u01/mysql/log/mysql-bin.000169 366 20 301 0 45 0 /u01/mysql/data/ic_test/auction_auctions_0012.ibd 362 0 235 0 127 0 /mnt/ibdata1 301 18 243 0 40 0 /u01/mysql/data/ic_test/auction_auctions_0036.ibd 292 18 237 0 37 0 /u01/mysql/data/ic_test/auction_auctions_0026.ibd 291 21 230 0 40 0 /u01/mysql/data/ic_test/auction_auctions_0027.ibd 288 21 236 0 31 0 /u01/mysql/data/ic_test/auction_auctions_0013.ibd .. [[email protected] ~]$ sudo /tmp/aspersa-read-only/ioprofile -p 21826 -c sizes Sun Jan 16 02:22:01 CST 2011 total pread pwrite write fsync filename 225542144 0 225542144 0 0 /mnt/ibdata1 6963200 229376 6733824 0 0 /u01/mysql/data/ic_test/auction_auctions_0013.ibd 6094848 360448 5734400 0 0 /u01/mysql/data/ic_test/auction_auctions_0026.ibd 5881856 278528 5603328 0 0 /u01/mysql/data/ic_test/auction_auctions_0031.ibd 5849088 393216 5455872 0 0 /u01/mysql/data/ic_test/auction_auctions_0035.ibd 5816320 311296 5505024 0 0 /u01/mysql/data/ic_test/auction_auctions_0036.ibd 5701632 294912 5406720 0 0 /u01/mysql/data/ic_test/auction_auctions_0022.ibd 5488640 376832 5111808 0 0 /u01/mysql/data/ic_test/auction_auctions_0029.ibd ... [[email protected] ~]$ sudo /tmp/aspersa-read-only/ioprofile -p 21826 -c times Sun Jan 16 02:25:36 CST 2011 total pread pwrite write fsync filename 0.448082 0.000000 0.413493 0.000000 0.034589 /mnt/ibdata1 0.313238 0.000000 0.282403 0.000000 0.030835 /mnt/ib_logfile3 0.163073 0.089651 0.065107 0.000000 0.008315 /u01/mysql/data/ic_test/auction_auctions_0005.ibd 0.143463 0.004427 0.130650 0.000000 0.008386 /u01/mysql/data/ic_test/auction_auctions_0011.ibd 0.137938 0.048641 0.080933 0.000000 0.008364 /u01/mysql/data/ic_test/auction_auctions_0021.ibd 0.137061 0.006563 0.120739 0.000000 0.009759 /u01/mysql/data/ic_test/auction_auctions_0018.ibd 0.136427 0.000000 0.000000 0.136427 0.000000 /u01/mysql/log/mysql-bin.000170 0.125673 0.043824 0.074042 0.000000 0.007807 /u01/mysql/data/ic_test/auction_auctions_0000.ibd ... [[email protected] ~]$ sudo /tmp/aspersa-read-only/ioprofile -p 21826 -c sizes -g filename Sun Jan 16 02:29:54 CST 2011 total pread pwrite write fsync open filename 274186240 0 274186240 0 0 0 /mnt/ibdata1 8306688 442368 7864320 0 0 0 /u01/mysql/data/ic_test/auction_auctions_0044.ibd 6881280 262144 6619136 0 0 0 /u01/mysql/data/ic_test/auction_auctions_0042.ibd 6799360 344064 6455296 0 0 0 /u01/mysql/data/ic_test/auction_auctions_0053.ibd 6668288 475136 6193152 0 0 0 /u01/mysql/data/ic_test/auction_auctions_0047.ibd 6602752 327680 6275072 0 0 0 /u01/mysql/data/ic_test/auction_auctions_0027.ibd 6504448 344064 6160384 0 0 0 /u01/mysql/data/ic_test/auction_auctions_0041.ibd 6275072 344064 5931008 0 0 0 /u01/mysql/data/ic_test/auction_auctions_0024.ibd 6094848 393216 5701632 0 0 0 /u01/mysql/data/ic_test/auction_auctions_0038.ibd 6078464 180224 5898240 0 0 0 /u01/mysql/data/ic_test/auction_auctions_0037.ibd ... [[email protected] ~]$ sudo /tmp/aspersa-read-only/ioprofile -p 21826 -c sizes -g pid Sun Jan 16 02:31:02 CST 2011 total pread pwrite write fsync pid 270971904 32768 270939136 0 0 21854 70975488 0 70975488 0 0 21844 67518464 0 67518464 0 0 21842 66797568 0 66797568 0 0 21843 65568768 0 65568768 0 0 21841 ... [[email protected] ~]$ sudo /tmp/aspersa-read-only/ioprofile -p 21826 -c sizes -g all Sun Jan 16 02:32:15 CST 2011 548216907 TOTAL 520120320 pwrite 27475968 pread 620619 write 0 fsync
玩的開心!
Post Footer automatically generated by wp-posturl plugin for wordpress.
相關推薦
系統技術非業餘研究 » ioprofile調查應用IO情況的利器
我們在做IO密集型的應用程式的時候,比如MySQL資料庫,通常系統的表現取決於workload的型別。 比如我們要調優,我們就必須非常清楚的知道資料的訪問規律,收集到足夠的資料,用來做調優的依據。 有很多工具可以收集系統層面的,裝置層面的,程序層面的IO資料,但是沒有一個現成的工具可以回答我們比如
系統技術非業餘研究 » Linux下非同步IO(libaio)的使用以及效能
Linux下非同步IO是比較新的核心裡面才有的,非同步io的好處可以參考這裡. 但是文章中aio_*系列的呼叫是glibc提供的,是glibc用執行緒+阻塞呼叫來模擬的,效能很差,千萬千萬不要用。 我們今天要說的是真正的原生的非同步IO介面. 由於這幾個系統呼叫glibc沒有提供相應的封裝,所以l
系統技術非業餘研究 » seq_trace叢集訊息鏈跟蹤利器
做過網路叢集伺服器的的同學都知道,叢集服務通常由不同的伺服器組成,這些不同角色的伺服器組合在一起共同完成了特定的服務。一個服務通常需要一個協調者,和不同的工作者。 協調者負責派發任務,接收工作者的完成情況,最終回饋給使用者。舉個例子來講,撥打電話:首先需要確認你的號碼是在有效的,同時還要看下你的帳
系統技術非業餘研究 » Linux快取記憶體使用率調查
Linux的快取記憶體pagecache對效能的影響至關重要,但是實際系統中我們的利用率如何呢,特別是具體到每個裝置的利用情況。 從下圖我們可以很清楚的看到: 我們知道IO請求由vfs發起,經過pagecache快取,擋不住的就落實到io裝置去,那麼統計這個利用率就很簡單。 我們只要知道擋不住的
系統技術非業餘研究 » disktop per裝置per應用層面的IO讀寫統計
我們在調優IO 密集型的應用是通常需要知道IO的使用情況. 但是iostat只能知道系統全域性的,iotop只能知道每個應用的, 我們有時候需要細化到每個應用對每個裝置的使用情況. 比如說mysql資料庫我們通常把日誌和資料分開到不同的裝置, 那我們需要知道資料讀寫多少,日誌讀寫多少,分開的瞭解.
系統技術非業餘研究 » Erlang match_spec引擎介紹和應用
match_spec是什麼呢? A “match specification” (match_spec) is an Erlang term describing a small “program” that will try to match something (either the para
系統技術非業餘研究 » IO模式調查利器blkiomon介紹
blkiomon 是blktrace工具包帶的一個方便使用者瞭解IO情況的工具, 由於blktrace太專業,需要了解的IO協議棧的東西太多,blkiomon給大多數的使用者提供了一種易於使用的方式. blktrace的使用參考這裡: http://blog.yufeng.info/archive
系統技術非業餘研究 » CPU拓撲結構的調查
在做多核程式的時候(比如Erlang程式),我們需要了解cpu的拓撲結構, 瞭解logic CPU和物理的CPU的對映關係,以及瞭解CPU的內部的硬體引數,比如說 L1,L2 cache的大小等資訊。 Linux下的/proc/cpuinfo提供了相應的資訊,但是比較不全面。 /sys/devi
系統技術非業餘研究 » 程序死亡原因調查:被殺?
最近MySQL平臺化系統都是用熱升級來更新的,在線上的日誌發現類似的crashlog: 2013-07-24 23:54:06 =ERROR REPORT==== ** Generic server <0.31760.980> terminating ** Last message i
系統技術非業餘研究 » 調查使用者空間程式某函式最常呼叫路徑
在做系統調優或者調查效能問題的的時候,比如說調查一個鎖的效能問題。 這把鎖的程式碼會有很多路徑會呼叫, 我們可以在鎖的地方設個probe點,但是我們無法知道那個路徑是最經常呼叫的。 所以我就寫了個stap指令碼來解決這個問題,程式碼在RHEL 5.4/6下都除錯沒有問題的。 $ cat >
系統技術非業餘研究 » 區域性性原理在計算機和分散式系統中的應用課程PPT
這個課程最主要focus在資料的區域性性原理,從硬體到作業系統到應用程式這樣的順序過來的,對於我們提高核心系統軟體的效能非常有啟發意義. 課件下載點選這裡 修正:由於原連結已經不存在了,特地在這裡放了一份。 以下是教程的介紹: 課程簡介 ___________________________
系統技術非業餘研究 » erlang高階原理和應用PPT
公司培訓用的 湊合看吧 主要講erlang系統的特點,分佈叢集以及mnesia的使用, 從比較高的角度來看erlang, 讓你有了大體觀. Post Footer automatically generated by wp-posturl plugin for wordpress. No
系統技術非業餘研究 » 調查伺服器響應時間的利器 tcprstat
我們在做伺服器程式的時候,經常要知道一個請求的響應時間,藉以優化或者定位問題。 通常的做法是在程式碼裡面加入日誌計算時間,這個方法有問題,時間不準確。因為資料從網絡卡到應用程式,從應用到網絡卡的時間沒有被計算在內。 而且這個時間隨著系統的負載有很大的變化。 那同學說,我wireshark, tcp
系統技術非業餘研究
ItPub寫的文章“2017 年度 DB-Engines 資料庫冠軍得主:PostgreSQL 封王!”, 點選 這裡 進一步閱讀 升的最快的幾個資料庫,我簡單的無責任點評: PG資料庫是很老的資料庫,不過這幾年冉冉升起,因為是學院派的,有很好的學術和智力的支援,一直以來在資料庫的體系結構,程式碼
系統技術非業餘研究 » MySQL資料庫架構的演化觀察
MySQL資料庫架構的演化觀察 December 14th, 2017 Categories: 資料庫 Tags: mysql
系統技術非業餘研究 » inet_dist_connect_options
Erlang 17.5版本引入了inet_dist_{listen,connect}_options,對於結點間的互聯socket可以有更精細的控制,RPC的時候效能可以微調: raimo/inet_tcp_dist-priority-option/OTP-12476: Document ke
系統技術非業餘研究 » 推薦工作機會
最後更新時間:2014/11/28 請賜簡歷至:[email protected], 感謝您對加入我們公司有興趣,我們希望能早日和您共事。 以下幾個職位1年內有效,歡迎內部轉崗: 資深資料工程師 公司:阿里(核心系統資料庫組) 工作地點:杭州(西溪園區) 崗位描述: 分析雲服務產生的海
系統技術非業餘研究 » 新的工作和研究方向
和大家更新下: 做了將近8年資料庫後,我的工作和研究方向將會延伸到虛擬化和計算相關的雲服務,希望能夠和大家一起進步,Happy New Year! 預祝大家玩得開心! Post Footer automatically generated by wp-posturl plugin for w
系統技術非業餘研究 » 叢集引入inet_dist_{listen,connect}_options更精細引數微調
Erlang 17.5版本引入了inet_dist_{listen,connect}_options,對於結點間的互聯socket可以有更精細的控制,RPC的時候效能可以微調: raimo/inet_tcp_dist-priority-option/OTP-12476: Document ke
系統技術非業餘研究 » 2017升的最快的幾個資料庫無責任點評
ItPub寫的文章“2017 年度 DB-Engines 資料庫冠軍得主:PostgreSQL 封王!”, 點選 這裡 進一步閱讀 升的最快的幾個資料庫,我簡單的無責任點評: PG資料庫是很老的資料庫,不過這幾年冉冉升起,因為是學院派的,有很好的學術和智力的支援,一直以來在資料庫的體系結構,程式碼