当前位置:首页 > 行业动态 > 正文

linux如何查内存

在Linux中,可以使用 free -m命令查看内存使用情况。这将显示总 内存、已用内存、空闲内存等信息。

在Linux系统中,查看内存使用情况是一项常见的任务,了解内存的使用情况可以帮助我们更好地管理系统资源,优化系统性能,本文将介绍如何在Linux系统中查看内存使用情况。

linux如何查内存  第1张

查看内存总量

要查看Linux系统的内存总量,可以使用free命令。free命令可以显示系统中物理和交换内存的使用情况,在终端中输入以下命令:

free h

h选项表示以人类可读的格式显示结果,如以KB、MB或GB为单位,执行该命令后,将显示如下输出:

              total        used        free      shared  buff/cache   available
Mem:           7.7G        1.2G        3.5G        1.2G        3.0G        4.0G
Swap:          2.0G          0B        2.0G

从输出中可以看出,内存总量为7.7GB,已使用1.2GB,空闲3.5GB。

查看内存使用情况

要查看内存的使用情况,可以使用top命令。top命令可以实时显示系统中各个进程的资源占用情况,包括CPU、内存等,在终端中输入以下命令:

top

执行该命令后,将显示如下输出:

top 09:45:32 up  1:15,  1 user,  load average: 0.00, 0.01, 0.05
Tasks:  99 total,   1 running,  98 sleeping,   0 stopped,   0 zombie
%Cpu(s):  0.3 us,  0.0 sy,  0.0 ni,100.0 id,  0.0 wa,  0.0 hi,  0.7 si,  0.0 st
KiB Mem :  8192644 total,   167684 free,   328688 used,  6628192 buff/cache
KiB Swap:  2097148 total,   2097148 free,        0 used.   3435696 avail Mem 
  PID USER      PR  NI    VIRT    RES    SHR S %CPU %MEM     TIME+ COMMAND                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
 1234 root      20   0  123456   7896   7896 S    1.3   1.0   0:10.01 systemdjournald

从输出中可以看出,内存使用情况为:已使用的内存为328688KB,缓冲/缓存为6628192KB,可用内存为3435696KB,还可以看到各个进程的资源占用情况,如CPU使用率、内存使用率等。

查看内存使用情况的详细信息

要查看内存使用情况的详细信息,可以使用vmstat命令。vmstat命令可以显示虚拟内存统计信息,包括进程、内存、分页、块IO、陷阱和CPU活动等,在终端中输入以下命令:

vmstat s

执行该命令后,将显示如下输出:

procs memoryswapiosystemcpu
r b   swpd   free   buff  cache   si   so    bi    bo  in   cs us sy id wa st
1 0      0 328688    7896    6628192    0    0     0     0   15   1  1.3 1.0 10:15 1234 root systemdjournald

从输出中可以看出,内存使用情况为:已使用的内存为328688KB,缓冲/缓存为7896KB,交换区为6628192KB,还可以看到各个进程的资源占用情况,如进程数、阻塞数等。

查看特定进程的内存使用情况

要查看特定进程的内存使用情况,可以使用ps命令。ps命令可以显示当前运行的进程状态,在终端中输入以下命令:

ps eo pmem,pid,cmd sort=pmem | head n 5

eo选项表示自定义输出格式,pmem表示进程使用的物理内存百分比,pid表示进程ID,cmd表示进程命令。sort=pmem表示按照物理内存使用百分比降序排序,执行该命令后,将显示如下输出:

%CPU %MEM    VSZ RSS TTY      STAT START   TIME COMMAND
4、5 15.5 12345678 7896 root Ss   Sep15   0:10 /usr/bin/systemdjournald k u root o journald.log vacuumsize=50M rotatesize=1G ratelimit=50M maxfile=5 forwardtosyslog=yes nosync nocatalog journalformat=json compress=yes retentiontime=7d enforceseccomp=yes enforcenamespace=yes enforceroot=yes useprivateusers=yes systemdunit=systemdjournald.service user=root group=root runtimedirectory=run/systemd/journald runtimedirectory=runtime/journald slice=systemdjournald.service slice=user1000.slice nonewfiles nohostname v n Journalctl k l err o console.log xb e o json o syslog o journal+console+json o journal+console+plain o journal+json+console+plain o journal+json+console+syslog o journal+json+syslog o journal+plain+console+json o journal+plain+console+syslog o journal+plain+json+console+syslog o journal+plain+json+syslog o journal+plain+syslog o journal+syslog o plain +console +json +syslog +journal +all +debug c systemdjournald k l err o console.log xb e o json o syslog o journal+console+json o journal+console+plain o journal+json+console+plain o journal+json+console+syslog o journal+json+syslog o journal+plain+console+json o journal+plain+console+syslog o journal+plain+json+console+syslog o journal+plain+json+syslog o journal+plain+syslog o journal+syslog o plain +console +json +syslog +journal +all +debug vacuumsize=50M rotatesize=1G ratelimit=50M maxfile=5 forwardtosyslog=yes nosync nocatalog journalformat=json compress=yes retentiontime=7d enforceseccomp=yes enforcenamespace=yes enforceroot=yes useprivateusers=yes systemdunit=systemdjournald.service user=root group=root runtimedirectory=run/systemd/journald runtimedirectory=runtime/journald slice=systemdjournald.service slice=user1000.slice nonewfiles nohostname v n Journalctl k l err o console.log xb e o json o syslog o journal+console+json o journal+console+plain o journal+json+console+plain o journal+json+console+syslog o journal+json+syslog o journal+plain+console+json o journal+plain+console+syslog o journal+plain+json+console+syslog o journal+plain+json+syslog o journal+plain+syslog o journal+syslog o plain +console +json +syslog +journal +all +debug c systemdjournald k l err o console.log xb e o json o syslog o journal+console+
0