首先 、用top命令查看
其次、 用iostat -x 1 10
avg-cpu: ?%user ? %nice ? ?%sys %iowait ? %idle
Device: ? ?rrqm/s ?wrqm/s ? r/s ? ?w/s ? ? rsec/s ? wsec/s ? ?rkB/s ? ?wkB/s avgrq-sz avgqu-sz ? await ?svctm ?%util
sda ? ? ? ? ?0.00 ? ?0.00 ? ? ?0.00 ? 0.00 ? ?0.00 ? ?0.00 ? ? ? ? 0.00 ? ? 0.00 ? ? 0.00 ? ? ? ? ? 0.00 ? ?0.00 ? ?0.00 ? 0.00
sdc ? ? ? ? ?0.00 ? ?0.00 ? ? 0.00 ? 0.00 ? ? 0.00 ? ? 0.00 ? ? ?0.00 ? ? 0.00 ? ? 0.00 ? ? ? ? ? ? 0.00 ? ?0.00 ? ? ?0.00 ? 0.00
如果 %util 接近 100%,说明产生的I/O请求太多,I/O系统已经满负荷,该磁盘可能存在瓶颈.
同时可以结合vmstat 查看查看b参数(等待资源的进程数)
vmstat -1
如果你想对硬盘做一个IO负荷的压力测试可以用如下命令
我们在新建文件夹的同时来测试IO的负荷情况.
linux查看磁盘io的几种方法
怎样才能快速的定位到并发高是由于磁盘io开销大呢?可以通过三种方式:
第一种:用 top 命令 中的cpu 信息观察
Top可以看到的cpu信息有:
具体的解释如下:
①. running 正在运行的进程数
0 stopped 停止的进程数
0 zombie 僵尸进程数
Cpu(s):
①0% sy 内核空间占用CPU百分比
0.0% ni 用户进程空间内改变过优先级的进程占用CPU百分比
0.0% wa 等待输入输出的CPU时间百分比
0.0% hi
0.0% si
0.0% wa 的百分比可以大致的体现出当前的磁盘io请求是否频繁.如果 wa的数量比较大,说明等待输入输出的的io比较多.
第二种:用vmstat
vmstat 命令报告关于线程、虚拟内存、磁盘、陷阱和 CPU 活动的统计信息.由 vmstat 命令生成的报告可以用于平衡系统负载活动.系统范围内的这些统计信息(所有的处理器中)都计算出以百分比表示的平均值,或者计算其总和.
输入命令:
如果发现等待的进程和处在非中断睡眠状态的进程数非常多,并且发送到块设备的块数和从块设备接收到的块数非常大,那就说明磁盘io比较多.
vmstat参数解释:
Procs
r: 等待运行的进程数 b: 处在非中断睡眠状态的进程数 w: 被交换出去的可运行的进程数.此数由 linux 计算得出,但 linux 并不耗尽交换空间
Memory
swpd: 虚拟内存使用情况,单位:KB
free: 空闲的内存,单位KB
buff: 被用来做为缓存的内存数,单位:KB
Swap
si: 从磁盘交换到内存的交换页数量,单位:KB/秒
so: 从内存交换到磁盘的交换页数量,单位:KB/秒
IO
bi: 发送到块设备的块数,单位:块/秒
bo: 从块设备接收到的块数,单位:块/秒
System
in: 每秒的中断数,包括时钟中断
cs: 每秒的环境(上下文)切换次数
CPU
按 CPU 的总使用百分比来显示
us: CPU 使用时间
sy: CPU 系统使用时间
id: 闲置时间
准测
更多vmstat使用信息
第二种:用iostat
安装:
Iostat 是 sysstat 工具集的一个工具,需要安装.
Centos的安装方式是:
yum install sysstat
Ubuntu的安装方式是:
aptitude install sysstat
使用:
iostat -dx 显示磁盘扩展信息
r/s 和 w/s 分别是每秒的读操作和写操作,而rKB/s 和wKB/s 列以每秒千字节为单位显示了读和写的数据量
如果这两对数据值都很高的话说明磁盘io操作是很频繁.
◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆
linux wa%过高,iostat查看io状况
①., 安装?iostat?
之后就可以使用?iostat 命令了,
tps:该设备每秒的传输次数(Indicate the number of transfers per second that were issued to the device.)."一次传输"意思是"一次I/O请求".多个逻辑请求可能会被合并为"一次I/O请求"."一次传输"请求的大小是未知的.kB_read/s:每秒从设备(drive expressed)读取的数据量;
kB_wrtn/s:每秒向设备(drive expressed)写入的数据量;
kB_read:读取的总数据量;kB_wrtn:写入的总数量数据量;这些单位都为Kilobytes.
指定监控的设备名称为sda,该命令的输出结果和上面命令完全相同.
默认监控所有的硬盘设备,现在指定只监控sda.?
iostat还有一个比较常用的选项 -x ,该选项将用于显示和io相关的扩展数据.
iostat -d -x -k 1 10
输出信息的含义
.
iostat -d -k 1 10? ? ? ? #查看TPS和吞吐量信息(磁盘读写速度单位为KB)
iostat -d -x -k 1 10? ? ? #查看设备使用率(%util)、响应时间(await) iostat -c 1 10 #查看cpu状态
iostat -d -k 1 | grep vda
Device:? ? ? ? ? ? tps? ? kB_read/s? ? kB_wrtn/s? ? kB_read? ? kB_wrtn
iostat -d -x -k 1
Device:? ? rrqm/s wrqm/s? r/s? w/s? rsec/s? wsec/s? ? rkB/s? ? wkB/s avgrq-sz avgqu-sz? await? svctm? %util
svctm? ? 表示平均每次设备I/O操作的服务时间(以毫秒为单位).如果svctm的值与await很接近,表示几乎没有I/O等待,磁盘性能很好,
如果await的值远高于svctm的值,则表示I/O队列等待太长,? 系统上运行的应用程序将变慢.
%util: 在统计时间内所有处理IO时间,除以总共统计时间
所以该参数暗示了设备的繁忙程度
.一般地,如果该参数是100%表示设备已经接近满负荷运行了(当然如果是多磁盘,即使%util是100%,因为磁盘的并发能力,所以磁盘使用未必就到了瓶颈).
也可以使用下面的命令,同时显示cpu和磁盘的使用情况
which:which [文件名] which mysql;
find:-name 按照文件名查找文件,
如:find /dir -name filename 在/dir目录及其子目录下面查找名字为filename的文件.
linux 中的查看进程命令;find . -name "*.c" 在当前目录及其子目录(用"."表示)中查找任何扩展名为"c"的文件.
ps命令 是最常用的监控进程的命令,通过此命令可以查看系统中所有运行进程的详细信息.
基本操作: ps -le #查看系统中所有的进程,使用 Linux 标准命令格式 ;ps aux #查看系统中所有的进程,使用 BS 操作系统格式.
可选项
a: 显示一个终端的所有进程;
u: 显示进程的归属用户及内存的使用情况;
x: 显示没有控制终端的进程;
-l: 长格式显示更加详细的信息;
-e: 显示所有进程;
最常用的两种:"ps aux" 可以查看系统中所有的进程;"ps -le" 可以查看系统中所有的进程,而且还能看到进程的父进程的 PID 和进程优先级;"ps -l" 可以查看当前登录 产生了哪些进程
创建文件:
echo "内容" hehe.txt : 它允许你在创建一个文件时就向其中输入一些文本;
查看文件:
cat 文件名 : 由第一行开始显示内容,并将所有内容输出;
more 文件名 : 根据窗口大小,一页一页的现实文件内容;
tail : 可以实时打印最新的日志信息;
ls 执行的功能:列出指定目录中的目录,以及文件;
以上就是土嘎嘎小编为大家整理的linux常见io命令相关主题介绍,如果您觉得小编更新的文章只要能对粉丝们有用,就是我们最大的鼓励和动力,不要忘记讲本站分享给您身边的朋友哦!!