iostat 等运维命令用法

本文详细介绍iostat工具的安装及使用方法,包括基本参数解释、常见用法及实例分析,帮助读者深入理解磁盘I/O性能监控。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

安装:使用yum,如何安装iostat
sysstat 使用yum安装
#yum install sysstat

sysstat的安装包是:sysstat-5.0.5-1.i386.rpm,装完了sysstat-5.0.5-1.i386.rpm
后 就会有iostat、mpstat、sar、sa的功能,sysstat-5.0.5-1.i386.rpm


1. 基本使用



$iostat -d -k 1 10


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


$iostat -d -k 1 10 

Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtn 

sda 39.29 21.14 1.44 441339807 29990031 

sda1 0.00 0.00 0.00 1623 523 

sda2 1.32 1.43 4.54 29834273 94827104 

sda3 6.30 0.85 24.95 17816289 520725244 

sda5 0.85 0.46 3.40 9543503 70970116 

sda6 0.00 0.00 0.00 550 236 

sda7 0.00 0.00 0.00 406 0 

sda8 0.00 0.00 0.00 406 0 

sda9 0.00 0.00 0.00 406 0 

sda10 60.68 18.35 71.43 383002263 1490928140 

Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtn 

sda 327.55 5159.18 102.04 5056 100 

sda1 0.00 0.00 0.00 0 0



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以及它的各个分区的统计数据,当时统计的磁盘总TPS是39.29,下面是各个分区的TPS。(因为是瞬间值,所以总TPS并不严格等于各个分区TPS的总和)


2. -x 参数


使用-x参数我们可以获得更多统计信息。


iostat -d -x -k 1 10 

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.80 31.49 42.51 2.92 21.26 1.46 1.16 0.03 0.79 2.62 10.28 

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 2.00 20.00 381.00 7.00 12320.00 216.00 6160.00 108.00 32.31 1.75 4.50 2.17 84.20



rrqm/s:每秒这个设备相关的读取请求有多少被Merge了(当系统调用需要读取数据的时候,VFS将请求发到各个FS,如果FS发现不同的读取请求 读取的是相同Block的数据,FS会将这个请求合并Merge);wrqm/s:每秒这个设备相关的写入请求有多少被Merge了。


rsec/s:每秒读取的扇区数;wsec/:每秒写入的扇区数。r/s:The number of read requests that were issued to the device per second;w/s:The number of write requests that were issued to the device per second;


await:每一个IO请求的处理的平均时间(单位是微秒毫秒)。这里可以理解为IO的响应时间,一般地系统IO响应时间应该低于5ms,如果大于10ms就比较大了。


%util:在统计时间内所有处理IO时间,除以总共统计时间。例如,如果统计间隔1秒,该设备有0.8秒在处理IO,而0.2秒闲置,那么该设备 的%util = 0.8/1 = 80%,所以该参数暗示了设备的繁忙程度。一般地,如果该参数是100%表示设备已经接近满负荷运行了(当然如果是多磁盘,即使%util是100%,因 为磁盘的并发能力,所以磁盘使用未必就到了瓶颈)。


3. -c 参数


iostat还可以用来获取cpu部分状态值:


iostat -c 1 10 

avg-cpu: %user %nice %sys %iowait %idle 

1.98 0.00 0.35 11.45 86.22 

avg-cpu: %user %nice %sys %iowait %idle 

1.62 0.00 0.25 34.46 63.67



4. 常见用法


$iostat -d -k 1 10 #查看TPS和吞吐量信息 iostat -d -x -k 1 10 #查看设备使用率(%util)、响应时间(await) iostat -c 1 10 #查看cpu状态


5. 实例分析


$$iostat -d -k 1 |grep sda10 

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。磁盘响应正常,但是已经很繁忙了。

