查看系统的I/O使用iostat命令而使用iotop能够依据I/O统计信息排序,追踪到详细的进程

当看到I/O等待时间所占CPU时间的比重非常高的时候,首先要检查的就是机器是否正在大量使用交换空间。由于硬盘操作的速度远远低于RAM,所以当系统内存耗尽。開始使用交换空间的时候,系统的性能会受到严重影响。

不论什么想要訪问硬盘的操作都要完毕与硬盘的I/O交换。所以。故障排除的第一步是看内存是否耗尽。假设是,先解决问题。

假设还有大量可用的RAM。你须要明白那个进程占用了大部分I/O操作。

在你非常难弄明确究竟是哪个进程占用了大量I/O资源,使用iostat能够找到是哪个分区运行大量I/O操作。

iostat的使用

最上面显示的是1个cpu,64位系统。linux内核版本号

avg-cpu段:

%user: 在用户级别执行所使用的CPU的百分比

%nice: nice操作所使用的CPU的百分比

%system: 在系统级别(kernel)执行所使用CPU的百分比

%iowait: CPU等待硬件I/O时,所占用CPU百分比

%idle: CPU空暇时间的百分比

Device段:

sda:设备名

tps: 每秒钟发送到的I/O请求数.

Blk_read /s: 每秒读取的数据量

Blk_wrtn/s: 每秒写入的数据量.

Blk_read:   读入的总的数据量

Blk_wrtn:  写入的总的数据量

iostat各个參数说明:

-c 仅显示CPU统计信息.与-d选项相互排斥.

-d 仅显示磁盘统计信息.与-c选项相互排斥.

-k 以K为单位显示每秒的磁盘请求数,默认单位块.

-p device | ALL

与-x选项相互排斥,用于显示块设备及系统分区的统计信息.也能够在-p后指定一个设备名,如:

# iostat -p hda

或显示全部设备

# iostat -p ALL

-t    在输出数据时,打印搜集数据的时间.

-V    打印版本和帮助信息.

-x    输出扩展信息.

iostat后加一个数字

iostat 4 表示每隔4秒就刷新一次

iotop的使用

--version 显示版本然后退出

-h, --help 显示帮助然后退出

-o, --only 仅仅显示正在产生I/O的进程或线程。除了传參。能够在执行过程中按o生效。

-b, --batch 非交互模式,一般用来记录日志

-n NUM, --iter=NUM 设置监測的次数。默认无限。在非交互模式下非常实用

-d SEC, --delay=SEC 设置每次监測的间隔,默认1秒,接受非整形数据比如1.1

-p PID, --pid=PID 指定监測的进程/线程

-u USER, --user=USER 指定监測某个用户产生的I/O

-P, --processes 仅显示进程,默认iotop显示全部线程

-a, --accumulated 显示累积的I/O,而不是带宽

-k, --kilobytes 使用kB单位,而不是对人友好的单位。在非交互模式下,脚本编程实用。

-t, --time 加上时间戳,非交互非模式。

-q, --quiet 禁止头几行,非交互模式。

有三种指定方式。

-q     仅仅在第一次监測时显示列名

-qq    永远不显示列名。

-qqq   永远不显示I/O汇总。

时间: 2024-10-10 01:53:06

查看系统的I/O使用iostat命令而使用iotop能够依据I/O统计信息排序,追踪到详细的进程的相关文章

查看系统的I/O使用iostat命令而使用iotop可以根据I/O统计信息排序,追踪到具体的进程

当看到I/O等待时间所占CPU时间的比重很高的时候,首先要检查的就是机器是否正在大量使用交换空间,因为硬盘操作的速度远远低于RAM,所以当系统内存耗尽,开始使用交换空间的时候,系统的性能会受到严重影响.任何想要访问硬盘的操作都要完成与硬盘的I/O交换.所以,故障排除的第一步是看内存是否耗尽,如果是,先解决这个问题.如果还有大量可用的RAM,你需要明确那个进程占用了大部分I/O操作. 在你很难弄明白到底是哪个进程占用了大量I/O资源,使用iostat可以找到是哪个分区执行大量I/O操作. iost

linux学习之路之ACL的使用和查看系统上登录的用户的命令使用

