1. 使用free命令查看系统内存情况
在Linux系统中,可以使用free命令来查看系统的内存使用情况。该命令可以显示系统的总内存、已使用内存、空闲内存以及缓存和缓冲区的使用情况。
free -h
其中,-h选项用于以人类可读的方式显示内存大小。
下面是一个示例输出:
total used free shared buffers cached
Mem: 7.7G 3.0G 4.7G 228M 450M 1.8G
-/+ buffers/cache: 747M 6.9G
Swap: 2.0G 0B 2.0G
从输出中可以看到,系统总共有7.7G的内存,其中已使用3.0G,空闲4.7G,缓存和缓冲区分别占用450M和1.8G。
2. 使用top命令实时监控内存使用情况
top命令是一个强大的系统监控工具,可以实时显示系统的各项性能指标,包括内存使用情况。
top
运行top命令后,会实时显示系统的各个进程的 CPU 使用率、内存使用率等信息。
在top命令的交互界面中,可以按下键盘上的m键,可以按照内存使用率进行排序。此时,会将内存使用最高的进程排在最前面。
下面是一个示例输出:
top - 16:38:10 up 3 days, 5:32, 2 users, load average: 0.00, 0.01, 0.05
Tasks: 128 total, 1 running, 127 sleeping, 0 stopped, 0 zombie
%Cpu(s): 0.0 us, 0.0 sy, 0.0 ni,100.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
MiB Mem : 7974.2 total, 231.7 free, 3546.8 used, 4195.7 buff/cache
MiB Swap: 2048.0 total, 2048.0 free, 0.0 used. 3937.3 avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
2232 root 20 0 343068 13276 8584 S 0.0 0.2 0:00.24 systemd
2233 root 20 0 12468 3552 2944 S 0.0 0.0 0:00.18 (sd-pam)
2536 root 20 0 12536 3276 2768 R 0.0 0.0 0:00.00 top
从输出中可以看到,进程的内存使用率在%MEM列中显示,占用内存最多的进程排在最前面。
3. 使用ps命令查看进程的内存使用情况
ps命令可以显示系统中运行的进程信息,包括进程的内存使用情况。
ps aux
其中,aux选项用于显示所有用户的所有进程,并以用户为统计单位。
下面是一个示例输出:
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.0 168164 4496 ? Ss 16:38 0:06 /sbin/init
root 2 0.0 0.0 0 0 ? S 16:38 0:00 [kthreadd]
root 3 0.0 0.0 0 0 ? I< 16:38 0:00 [rcu_gp]
从输出中可以看到,进程的内存使用率在%MEM列中显示,VSZ列显示进程的虚拟内存大小,RSS列显示进程占用的物理内存大小。
4. 使用sar命令统计系统内存的历史使用情况
sar命令可以统计系统的各项性能指标,包括内存的使用情况。
sar -r
其中,-r选项用于统计内存的使用情况。
下面是一个示例输出:
Linux 5.4.0-42-generic (hostname)
2021年09月01日
_x86_64_
(1 CPU)
16时35分52秒 kbmemfree kbmemused %memused kbbuffers kbcached kbcommit %commit kbactive kbinact kbdirty
16时35分57秒 145752 5995976 97.59 87740 2808532 6285732 94.73 1824076 3835864 12
Average: 145752 5995976 97.59 87740 2808532 6285732 94.73 1824076 3835864 12
从输出中可以看到,kbmemfree列显示空闲内存大小,kbmemused列显示已使用内存大小,%memused列显示已使用内存的百分比。
5. 使用vmstat命令监控系统内存情况
vmstat命令可以实时显示系统的虚拟内存使用情况。
vmstat 1
其中,1表示每隔1秒钟刷新一次显示。
下面是一个示例输出:
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
r b swpd free buff cache si so bi bo in cs us sy id wa st
0 0 0 152476 87496 2864660 0 0 8 23 74 47 0 0 100 0 0
0 0 0 152476 87496 2864660 0 0 0 0 125 127 0 0 100 0 0
0 0 0 152476 87496 2864660 0 0 0 0 129 136 0 0 100 0 0
从输出中可以看到,free列显示空闲内存大小,buff列显示缓冲区的使用情况,cache列显示缓存的使用情况。
总结
通过上述几种方法,我们可以实时监控和统计Linux系统的内存使用情况。使用free命令可以查看系统的总内存、已使用内存和空闲内存;使用top命令可以实时监控系统的内存使用情况;使用ps命令可以查看进程的内存使用情况;使用sar命令可以统计系统内存的历史使用情况;使用vmstat命令可以实时显示系统的虚拟内存使用情况。
通过这些方法,我们可以及时了解系统的内存使用情况,从而调整系统的配置或者优化进程的使用,以提高系统的性能和稳定性。