**Linux sar命令详解**
Linux系统性能分析工具`sar`是System Activity Reporter的缩写,它是`sysstat`软件包的一部分,用于收集、报告和保存系统活动信息。`sar`提供了丰富的选项,用于监控和分析系统的各种性能指标,如CPU利用率、内存使用情况、磁盘I/O以及网络流量等。
### 1. CPU利用率
`sar -p`用于查看全天的CPU利用率,而`sar -u 1 10`则会每隔一秒收集一次数据,持续10次。CPU利用率的输出项有:
- `%user`: 用户空间应用程序使用的CPU时间百分比。
- `%nice`: 优先级提升(nice值较高)的用户进程使用的CPU时间百分比。
- `%system`: 内核空间执行的CPU时间百分比。
- `%iowait`: 等待I/O完成的CPU时间百分比。
- `%steal`: 在虚拟化环境中,宿主机为其他虚拟机服务时消耗的CPU时间百分比。
- `%idle`: CPU空闲时间的百分比。
### 2. 内存利用率
`sar -r`可查看全天内存使用情况,`sar -r 1 10`同理。内存利用率的输出项包括:
- `kbmemfree`: 自由内存,不包含缓冲区和缓存。
- `kbmemused`: 已使用内存,包含缓冲区和缓存。
- `%memused`: 内存使用率,是`kbmemused`占总内存的比例。
- `kbbuffers`和`kbcached`: 分别代表缓冲区和缓存占用的内存。
- `kbcommit`: 系统保证的内存需求,包括物理内存和交换分区。
- `%commit`: `kbcommit`占总内存(包括交换分区)的比例。
### 3. 磁盘I/O
`sar -d`用于查看磁盘I/O性能,`sar -d 1 2`每隔一秒收集两次数据。磁盘I/O的输出项包括:
- `await`: 平均每次I/O操作等待时间(毫秒)。
- `svctm`: 平均每次I/O操作服务时间(毫秒)。
- `%util`: I/O活动占用磁盘时间的百分比,即一秒中磁盘忙的时间占比。
### 4. 网络流量
`sar -n DEV`用于监控网络流量,`sar -n DEV 1 2`每隔一秒收集两次数据。网络流量的输出项有:
- `IFACE`: 网络接口名称。
- `rxpck/s`: 每秒接收的包数量。
- `txpck/s`: 每秒发送的包数量。
- `rxkB/s`: 每秒接收的字节数。
- `txkB/s`: 每秒发送的字节数。
- `rxcmp/s`: 每秒接收的压缩包数量。
- `txcmp/s`: 每秒发送的压缩包数量。
- `rxmcst/s`: 每秒接收的多播包数量。
使用`sar`命令可以实时监控系统性能,及时发现和定位系统瓶颈,对于系统管理员来说是不可或缺的工具。通过定期收集和分析`sar`的数据,可以优化系统配置,提高服务器的稳定性和效率。在实际工作中,可以根据需要选择不同的参数组合,进行详细的系统性能监控。