Linux机器I/O分析

有时候业务突增,机器的性能是需要我们特别关注的,分享下关于查看linux的IO的工具

1、iostat

centos安装方式
yum install sysstat

例子1:

iostat常用的选项-x,该选项将用于显示和io相关的扩展数据。

iostat -x

关于 CPU 的指标,重点看%iowait 和 %idle 两个指标。
%iowait:CPU 等待输入输出完成时间的百分比;
%idle:CPU 空闲时间百分比。

若%iowait 的值过高,则表示硬盘存在 I/O 瓶颈;若 %idle 值高,表示 CPU 较空闲。如果 %idle 值高但系统响应慢时,有可能是 CPU 等待分配内存,此时应加大内存容量。%idle 值如果持续低于 10,那么系统的 CPU 处理能力相对较低,表明系统中最需要解决的资源是 CPU。

关于 Disk 指标,我们重点看 %utils、svctm、await 和 avgque-sz几个指标。
avgqu-sz: 平均 I/O 队列长度;
await: 平均每次设备 I/O 操作的等待时间 (毫秒);
svctm: 平均每次设备 I/O 操作的服务时间 (毫秒);
%util: 一秒中有百分之多少的时间用于 I/O 操作,即被 I/O 消耗的 CPU 百分比

若 %util 接近 100%,说明产生的 I/O 请求太多,I/O 系统已经满负荷,该磁盘可能存在瓶颈;若 svctm 比较接近 await,说明 I/O 几乎不需要等待;若 await 远大于 svctm,说明 I/O 队列太长,I/O 响应太慢,则需要进行必要优化;若 avgqu-sz 比较大,也表示有大量 IO 在等待。

例子2:

iostat -d -x -k 1
参数 -d 表示,显示设备(磁盘)使用状态;
-k某些使用block为单位的列强制使用Kilobytes为单位;
1表示,数据显示每隔1秒刷新一次。

 

 2、iotop

centos安装
yum install iotop -y

例子:

每隔十秒打印一次信息,设置单位为KB/s,仅打印有活跃I/O的进程和线程数据
iotop -d 10 -o -k

3、dstat

centos安装
yum insatll dstat

选项

-c #显示CPU系统占用,用户占用,空闲,等待,中断,软件中断等信息

-C #可按需分别显示cpu状态

-d #显示磁盘读写数据大小

-n #显示网络状态

-N #指定要显示的网卡

-l #显示系统负载情况

-m #显示内存使用情况

-g #显示页面使用情况

-p #显示进程状态

-s #显示交换分区使用情况

-S #类似D/N

-r #I/O请求情况

-y #系统状态

-–disk-util #显示某一时间磁盘的忙碌状况

-–freespace #显示当前磁盘空间使用率

-–proc-count #显示正在运行的程序数量

-–top-bio #指出块I/O最大的进程

-–top-cpu #图形化显示CPU占用最大的进程

-–top-io #显示正常I/O最大的进程

-–top-mem #显示占用最多内存的进程

例子1:

显示io、内存、cpu状态

dstat -l -m -r -c  --top-io --top-mem --top-cpu

例子2:

查看全部内存的状态

dstat -g -l -m -s --top-mem

  

 

  

  

posted @ 2022-04-10 12:37  lucky_tomato  阅读(139)  评论(0编辑  收藏  举报