linux查看内存使用(查看linux内存使用情况命令)
Linux查看内存使用情况命令
在Linux系统中获取机器当前的内存使用情况,可以使用大量的命令。根据不同的需要和场景,可以灵活地选择适合的命令。本文将介绍常用的Linux查看内存使用命令,并对命令的输出结果进行分析。
free命令
free是最常用的Linux查看内存使用命令之一。可以使用以下命令来查看系统内存使用情况:
free -h
输出结果会以M或者G为单位,整齐地列出内存的总量、已使用量、未使用量、共享内存、缓存、缓存和已经回收的内存的使用量。
total used free shared buffers cachedMem: 3.7G 1.8G 1.8G 0B 93M 628M
-/+ buffers/cache: 1.1G 2.6G
Swap: 2.0G 0B 2.0G
free命令只会详细地告诉你系统当前的状态,因此不会解决你的问题。例如,你想知道程序使用了多少内存,free所列出的信息是无法代表每个程序使用内存的。
top命令
top可以使用来检测系统资源的使用情况,包括RAM和CPU占用情况。使用以下命令启动top:
top
输出结果将会实时更新,并包括整个系统的进程列表。在结果中,可以看到每个进程的内存消耗情况,包括虚拟内存和物理内存。使用下方的参数可以调整top所显示的结果:
Shift + P:按照CPU占用率排序。
Shift + M:按照内存占用率排序。
top可以在菜单中使用Shift + ? 打开,可以获得top各命令行的快捷键。
vmstat命令
vmstat可以实时监控Linux系统的CPU利用率、内存使用率和系统IO等信息,是管理员监控系统性能和调优的一种重要监控手段。使用以下命令启动vmstat:
vmstat
输出结果将会实时更新,并包括CPU利用率、内存使用率、系统IO等信息。两个比较重要的参数:
free:剩余的可用物理内存量,单位为KB。
si/so:交换进程的页的数量,单位为KB。
si:
代表swap in,进程虚拟内存在物理内存不够用的时候,需要使用硬盘来充当缓存,将数据从交换分区读入内存。
如果数值比较大,说明当前内存量无法满足程序需求,这个时候需要考虑如何调整系统内存大小或者缩小一些进程所占用的内存。
so:
代表swap out,需要把不用的内存数据移到交换分区中释放出来,腾出来运行时必备的内存。
如果si和so的数值经常很大,说明系统内存相对于其上运行的进程过小。
sar命令
sar(System Activity Reporter)是Linux内置的监控工具之一,可以输出CPU、内存、磁盘、网络等方面的历史统计数据。使用以下命令启动sar:
sar -r
使用sar命令需要先安装sysstat包。上一分钟内系统使用内存情况的输出结果与vmstat差不多。
05:54:55 PM kbmemfree kbmemused %memused kbbuffers kbcached kbcommit %commit05:54:55 PM 72240 3917992 98.18 80824 1139056 361956 717.51
pmap命令
pmap可以查看进程使用的内存信息。使用以下命令启动pmap:
pmap -x PID
出现的结果类似下面这个样子:
Address Kbytes RSS Dirty Mode Mapping08048000 5540 4160 0 r-x-- HelloWorld
08247000 560 144 0 r--s- libc-2.17.so
08057000 356 184 8 r--s- ld-2.17.so
...
pmap列出了被查看的进程所使用的内存地址、大小和属性等信息。根据输出结果,可以评估各个进程彼此之间使用内存的情况。
总结
Linux提供了广泛的工具来监测系统内存的使用情况。free、top和vmstat可能是最常用的三个监控命令,可以查看整个系统级别的内存使用情况。而sar和pmap命令将提供关于系统历史状态和单个进程的详细信息。对于管理员来说,这些工具将帮助他们更好地了解系统的使用方式和优化可用内存。