1. linux查看磁盘io的几种方法
linux查看磁盘io的几种方法
怎样才能快速的定位到并发高是由于磁盘io开销大呢?可以通过三种方式:
第一种:用 top 命令 中的cpu 信息观察
Top可以看到的cpu信息有:
Tasks: 29 total, 1 running, 28 sleeping, 0 stopped, 0 zombie
Cpu(s): 0.3% us, 1.0% sy, 0.0% ni, 98.7% id, 0.0% wa, 0.0% hi, 0.0% si
具体的解释如下:
Tasks: 29 total 进程总数
1 running 正在运行的进程数
28 sleeping 睡眠的进程数
0 stopped 停止的进程数
0 zombie 僵尸进程数
Cpu(s):
0.3% us 用户空间占用CPU百分比
1.0% sy 内核空间占用CPU百分比
0.0% ni 用户进程空间内改变过优先级的进程占用CPU百分比
98.7% id 空闲CPU百分比
0.0% wa 等待输入输出的CPU时间百分比
0.0% hi
0.0% si
0.0% wa 的百分比可以大致的体现出当前的磁盘io请求是否频繁。如果 wa的数量比较大,说明等待输入输出的的io比较多。
第二种:用vmstat
vmstat 命令报告关于线程、虚拟内存、磁盘、陷阱和 CPU 活动的统计信息。由 vmstat 命令生成的报告可以用于平衡系统负载活动。系统范围内的这些统计信息(所有的处理器中)都计算出以百分比表示的平均值,或者计算其总和。
输入命令:
vmstat 2 5
如果发现等待的进程和处在非中断睡眠状态的进程数非常多,并且发送到块设备的块数和从块设备接收到的块数非常大,那就说明磁盘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 显示磁盘扩展信息
root@fileapp:~# iostat -dx
r/s 和 w/s 分别是每秒的读操作和写操作,而rKB/s 和wKB/s 列以每秒千字节为单位显示了读和写的数据量
如果这两对数据值都很高的话说明磁盘io操作是很频繁。
+++++++++++++++++++++++++++++++++++++
linux wa%过高,iostat查看io状况
1, 安装 iostat
yum install sysstat
之后就可以使用 iostat 命令了,
2,入门使用
iostat -d -k 2
参数 -d 表示,显示设备(磁盘)使用状态;-k某些使用block为单位的列强制使用Kilobytes为单位;2表示,数据显示每隔2秒刷新一次。
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,该命令的输出结果和上面命令完全相同。
iostat -d sda 2
默认监控所有的硬盘设备,现在指定只监控sda。
3, -x 参数
iostat还有一个比较常用的选项 -x ,该选项将用于显示和io相关的扩展数据。
iostat -d -x -k 1 10
输出信息的含义
。
4, 常见用法
iostat -d -k 1 10 #查看TPS和吞吐量信息(磁盘读写速度单位为KB)
iostat -d -m 2 #查看TPS和吞吐量信息(磁盘读写速度单位为MB)
iostat -d -x -k 1 10 #查看设备使用率(%util)、响应时间(await) iostat -c 1 10 #查看cpu状态
5, 实例分析
iostat -d -k 1 | grep vda
Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtn
sda10 60.72 18.95 71.53 395637647 1493241908
sda10 299.02 4266.67 129.41 4352 132
sda10 483.84 4589.90 4117.17 4544 4076
sda10 218.00 3360.00 100.00 3360 100
sda10 546.00 8784.00 124.00 8784 124
sda10 827.00 13232.00 136.00 13232 136
上面看到,磁盘每秒传输次数平均约400;每秒磁盘读取约5MB,写入约1MB。
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
sda 1.56 28.31 7.84 31.50 43.65 3.16 21.82 1.58 1.19 0.03 0.80 2.61 10.29
sda 1.98 24.75 419.80 6.93 13465.35 253.47 6732.67 126.73 32.15 2.00 4.70 2.00 85.25
sda 3.06 41.84 444.90 54.08 14204.08 2048.98 7102.04 1024.49 32.57 2.10 4.21 1.85 92.24
可以看到磁盘的平均响应时间<5ms,磁盘使用率>80。磁盘响应正常,但是已经很繁忙了。
可以看到磁盘的平均响应时间<5ms,磁盘使用率>90。磁盘响应正常,但是已经很繁忙了。
await: 每一个IO请求的处理的平均时间(单位是微秒毫秒)。这里可以理解为IO的响应时间,一般地系统IO响应时间应该低于5ms,如果大于10ms就比较大了
svctm 表示平均每次设备I/O操作的服务时间(以毫秒为单位)。如果svctm的值与await很接近,表示几乎没有I/O等待,磁盘性能很好,
如果await的值远高于svctm的值,则表示I/O队列等待太长, 系统上运行的应用程序将变慢。
%util: 在统计时间内所有处理IO时间,除以总共统计时间
所以该参数暗示了设备的繁忙程度
。一般地,如果该参数是100%表示设备已经接近满负荷运行了(当然如果是多磁盘,即使%util是100%,因为磁盘的并发能力,所以磁盘使用未必就到了瓶颈)。
也可以使用下面的命令,同时显示cpu和磁盘的使用情况
等待时间超过5ms, 磁盘io有问题
2. Linux检查硬盘健康状态
系统:CentOS 7.9
result: PASSED 表示硬盘健康状态良好
3. linux怎么查看硬盘挂载状态
使用df -h命令来查看硬盘的挂载状态。
一、检测硬盘能否被识别
二、挂载硬盘
1、在本地硬盘中临时创建一个目录
2、挂载第二块硬盘中的一个分区/dev/sdb1到tmp1
3、查看是否被挂载
三、卸载硬盘
4. linux 系统 如何检测 磁盘 是否损坏
1、连接上相应的linux主机,进入到等待输入shell指令的linux命令行状态下。
5. Linux系统下如何使硬盘进入休眠状态
在linux下,我喜欢用命令让系统进入休眠:
$ echo mem | sudo tee /sys/power/state
当然,不用每次都斗坦亏要敲这么一长串,可以把它加入到一个脚本中。 再将该脚本命令加入到/etc/sudoers文件,就可以避免每次都需要输入用户信裤密码了。
6. linux系统查看硬盘状态
1.使用df命令,查看整体的磁盘使用情况 df命令是用来查看硬盘的挂载点,以及对应的硬盘容量信息。包括硬盘的总大小,已经使用的大小,剩余大小。以及使用的空间占有的百分比等。 最常用的命令格式就是: 1 df -h...
2.使用命令查看指定目录的使用情况 命令来查看硬盘内部的目录或者文件的信息。命令通常是需要在后面带参数执行的,一般格式是: 1 option File/directory 比如我想查看当前目录下...
7. linux 查看硬盘使用情况
1、使用df命令,查看整体的磁盘使用情况
df命令是用来查看硬盘的挂载点,以及对应培让的硬盘容量信息。包括硬盘的总大小,已经使用的大小,剩余大小。以及使用的空间占有的百分比等。
最常用的命令格式就是:
df -h
或者使用:
df -lh
输出:
Filesystem指的是系统上的硬件设备文件,Size指的是硬盘或者分区的总大小。Used表示已经使用的大小,Avail表示可以使用的大小。Use%表示已经使用的空间所占的百分比。最后的mounted on表示硬盘挂载到哪个目录下。
说明:配拆局df命令后可以添加的参数
●-a:列出所有的文件系统,包括系统特有的/proc等文件系统
●-k:以KB的容量显示各文件系统
●-m:以MB的容量显示各文件系统
●-h:以人们较易阅读的GB,MB,KB等格式自行显示
●-H:以M=1000K替代M=1024K的进位方式
●-T:显示文件系统类型
●-i:不用硬盘容量,而以inode的数量来显示
●-l:只御镇显示本机的文件系统
2、使用命令查看指定目录的使用情况
命令来查看硬盘内部的目录或者文件的信息。命令通常是需要在后面带参数执行的,一般格式是:
option File/directory
比如我想查看当前目录下的python3目录的容量,命令就是:
-sh python就能直观看到这个目录的大小是206M,如果后面不带文件名或者目录名,则会显示当前目录的大小。
8. linux怎么查看硬盘挂载状态
使用df
-h命令来查看硬盘的挂载状态。
关于硬盘挂载的其它说明:
一、检测硬盘能否被识别
#
fdisk
-l
查找新硬盘信息,类似如下文本:
disk
/dev/sdb:
36.7
gb,
36748945408
bytes
二、挂载硬盘
1、在本地硬盘中临时创建一个目录
#mkdir
/opt/data/tmp1
2、挂载第二块硬盘中的一个分区/dev/sdb1到tmp1
#mount
/dev/sdb1
/opt/data/tmp1
3、查看是否被挂载
#
df
-h
查看一下是否有类似如下文本
/dev/sdb1
3.9g
1.4g
2.3g
38%
/opt/tmp/tmp1
三、卸载硬盘
#umount
/dev/sdb1
df命令说明
df命令用于显示磁盘分区上的可使用的磁盘空间。默认显示单位为kb。可以利用该命令来获取硬盘被占用了多少空间,目前还剩下多少空间等信息。
语法
df(选项)(参数)
选项
-a或--all:包含全部的文件系统;
--block-size=<区块大小>:以指定的区块大小来显示区块数目;
-h或--human-readable:以可读性较高的方式来显示信息;
-h或--si:与-h参数相同,但在计算时是以1000
bytes为换算单位而非1024
bytes;
-i或--inodes:显示inode的信息;
-k或--kilobytes:指定区块大小为1024字节;
-l或--local:仅显示本地端的文件系统;
-m或--megabytes:指定区块大小为1048576字节;
--no-sync:在取得磁盘使用信息前,不要执行sync指令,此为预设值;
-p或--portability:使用posix的输出格式;
--sync:在取得磁盘使用信息前,先执行sync指令;
-t<文件系统类型>或--type=<文件系统类型>:仅显示指定文件系统类型的磁盘信息;
-t或--print-type:显示文件系统的类型;
-x<文件系统类型>或--exclude-type=<文件系统类型>:不要显示指定文件系统类型的磁盘信息;
--help:显示帮助;
--version:显示版本信息。
参数
文件:指定文件系统上的文件。
实例