io查询linux命令 linux查看iops命令

linux怎样查看那个进程占用网络io查看linux进程占用端口步骤如下:
lsof -i 用以显示符合条件的进程情况 , lsof(list open files)是一个列出当前系统打开文件的工具 。以root用户来执行lsof -i命令 , 如下图
lsof -i:端口号,用于查看某一端口的占用情况,比如查看22号端口使用情况,lsof -i:22 , 如下图
netstat -tunlp用于显示tcp,udp的端口和进程等相关情况 , 如下图
netstat -tunlp|grep 端口号,用于查看指定端口号的进程情况,如查看22端口的情况,netstat -tunlp|grep 22 , 如下图
Linux如何查看与测试磁盘IO性能top命令io查询linux命令的其他参数代表的含义详见top命令详解
sar 命令是分析系统瓶颈的神器io查询linux命令 , 可以用来查看 CPU 、内存、磁盘、网络等性能 。
sar 命令查看当前磁盘性能的命令为:
linux系统如何查看网络IO?首先 、用top命令查看
top - 16:15:05 up 6 days,6:25,2 users,load average: 1.45, 1.77, 2.14
Tasks: 147 total,1 running, 146 sleeping,0 stopped,0 zombie
Cpu(s):0.2% us,0.2% sy,0.0% ni, 86.9% id, 12.6% wa,0.0% hi,0.0% si
Mem:4037872k total,4003648k used,34224k free,5512k buffers
Swap:7164948k total,629192k used,6535756k free,3511184k cached
查看12.6% wa
IO等待所占用的CPU时间的百分比,高过30%时IO压力高
其次、 用iostat -x 1 10
avg-cpu:\user%nice%sys %iowait%idle
0.000.000.2533.4666.29
Device:rrqm/swrqm/sr/sw/srsec/swsec/srkB/swkB/s avgrq-sz avgqu-szawaitsvctm\util
sda0.000.000.000.000.000.000.000.000.000.000.000.000.00
sdb0.00112217.009.00192.00 9216.0096.004608.00123.79137.23 1033.4313.17 100.10
sdc0.000.000.000.000.000.000.000.000.000.000.000.000.00
查看\util 100.10 %idle 66.29
如果 \util 接近 100%,说明产生的I/O请求太多 , I/O系统已经满负荷,该磁盘可能存在瓶颈 。
idle小于70% IO压力就较大了,一般读取速度有较多的wait.
同时可以结合vmstat 查看查看b参数(等待资源的进程数)
vmstat -1
如果你想对硬盘做一个IO负荷的压力测试可以用如下命令
time dd if=/dev/zero bs=1M count=2048 of=direct_2G
此命令为在当前目录下新建一个2G的文件
我们在新建文件夹的同时来测试IO的负荷情况 。
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比较多 。
【io查询linux命令 linux查看iops命令】 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:tpskB_read/skB_wrtn/skB_readkB_wrtn
sda1060.7218.9571.53395637647 1493241908
sda10299.024266.67129.414352132
sda10483.844589.904117.1745444076
sda10218.003360.00100.003360100
sda10546.008784.00124.008784124
sda10827.0013232.00136.0013232136
上面看到 , 磁盘每秒传输次数平均约400;每秒磁盘读取约5MB,写入约1MB 。
iostat -d -x -k 1
Device:rrqm/s wrqm/sr/sw/srsec/swsec/srkB/swkB/s avgrq-sz avgqu-szawaitsvctm\util
sda1.5628.317.84 31.5043.653.1621.821.581.190.030.802.6110.29
sda1.9824.75 419.806.93 13465.35253.476732.67126.7332.152.004.702.0085.25
sda3.0641.84 444.90 54.08 14204.08 2048.987102.041024.4932.572.104.211.8592.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有问题
io查询linux命令的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于linux查看iops命令、io查询linux命令的信息别忘了在本站进行查找喔 。

    推荐阅读