我们知道文件的访问权限的是根据文件的属主.属组和其他用户这三种来设置,而ACL是提供这三种之外的更加细部的权限设定.ACL可以对单一用户和目录及文件来设置权限,这对于需要特殊的权限来说很有帮助.在之前谈到的SUID和SGID这些特殊权限,不过这些特殊权限和ACL相比,ACL可以对特定的用户来设定更加细部的权限,而SUID和SGID则是对于多个用户或者一组用户来说比较合适. 在谈ACL的使用之前,我们先一起来谈谈用户访问文件时的顺序是如何进行的?在这里暂时不讨论有关SElinux的使用. 在没有使

linux基础命令-查看系统状态-free -m以及top命令详解

博文说明[前言]: 本文将通过个人口吻介绍Linux下的free命令及top命令的相关知识,在目前时间点[2017年6月19号]下,所掌握的技术水平有限,可能会存在不少知识理解不够深入或全面,望大家指出问题共同交流,在后续工作及学习中如发现本文内容与实际情况有所偏差,将会完善该博文内容. 本文参考文献引用链接: 1.http://www.cnblogs.com/imapla/archive/2013/02/15/2912752.html [好文]2.http://www.cnblogs.com/

Linux查看系统状态命令

Linux查看系统状态命令     iostat iostat 命令详细地显示了存储子系统方面的情况.你通常用iostat来监控存储子系统总体上运行状况如何,并且在用户注意到服务器运行缓慢之前提早发现输入/输出缓慢的问题.相信我,你应该在用户发现这些问题之前先发现这些问题! meminfo和free meminfo为你详细显示了内存方面的情况.你通常可以使用另一个程序,比如cat和grep,来访问meminfo的信息.比如说,cat /proc/meminfo为你详细显示了服务器的内存在任何一个

linux系统top命令查看系统状态

Linux系统可以通过top命令查看系统的CPU.内存.运行时间.交换分区.执行的线程等信息.通过top命令可以有效的发现系统的缺陷出在哪里.是内存不够.CPU处理能力不够.IO读写过高. 使用SSHClient客户端连接到远程Linux系统.使用top命令查看系统的当前运行的情况.如图对top命令执行的结果做了简单的图解,下面针对每一项做详细的解释.   top命令的第一行"top - 19:56:47 up 39 min,  3 users,  load average: 0.00, 0.0

linux小知识之查看系统时间

有个朋友想查看服务器一天的网卡流量,但是没有安装cacti.所以我推荐他使用ifconfig查看下网卡流量,然后看下系统运行时间,除出来参考一下.他居然问我系统时间怎么查看.好吧,那我就写篇文章记录下怎么查看系统时间 方法一: who命令, -r runlevel     -b boot [[email protected] ~]# who -r 运行级别 3 2016-11-03 10:32 [[email protected] ~]# who -b 系统引导 2016-11-03 10:32

iostat命令学习

iostat命令主要用于监控linux系统下cup和磁盘IO的统计信息 可以通过iostat --help获得该命令的帮助信息 [[email protected] ~]$ iostat --help Usage: iostat [ options... ] [ <interval> [ <count> ] ] Options are: [ -c | -d ] [ -k | -m ] [ -t ] [ -V ] [ -x ] [ -n ] [ -h ] [ -N ] [ <d

Oracle里收集与查看统计信息的方法

Oracle数据库里的统计信息是这样的一组数据:它存储在数据字典里,且从多个维度描述了Oracle数据库里对象的详细信息.CBO会利用这些统计信息来计算目标SQL各种可能的.不同的执行路径的成本,并从中选择一条成本值最小的执行路径来作为目标SQL的执行计划. Oracle数据库里的统计信息可以分为如下6种类型: 表的统计信息 索引的统计信息 列的统计信息 系统统计信息 数据字典统计信息 内部对象统计信息 表的统计信息用于描述Oracle数据库里表的详细信息,它包含了一些典型的维度,如记录数.表块

DBCC SHOW_STATISTICS 查看统计信息

使用DBCC Show_Statistics 能够查看 表或Indexed view上的统计信息.Query optimizer使用统计信息进行estimate,生成高质量的qeury plan.统计信息不是实时更新的,如果统计信息过期,Query optimizer可能不能生成高质量的query plan,所以,可以通过DBCC Show_Statistics查看统计信息最后一次更新的日期,并手动更新统计信息,以使query optimizer依据正确的统计信息生成高效的query plan.