<think>好的,我现在需要帮助用户查找Linux运维常用的命令汇总。首先,我得看看用户提供的引用内容,里面提到了几个引用来源,可能含有用的信息。用户可能希望得到一个结构化的回答,分门别类列出常用命令,并且每个类别下有几个例子,这样更清晰。 首先,引用[1]中提到了很多基础命令,比如echo、printf、rpm、yum等,还有系统管理与性能监视命令,比如free、df、du、uptime。引用[3]补充了查看系统资源的命令,比如内存、分区使用情况、系统负载等。引用[4]展示了日志分析的例子,使用awk、sort、uniq等命令处理日志文件。引用[2]提到了设备文件的信息,可能和磁盘管理有关,但用户的问题主要是命令汇总,这部分可能暂时不需要。 接下来,我需要将这些命令分类。常见的运维任务括系统监控、磁盘管理、网络管理、进程管理、软件管理、日志分析、用户权限管理等。每个类别下需要列出对应的命令,并给出简要说明。比如系统监控可以用top、free、uptime;磁盘管理用df、du、fdisk;网络管理用netstat、ss、ping等。 还要注意用户提到的命令需要具体例子,比如如何查看内存使用量,可以使用free -m,或者查看分区情况用df -h。在日志分析部分,可以引用[4]中的例子,展示如何统计日志中的并发情况,使用cat、awk、sort、uniq等组合命令。 另外,用户可能对性能调优相关的命令感兴趣,比如vmstat、iostat,这些在系统监控中也很重要。进程管理方面,ps和kill是基础,pstree可以显示进程树,可能也值得提及。 需要确保命令的正确性和常见用法,比如tar用于压缩解压,rsync用于同步文件,crontab用于定时任务。用户权限管理中的chmod、chown也是必须的。 最后,生成相关问题,可能涉及命令的具体使用场景、如何组合命令解决问题、或者如何优化系统性能等。比如如何监控实时系统资源,或者如何分析日志文件中的错误。 总结下来,结构应该是分点列出各个类别,每个类别下列出命令和示例,同时引用对应的引用来源。确保覆盖用户提到的命令,并补充其他常用命令,使回答全面且有用。</think>### Linux 运维常用命令分类汇总 #### 一、系统监控与性能分析 1. **资源查看** - `free -m`:查看内存和交换区使用量(单位MB)[^3] - `df -h`:显示磁盘分区使用情况(人类可读格式)[^3] - `uptime`:查看系统运行时间、用户数和负载[^3] - `cat /proc/loadavg`:显示系统负载(1/5/15分钟平均)[^3] 2. **性能分析工具** - `top`:动态监控进程和系统资源(CPU、内存) - `vmstat 1`:每秒输出一次虚拟内存统计信息 - `iostat -x 2`:每2秒显示磁盘I/O和CPU使用率 - `sar`:系统活动报告(需安装sysstat) #### 二、磁盘与文件管理 1. **磁盘操作** - `du -sh /path`:统计目录/文件大小(人类可读格式)[^3] - `fdisk -l`:列出磁盘分区表 - `lsblk`:查看块设备信息(树状结构) 2. **文件处理** - `tar -czvf archive.tar.gz dir/`:压缩目录为gzip格式 - `rsync -avz src/ dest/`:增量同步文件(保留属性) - `find / -name "*.log"`:全局搜索.log文件 #### 三、网络管理 1. **连接与端口** - `netstat -tulnp`:查看监听中的TCP/UDP端口及进程[^1] - `ss -s`:显示更详细的网络连接统计(替代netstat) - `ping -c 4 example.com`:测试网络连通性(4次) 2. **高级工具** - `tcpdump -i eth0 port 80`:抓取eth0网卡80端口流量 - `nc -zv 192.168.1.1 22`:测试目标主机的22端口是否开放 #### 四、进程管理 1. **进程控制** - `ps aux | grep nginx`:过滤查看nginx进程 - `kill -9 1234`:强制终止PID为1234的进程 - `pstree -p`:以树状结构显示进程关系 2. **定时任务** - `crontab -e`:编辑当前用户的定时任务 - `systemctl restart cron`:重启定时服务 #### 五、日志分析(示例) ```bash # 统计日志中访问量最高的10个IP(引用[4]示例变体) cat access.log | awk '{print $1}' | sort | uniq -c | sort -nr | head -n 10 ``` #### 六、软件管理 1. **RPM/YUM** - `rpm -ivh package.rpm`:安装本地RPM[^1] - `yum update httpd`:更新指定软件 2. **APT(Debian系)** - `apt-get install nginx`:安装软件 - `apt autoremove`:清理无用依赖 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值