|簡體中文

比思論壇

 找回密碼
 按這成為會員
搜索



查看: 824|回復: 3
打印 上一主題 下一主題

Linux磁盘IO监测

[複製鏈接]

989

主題

1

好友

5294

積分

教授

Rank: 8Rank: 8

  • TA的每日心情
    奮斗
    2024-10-17 01:09
  • 簽到天數: 1257 天

    [LV.10]以壇為家III

    推廣值
    2
    貢獻值
    378
    金錢
    1541
    威望
    5294
    主題
    989

    回文勇士 文明人 中學生 高中生 簽到勳章 簽到達人 男生勳章 大學生 文章勇士 附件高人 附件達人 文章達人 教授

    樓主
    發表於 2012-9-14 19:00:04
    DB运行产生太多的磁盘IO的话,性能肯定会受到影响。可以借助zabbix这样的工具进行磁盘IO的监测,或者自己动手都可以。

          我们可以从proc/diskstats中直接获取信息:

      7 3 loop3 0 0 0 0 0 0 0 0 0 0 0
    7 4 loop4 0 0 0 0 0 0 0 0 0 0 0
    7 5 loop5 0 0 0 0 0 0 0 0 0 0 0
    7 6 loop6 0 0 0 0 0 0 0 0 0 0 0
    7 7 loop7 0 0 0 0 0 0 0 0 0 0 0
    .....
    8       0 sda 16140 67741 1740112 1453724 16858 18744 1043336 390704 0 173612 1844580
    8       1 sda1 176 138 1468 1160 0 0 0 0 0 1160 1160
    8       2 sda2 164 486 1300 1556 0 0 0 0 0 1556 1556

    sda为整个硬盘的统计信息

    sda1为第一个分区的统计信息

    sda2为第二个分区的统计信息。

         信息依次为:

        1、major 主设备号

        2、minor 磁盘次设备号

        3、name  磁盘的设备名

        4、rio  读请求总数

        5、rmerge  合并的读请求总数

        6、rset 读扇区总数

        7、读数据花费的时间,单位ms

        8、wio写请求总数

        9、wmerge 合并的写请求总数

        10、wset 写扇区总数

        11、写数据花费的时间

        12、现在正在进行的IO数等于IO队列中请求数

        13、系统真正花费在IO上的时间,减去重复等待时间

        14、系统花费在IO上花费的时间。

         要计算某块磁盘的IOPS的话,只需要将第4列和第8列的值相加。

         监控代码:

         #!/bin/bash
    uprio=0
    upwio=0
    while true
        do
        rio=$(grep '\bsda\b' /proc/diskstats | awk '{print $4}')
        wio=$(grep '\bsda\b' /proc/diskstats | awk '{print $8}')
        Real_rio=$[ $rio - $uprio ]
        Real_wio=$[ $wio - $upwio ]
        Iops=$[$Real_rio + $Real_wio]
        echo "Iops:$Iops   Read : $Real_rio   Write: $Real_wio"
        uprio=$rio
        upwio=$wio
        sleep 1
        done
         监控输出:

    Iops:35373   Read : 16792   Write: 18581
    Iops:9   Read : 0   Write: 9
    Iops:0   Read : 0   Write: 0
    Iops:0   Read : 0   Write: 0
    Iops:0   Read : 0   Write: 0
    Iops:5   Read : 0   Write: 5
    Iops:43   Read : 0   Write: 43
          
         对于DB服务器 可以考虑将日志文件和数据文件放到不同的磁盘,这样就可以分别监控 日志和 数据的IOPS。这个可以参考:http://keeland.org/?p=45

        对于DB所使用的磁盘,我们还应该监测其IO利用率,可以通过IOSTAT 进行。

    7

    主題

    0

    好友

    3567

    積分

    大學生

    Rank: 6Rank: 6

  • TA的每日心情

    2020-2-2 12:20
  • 簽到天數: 503 天

    [LV.9]以壇為家II

    推廣值
    0
    貢獻值
    0
    金錢
    51
    威望
    3567
    主題
    7
    沙發
    發表於 2013-3-25 14:23:20
    这个有什么用
    重要聲明:本論壇是以即時上載留言的方式運作,比思論壇對所有留言的真實性、完整性及立場等,不負任何法律責任。而一切留言之言論只代表留言者個人意見,並非本網站之立場,讀者及用戶不應信賴內容,並應自行判斷內容之真實性。於有關情形下,讀者及用戶應尋求專業意見(如涉及醫療、法律或投資等問題)。 由於本論壇受到「即時上載留言」運作方式所規限,故不能完全監察所有留言,若讀者及用戶發現有留言出現問題,請聯絡我們比思論壇有權刪除任何留言及拒絕任何人士上載留言 (刪除前或不會作事先警告及通知 ),同時亦有不刪除留言的權利,如有任何爭議,管理員擁有最終的詮釋權。用戶切勿撰寫粗言穢語、誹謗、渲染色情暴力或人身攻擊的言論,敬請自律。本網站保留一切法律權利。

    手機版| 廣告聯繫

    GMT+8, 2024-11-1 09:28 , Processed in 0.022488 second(s), 16 queries , Gzip On, Memcache On.

    Powered by Discuz! X2.5

    © 2001-2012 Comsenz Inc.

    回頂部