用的到linux-系统性能监控(内存、CPU、硬盘、IO)-Day6

前言:

        在Linux系统中,实时监控系统的资源使用情况(如内存、硬盘、CPU、网络和IO等)是非常重要的,它可以帮助你了解系统的健康状况,及时发现潜在的性能瓶颈或问题。下面将介绍一些常用的命令和工具,帮助你实时监控这些指标。

 一、CPU

        1、uptime

        对应显示信息为当前系统时间为17:15:47,已运行98天5小时33分,一个用户在登录,最近1分钟、5分钟、15分钟CPU负载情况,分别为0% 、1%、5%。

        2、top

        类似win的任务管理器,动态显示进程占用情况

        3、vmstat

        vmstat 命令:报告关于系统内存、进程、中断、CPU活动等的信息。

 二、内存

        1、free

        选项:-b 、-k、-m、-g(按不同单位显示及Byte/KB/MB/GB)

        free 命令:显示系统中空闲、已用、交换等内存量。

        2、watch free -h

        watch 命令用于定期执行 free -h-h 选项表示以人类可读的格式(如KB、MB、GB)显示。

三、硬盘

        1、df

        可选:-h 、-i、-T  (h人性化显示,i显示使用量,T显示文件系统类型)

        2、watch df -h

        每隔一段时间以人类可读的格式显示磁盘使用情况。

         3、iostat 2

        iostat(需要安装sysstat包):监控CPU和输入输出设备的统计信息。

   -d 选项显示所有设备,-x 显示扩展统计信息,1 表示每1秒更新一次。        

        iostat -dx 2

 四、网络

        1、iftop

        显示实时的网络带宽使用情况。

        2、nload

        3、ss

ss 或 netstatnetstat 在一些新系统中可能已被ss取代):显示网络连接、路由表、接口统计等。

        4、netstat

五、IO

        1、iotop

iostat(如上所述):可以显示磁盘的IO统计信息。

iotop(可能需要安装):监控磁盘IO使用情况及哪个进程在使用它

2、pidstat -d 1

-d 选项表示显示IO统计,1 表示每1秒更新一次。

 

 

 

 

### 关于SAR原始数据的获取与处理 #### 获取SAR原始数据 `sar` 命令是 Linux 性能监控的重要工具之一,它能够收集并报告系统的各种性能指标。默认情况下,`sar` 的数据存储在 `/var/log/sa/` 目录下,文件名通常为 `saXX` 或 `sarXX`,其中 XX 表示日期(如 01 到 31)。这些文件包含了系统性能的历史记录。 要查看特定时间段内的 SAR 数据,可以使用以下命令: ```bash sar -f /var/log/sa/sa<day> [options] ``` 例如,如果想查看某一天 CPU 使用率的数据,可执行如下命令: ```bash sar -u -f /var/log/sa/sa01 ``` 此外,可以通过 `-A` 参数来显示所有可用的性能统计数据[^3]。 #### 处理 SAR 原始数据 SAR 数据本质上是以 ASCII 文本形式保存的,因此可以直接通过脚本解析和处理。以下是几种常见的处理方式: 1. **提取负载平均值** 负载平均值可以从 `/proc/loadavg` 中读取,并结合 SAR 工具进行长期监测。具体操作可通过以下命令实现: ```bash sar -q | awk '{print $3, $4, $5}' ``` 这里的 `$3`, `$4`, 和 `$5` 对应的是过去 1 分钟、5 分钟以及 15 分钟的系统负载均值[^4]。 2. **内存相关统计** 如果需要关注内存使用情况,则可以运行以下命令: ```bash sar -r ``` 此外,还可以利用自定义脚本来批量分析多天或多时段的内存变化趋势。 3. **自动化数据分析** 可编写 Python 或 Shell 脚本来定期抓取 SAR 日志中的关键字段,并将其导入数据库或者绘制成图表以便更好地理解系统行为。下面是一个简单的 Bash 脚本例子用于导出每日磁盘 I/O 统计至 CSV 文件: ```bash #!/bin/bash DATE=$(date +%Y-%m-%d) OUTPUT="disk_io_$DATE.csv" echo "Time,Disk Read(D/S),Disk Write(D/S)" > "$OUTPUT" sar -b | grep -v "^$" | tail -n +3 | while read line; do TIME=$(echo $line | awk '{print $1}') READ=$(echo $line | awk '{print $3}') WRITE=$(echo $line | awk '{print $4}') echo "$TIME,$READ,$WRITE" >> "$OUTPUT" done ``` #### 文件格式说明 SAR 存储的日志文件通常是二进制格式(对于某些版本),但在大多数现代发行版中已改为纯文本格式便于阅读和编辑。每行代表一个采样时刻及其对应的一组测量值,各列之间以空格分隔开。每一类别的报表都有固定的布局结构,比如网络接口吞吐量、CPU 占用百分比等都会遵循一致的标准输出样式。 #### 系统性能监控最佳实践 为了提高效率,在部署大规模服务器集群环境时建议设置合理的轮询周期以免过度消耗本地资源;同时也要注意清理过期历史档案以防硬盘空间不足引发其他问题。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

他们叫我技术总监

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值