Linux iotop什么是监控工具

这期内容当中小编将会给大家带来有关什么是监控工具Linux iotop,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。

iotop的简介:

iotop是一款开源、免费的用来监控磁盘I/O使用状况的类似top命令的工具,iotop可以监控进程的I/O信息。它是Python语言编写的,与iostat工具比较,iostat是系统级别的IO监控,而iotop是进程级别IO监控。目前最新的版本为iotop  0.6。其官方网址http://guichaz.free.fr/iotop/[1]

iotop的安装:

注意,iotop的安装有前提条件(如果操作系统不满足这些条件,iotop无法正确安装):

1:内核版本为2.6.20或更高版本

2:Python 2.7或更高的版本

官方文档的详细介绍如下:

  • Linux has always been able to show how much I/O was going alt="什么是监控工具Linux iotop">

    2:使用非交互模式将iotop命令输出信息写入日志

    #nohup iotop -b -o -n 10 -d 5 -t  > /tmp/iotop.log &

    3:借助iotop命令找到消耗I/O最高的进程,然后通过进程找到其正在执行的SQL语句

    # iotop -oP   PID  PRIO  USER     DISK READ  DISK WRITE  SWAPIN     IO>    COMMAND                                                                                                                       11741 be/4 oracle      4.70 M/s    0.00 B/s  0.00 % 98.60 % ora_s004_SCM2  11739 be/4 oracle     66.99 M/s    0.00 B/s  0.00 % 93.30 % ora_s005_SCM2  11741 be/4 oracle     21.76 M/s    0.00 B/s  0.00 % 91.78 % ora_s006_SCM2  11743 be/4 oracle      4.87 M/s    3.78 M/s  0.00 % 27.74 % ora_s007_SCM2  11745 be/4 oracle     62.39 K/s    0.00 B/s  0.00 %  2.88 % ora_s008_SCM2  11733 be/4 oracle     39.00 K/s    0.00 B/s  0.00 %  2.08 % ora_s002_SCM2                  11697 be/4 oracle      0.00 B/s 1879.61 K/s  0.00 %  0.30 % ora_dbw0_SCM2  11699 be/4 oracle      0.00 B/s  102.36 K/s  0.00 %  0.20 % ora_lgwr_SCM2

    在找到消耗I/O最大的进程后,找出ORACLE进程正在执行的SQL语句

    SQL> @getsql_by_spid.sql  Enter value for pid: 11741  old  13:                                WHERE c.spid = '&pid'))  new  13:                                WHERE c.spid = '11741'))     SQL_TEXT  --------------------------------------------  ...............................(实际环境中,这里会输出SQL语句)

    getsql_by_spid.sql脚本如下所示:

    SELECT   /*+ ORDERED */          sql_text     FROM v$sqltext a    WHERE (a.hash_value, a.address) IN (             SELECT DECODE (sql_hash_value,                            0, prev_hash_value,                            sql_hash_value                           ),                    DECODE (sql_hash_value, 0, prev_sql_addr, sql_address)               FROM v$session b              WHERE b.paddr = (SELECT addr                                 FROM v$process c                                WHERE c.spid = '&pid')) ORDER BY piece ASC /

    Linux iotop什么是监控工具