当前位置:首页 > Linux > 正文

linux如何查看i o

Linux中,可以使用 iostat命令查看I/O,它能显示系统的磁盘I/O统计信息,如读写速度、IOPS等; iotop可实时监视磁盘I/O并按使用率排序; vmstat能报告内存、进程、虚拟内存和I/O等状态信息

Linux系统中,查看I/O(输入/输出)操作有多种方法,以下是一些常用的命令和工具:

iostat命令

iostat命令是用于查看系统I/O统计信息的强大工具,它可以显示CPU使用情况以及磁盘、分区和网络设备的I/O统计信息。

  • 安装

    • Ubuntu/Debian系统:sudo apt-get install sysstat
    • CentOS/RHEL系统:sudo yum install sysstat
  • 常用参数

    • -c:显示CPU利用率信息。
    • -d:显示磁盘和分区的I/O统计信息。
    • -h:以人类可读的方式显示输出。
    • -k:以KB为单位显示输出。
    • -m:以MB为单位显示输出。
    • -t:显示时间戳。
    • 间隔时间:指定统计信息的显示间隔时间,默认为每秒钟显示一次。
    • 次数:指定统计信息的显示次数,默认为无限制。
  • 示例

     iostat -d 1 5  # 每隔1秒显示一次磁盘I/O统计信息,共显示5次
  • 输出解释

    • r/sw/s:每秒读/写请求数。
    • rkB/swkB/s:每秒读取/写入的千字节数。
    • %util:设备利用率,表示设备在处理I/O的时间百分比,接近100%时意味着磁盘I/O是瓶颈。

iotop命令

iotop命令是一个实时磁盘I/O监控工具,可以显示磁盘I/O占用情况,并按照I/O使用量排序,帮助用户找出占用磁盘I/O资源的进程。

  • 安装

    • Ubuntu/Debian系统:sudo apt-get install iotop
    • CentOS/RHEL系统:sudo yum install iotop
  • 常用参数

    • -o:以I/O使用量进行排序。
    • 间隔时间:指定监控信息的显示间隔时间,默认为每秒钟显示一次。
    • 次数:指定监控信息的显示次数,默认为无限制。
  • 示例

    linux如何查看i o  第1张

     sudo iotop -o  # 以I/O使用量排序显示
  • 输出解释

    • DISK READ/WRITE:每个进程的磁盘读写速度。
    • PID:进程ID。
    • COMMAND:进程的名称。
    • IO%:进程占用的I/O资源百分比。

vmstat命令

vmstat命令用于报告虚拟内存统计信息,其中包括了关于内存、I/O和CPU的统计数据。

  • 常用参数

    • -d:显示磁盘统计信息。
    • 间隔时间:指定统计信息的显示间隔时间。
    • 次数:指定统计信息的显示次数。
  • 示例

     vmstat -d 1 5  # 每隔1秒显示一次磁盘统计信息,共显示5次
  • 输出解释

    • bibo:块设备的I/O输入输出量(块/秒)。
    • r:运行队列中的进程数。
    • b:等待I/O的进程数。

sar命令

sar命令用于收集、报告和保存系统活动信息,包括CPU使用情况、内存使用情况、I/O活动等。

  • 常用参数

    • -d:显示磁盘的I/O活动信息。
    • 间隔时间:指定统计信息的显示间隔时间。
    • 次数:指定统计信息的显示次数。
  • 示例

     sar -d 1 10  # 每隔1秒显示一次磁盘I/O活动信息,共显示10次

dstat命令

dstat命令是一个全能的系统性能统计工具,可以实时显示系统资源的使用情况,包括CPU、内存、磁盘I/O、网络I/O等。

  • 安装

    • Ubuntu/Debian系统:sudo apt-get install dstat
    • CentOS/RHEL系统:sudo yum install dstat
  • 常用参数

    • -c:显示CPU的统计信息。
    • -d:显示磁盘的统计信息。
    • -n:显示网络设备的统计信息。
    • -y:显示系统中各个进程的I/O使用情况。
  • 示例

     dstat -cd 1 5  # 每隔1秒显示一次CPU和磁盘的统计信息,共显示5次

lsof命令

lsof命令可以用来查看当前系统中打开的文件和网络连接情况,通过查看该命令的输出结果,可以获取到哪些进程正在使用磁盘I/O资源。

  • 常用参数

    • -c 进程名:指定要查看的进程名。
    • -i:显示网络连接情况。
    • -r:递归显示子进程的信息。
    • -a:显示所有选定条件的信息。
    • +d 目录:显示指定目录下打开的文件。
    • +D 目录:递归显示指定目录及其子目录下打开的文件。
  • 示例

     lsof -i  # 显示网络连接信息
     lsof -p <PID>  # 查询指定进程的打开文件

/proc文件系统

Linux操作系统还提供了/proc文件系统,其中包含了许多系统运行时的信息,可以通过查看这些文件来获取磁盘I/O相关的信息。

  • 常用文件

    • /proc/diskstats:包含所有磁盘的统计信息,包括磁盘读写次数、字节数等。
    • /proc/mounts:包含当前挂载的文件系统信息。
    • /proc/sys/vm/dirty_background_ratio:包含脏页背景写回的阈值。
  • 示例

     cat /proc/diskstats  # 查看磁盘的统计信息
     cat /proc/mounts     # 查看挂载的文件系统信息

FAQs

Q1: iostat和iotop有什么区别?
A1: iostat主要用于查看系统级别的I/O统计信息,包括磁盘、分区和网络设备的I/O情况,而iotop则是一个实时监控工具,专注于显示各个进程的I/O使用情况,类似于top命令但只关注I/O。

Q2: 如何判断磁盘I/O是否成为系统瓶颈?
A2: 可以通过查看iostat输出的%util指标来判断,如果该值持续接近100%,则表示磁盘I/O可能是系统瓶颈,还可以结合await指标(平均每次I/O请求的等待时间)来进一步分析,如果await值较高,也表明I/O

0