如何有效地监控Linux系统中的CPU和内存使用情况?

Linux系统下监控CPU和内存的方法多种多样,以下是一些常用的命令和工具:

CPU 监控

如何有效地监控Linux系统中的CPU和内存使用情况?插图1
(图片来源网络,侵删)

1、toptop 命令是一个实时的系统监控工具,可以显示系统中各个进程的资源占用情况,包括 CPU 使用率,按P 键可以按照 CPU 使用率进行排序。

2、mpstatmpstat 命令用于显示各个可用 CPU 的状态,如用户态、系统态、空闲态等时间占比,通过mpstat -P ALL 可以查看所有 CPU 核心的使用情况。

3、vmstatvmstat 命令报告关于内核线程、虚拟内存、磁盘 I/O、陷阱和 CPU 占用率的统计信息,在 CPU 部分,us 表示用户进程消耗的 CPU 时间百分比,sy 表示系统进程消耗的 CPU 时间百分比,id 表示 CPU 的空闲时间百分比。

4、pidstatpidstat 命令可用于监控全部或指定进程的 CPU 使用情况,通过pidstat -u 可以查看所有进程的 CPU 使用统计。

内存监控

如何有效地监控Linux系统中的CPU和内存使用情况?插图3
(图片来源网络,侵删)

1、freefree 命令用于显示系统的内存使用情况,包括物理内存、交换内存以及内核缓冲区等。free -m 以 MB 为单位显示内存使用情况。

2、vmstat:除了 CPU 信息外,vmstat 命令还提供了关于内存使用的详细统计信息,如总内存、已用内存、空闲内存、缓存和缓冲区大小等。

3、toptop 命令同样可以显示内存使用情况,包括总内存、已用内存、空闲内存以及各个进程的内存占用情况。

4、pidstatpidstat -r 命令可以用于查看所有进程的内存使用情况。

综合监控脚本示例

如何有效地监控Linux系统中的CPU和内存使用情况?插图5
(图片来源网络,侵删)

以下是一个综合的 Linux Shell 脚本示例,用于周期性自动统计 CPU、内存和 IO 使用情况:

#!/bin/bash
输出文件路径
OUTPUT_FILE="/var/log/system_monitor.log"
清空输出文件
> $OUTPUT_FILE
获取 CPU 核心数量
NUM_CPUS=$(grep -c ^processor /proc/cpuinfo)
获取 CPU 占用率
function get_cpu_usage() {
    CPU_USAGE=$(mpstat 1 1 | awk '/^Average:/ {print 100 $NF}')
    echo "CPU Usage: ${CPU_USAGE}%"
}
获取内存使用情况
function get_memory_usage() {
    MEM_INFO=$(free -m | awk '/Mem:/ {print $3 "MB used, " $4 "MB free"}')
    echo "Memory Usage: ${MEM_INFO}"
}
获取 IO 使用情况
function get_io_usage() {
    IO_INFO=$(iostat -dx 1 1 | awk '/^Device:/ {getline; print $1 " IO Utilization: " $NF"%"}')
    echo "IO Usage: ${IO_INFO}"
}
循环每3秒钟采集一次数据
while true; do
    echo "-----------------------------------------" >> $OUTPUT_FILE
    date >> $OUTPUT_FILE
    echo "-----------------------------------------" >> $OUTPUT_FILE
    get_cpu_usage >> $OUTPUT_FILE
    get_memory_usage >> $OUTPUT_FILE
    get_io_usage >> $OUTPUT_FILE
    sleep 3
done

这个脚本会每 3 秒钟采集一次 CPU、内存和 IO 的使用情况,并将结果写入指定的日志文件中,通过这种方式,可以实现对 Linux 系统性能的实时监控。

到此,以上就是小编对于linux监控cpu 内存的问题就介绍到这了,希望介绍的几点解答对大家有用,有任何问题和不懂的,欢迎各位朋友在评论区讨论,给我留言。

本文来源于互联网,如若侵权,请联系管理员删除,本文链接:https://www.9969.net/64901.html

小末小末
上一篇 2024年10月1日 12:12
下一篇 2024年10月1日 12:22

相关推荐