我想监视linux系统的内存使用情况,在linux下都有哪些视图或者命令行工具可用
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了我想监视linux系统的内存使用情况,在linux下都有哪些视图或者命令行工具可用相关的知识,希望对你有一定的参考价值。
这方面的指令太多了,大体上整理一下12个吧。1. /proc/meminfo
查看RAM使用情况最简单的方法是通过 /proc/meminfo。这个动态更新的虚拟文件实际上是许多其他内存相关工具(如:free / ps / top)等的组合显示。/proc/meminfo列出了所有你想了解的内存的使用情况。进程的内存使用信息也可以通过 /proc/<pid>/statm 和 /proc/<pid>/status 来查看。
2. atop
atop命令是一个终端环境的监控命令。它显示的是各种系统资源(CPU, memory, network, I/O, kernel)的综合,并且在高负载的情况下进行了彩色标注。
3、 free
free命令是一个快速查看内存使用情况的方法,它是对 /proc/meminfo 收集到的信息的一个概述。
4. GNOME System Monitor
GNOME System Monitor 是一个显示最近一段时间内的CPU、内存、交换区及网络的使用情况的视图工具。它还提供了一种查看CPU及内存使用情况的方法。
$ gnome-system-monitor
5. htop
htop命令显示了每个进程的内存实时使用率。它提供了所有进程的常驻内存大小、程序总内存大小、共享库大小等的报告。列表可以水平及垂直滚动。
6. KDE System Monitor
功能同 4 中介绍的GENOME版本。
$ ksysguard
7. memstat
memstat是一个有效识别 executable(s), process(es) and shared libraries使用虚拟内存情况的命令。给定一个进程ID,memstat可以列出这个进程相关的可执行文件、数据和共享库。
8. nmon
nmon是一个基于ncurses的系统基准测试工具,它可以监控CPU、内存、I/O、文件系统及网络资源等的互动模式。对于内存的使用,它可以实时的显示 总/剩余内存、交换空间等信息。
9. ps
ps命令可以实时的显示各个进程的内存使用情况。Reported memory usage information includes %MEM (percent of physical memory used), VSZ (total amount of virtual memory used), and RSS (total amount of physical memory used)。你可以使用 “–sort”选项对进程进行排序,例如按RSS进行排序:
$ ps aux --sort -rss
10. smem
smem命令允许你统计基于/proc信息的不同进程和用户的内存使用情况。内存使用情况的分析可以导出图表(如条形图和饼图)。
$ sudo smem --pie name -c "pss"
11. top
top命令提供了实时的运行中的程序的资源使用统计。你可以根据内存的使用和大小来进行排序。
$ top
12. vmstat
vmstat命令显示实时的和平均的统计,覆盖CPU、内存、I/O等内容。例如内存情况,不仅显示物理内存,也统计虚拟内存。
$ vmstat -s 参考技术A free
vmstat
sar
top 参考技术B top
或者kinfocenter-》memory
用于监视Linux上的内存使用情况的Bash脚本
用于监视Linux上的内存使用情况的Bash脚本
在本文中,我们添加了两个shell脚本来监视Linux操作系统上的内存利用率,即用于监视Linux上的内存使用情况的Bash脚本,当系统达到给定阈值时,它将触发并发送电子邮件给你。可以参考脚本在实践中的应用:用脚本的方法解决搜狗拼音占用大量内存的问题。
方法一、Linux Bash脚本监视内存利用率并发送电子邮件 如果只想在系统达到给定阈值时通过邮件获取当前内存利用率百分比,请使用以下脚本。这是非常简单,一行脚本,在大多数情况下,我更喜欢使用这种方法。当你的系统达到内存利用率的80%时,它将触发电子邮件: */5 * * * * /usr/bin/free | awk ‘/Mem/{printf("RAM Usage: %.2f% "), $3/$2*100}‘ | awk ‘{print $3}‘ | awk ‘{ if($1 > 80) print $0;}‘ | mail -s "High Memory Alert" ywnz@qq.com 注意:请自行更改电子邮件,此外,你可以根据你的要求更改内存利用率阈值,比如达到70%时。 输出:将收到类似下面的电子邮件提醒: High Memory Alert: 80.40%
方法二、Linux Bash脚本监视内存利用率并发送电子邮件 如果要在邮件警报中获取有关内存利用率的更多信息,请使用以下脚本,其中包括基于top命令和ps命令的最高内存利用率进程详细信息,这将立即让你了解系统的运行情况。 参考:top命令_Linux top命令使用详解:显示或管理执行中的程序。 当你的系统达到内存利用率的80%时,它将触发电子邮件。注意:请自行更改电子邮件,此外,可以根据你的要求更改内存利用率阈值。 # vi /opt/scripts/memory-alert.sh #!/bin/sh ramusage=$(free | awk ‘/Mem/{printf("RAM Usage: %.2f "), $3/$2*100}‘| awk ‘{print $3}‘) if [ "$ramusage" > 20 ]; then SUBJECT="ATTENTION: Memory Utilization is High on $(hostname) at $(date)" MESSAGE="/tmp/Mail.out" TO="ywnz@qq.com" echo "Memory Current Usage is: $ramusage%" >> $MESSAGE echo "" >> $MESSAGE echo "---------------------------------------------" >> $MESSAGE echo "Top Memory Consuming Process Using top command" >> $MESSAGE echo "---------------------------------------------" >> $MESSAGE echo "$(top -b -o +%MEM | head -n 20)" >> $MESSAGE echo "" >> $MESSAGE echo "---------------------------------------------" >> $MESSAGE echo "Top Memory Consuming Process Using ps command" >> $MESSAGE echo "---------------------------------------------" >> $MESSAGE echo "$(ps -eo pid,ppid,%mem,%Memory,cmd --sort=-%mem | head)" >> $MESSAGE mail -s "$SUBJECT" "$TO" < $MESSAGE rm /tmp/Mail.out fi 最后添加一个cronjob来自动执行此操作,它将每5分钟运行一次: # crontab -e */5 * * * * /bin/bash /opt/scripts/memory-alert.sh 注意:由于脚本计划每5分钟运行一次,因此你将在5分钟后收到电子邮件警报,如果觉得5分钟太频繁,可以更改为10分钟或者1小时都可。 输出:将收到类似下面的电子邮件提醒,如下图:
|
以上是关于我想监视linux系统的内存使用情况,在linux下都有哪些视图或者命令行工具可用的主要内容,如果未能解决你的问题,请参考以下文章