Linux系统下监控CPU和内存的方法多种多样,以下是一些常用的命令和工具:
CPU 监控
1、top:top
命令是一个实时的系统监控工具,可以显示系统中各个进程的资源占用情况,包括 CPU 使用率,按P
键可以按照 CPU 使用率进行排序。
2、mpstat:mpstat
命令用于显示各个可用 CPU 的状态,如用户态、系统态、空闲态等时间占比,通过mpstat -P ALL
可以查看所有 CPU 核心的使用情况。
3、vmstat:vmstat
命令报告关于内核线程、虚拟内存、磁盘 I/O、陷阱和 CPU 占用率的统计信息,在 CPU 部分,us
表示用户进程消耗的 CPU 时间百分比,sy
表示系统进程消耗的 CPU 时间百分比,id
表示 CPU 的空闲时间百分比。
4、pidstat:pidstat
命令可用于监控全部或指定进程的 CPU 使用情况,通过pidstat -u
可以查看所有进程的 CPU 使用统计。
1、free:free
命令用于显示系统的内存使用情况,包括物理内存、交换内存以及内核缓冲区等。free -m
以 MB 为单位显示内存使用情况。
2、vmstat:除了 CPU 信息外,vmstat
命令还提供了关于内存使用的详细统计信息,如总内存、已用内存、空闲内存、缓存和缓冲区大小等。
3、top:top
命令同样可以显示内存使用情况,包括总内存、已用内存、空闲内存以及各个进程的内存占用情况。
4、pidstat:pidstat -r
命令可以用于查看所有进程的内存使用情况。
综合监控脚本示例
以下是一个综合的 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