如何查看 Linux 系统的内存大小? (linux 内存大小查看)

在 Linux 操作系统中,内存是非常重要的资源之一。了解系统中的内存大小、使用情况等信息,能够帮助管理员更好地管理系统,优化系统性能,提高系统的稳定性和安全性。本文将介绍如何查看 Linux 系统的内存大小。

1. 使用 free 命令

free 命令是一个能够显示系统内存使用情况的实用程序,它可以显示系统及各个进程所占用的内存大小。在终端中输入以下命令即可查看系统内存使用情况:

“`

free -m

“`

这条命令将以 MB 为单位显示系统内存大小,例如:

“`

total used free shared buffers cached

Mem: 7879 7446 433 0 371 4441

-/+ buffers/cache: 2633 5245

Swap: 4095 0 4095

“`

可以看到,系统总共有 7879MB 的内存,其中已经被占用的有 7446MB,剩余的有 433MB。而缓存和缓冲区占用的内存分别是 4441MB 和 371MB。注意,这两个值并不是实际占用的内存,而是被系统预留给文件系统和 I/O 操作的缓存的内存。如果需要查看实际被占用的内存大小,则需要查看 “-/+ buffers/cache” 行。

2. 使用 top 命令

top 命令是一个实时性能监控工具,可以显示系统中运行的进程和资源占用情况,其中包括内存大小。在终端中输入 top 命令,然后按下键盘上的“Shift+m”键,即可按照内存占用大小排序:

“`

top – 10:30:39 up 5 days, 22:12, 2 users, load average: 0.00, 0.00, 0.00

Tasks: 126 total, 1 running, 125 sleeping, 0 stopped, 0 zombie

%Cpu(s): 0.0 us, 0.2 sy, 0.0 ni, 99.8 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st

KiB Mem : 8062532 total, 443356 free, 6572616 used, 1043560 buff/cache

KiB Swap: 4194300 total, 4194300 free, 0 used. 1186404 avl Mem

PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND

901 mysql 20 0 1238056 44364 0 S 0.0 0.5 84:14.78 mysqld

672 root 20 0 166260 30668 24616 S 0.0 0.4 0:57.47 systemd-journal

848 elasticsearch 20 0 19.45g 22244 1312 S 0.0 0.3 927:42.68 java

2893 zabbix 20 0 4029820 20232 1756 S 0.0 0.3 11:13.28 zabbix_server

685 root 20 0 475964 17732 9780 S 0.0 0.2 0:10.13 systemd-network

858 root 20 0 1684604 16324 5604 S 0.0 0.2 0:50.69 dockerd

844 root 20 0 3565324 12568 4660 S 0.0 0.2 0:06.19 contnerd

686 root 20 0 107028 12252 8980 S 0.0 0.2 0:00.23 systemd-resolve

703 root 20 0 109420 12023 9328 S 0.0 0.1 0:01.02 systemd-timesyn

722 root 20 0 110332 11728 8532 S 0.0 0.1 0:00.02 systemd-udevd

842 root 20 0 214276 10548 4164 S 0.0 0.1 0:00.47 docker-contnerd

650 root 20 0 14192 9828 7924 S 0.0 0.1 0:00.17 polkitd

587 root 20 0 25952 7788 3996 S 0.0 0.1 0:00.93 systemd-logind

658 root 20 0 82023 7296 5316 S 0.0 0.1 0:00.02 NetworkManager

857 root 20 0 238848 6780 1868 S 0.0 0.1 0:03.70 docker

1861 root 20 0 334832 6208 3532 S 0.0 0.1 8:54.46 contnerd-shim

258 root 19 -1 119560 5996 5520 S 0.0 0.1 0:00.00 systemd-oomd

“`

可以看到, top 命令也可以显示系统内存的大小和使用情况,其中 KiB Mem 行显示了系统总内存大小,以及已用、可用和缓存的内存大小。同时也能够看到各个进程的内存占用情况。

3. 使用 cat 命令查看 /proc/meminfo 文件

Linux 系统内核会将系统内存的相关信息存储在 /proc/meminfo 文件中,通过查看该文件的内容,可以了解系统内存的大小、使用情况、交换区的大小等信息。在终端中输入以下命令即可查看系统内存信息:

“`

cat /proc/meminfo

“`

可以看到,该文件中包含了大量的内存信息,其中 MemTotal 行显示了系统总共的内存大小,以 kB 为单位:

“`

MemTotal: 8062532 kB

MemFree: 181172 kB

MemAvlable: 6636592 kB

Buffers: 118580 kB

Cached: 4202376 kB

SwapCached: 0 kB

Active: 4218468 kB

Inactive: 3041692 kB

Active(anon): 3916600 kB

Inactive(anon): 1013612 kB

Active(file): 301868 kB

Inactive(file): 2023076 kB

Unevictable: 22023 kB

Mlocked: 22023 kB

SwapTotal: 4194300 kB

SwapFree: 4194300 kB

Dirty: 496 kB

Writeback: 0 kB

AnonPages: 4928804 kB

Mapped: 977324 kB

Shmem: 10756 kB

Slab: 299140 kB

SReclmable: 233860 kB

SUnreclm: 65280 kB

KernelStack: 10064 kB

PageTables: 44336 kB

NFS_Unstable: 0 kB

Bounce: 0 kB

WritebackTmp: 0 kB

CommitLimit: 8220234 kB

Committed_AS: 12693368 kB

VmallocTotal: 34359738367 kB

VmallocUsed: 126216 kB

VmallocChunk: 0 kB

Percpu: 12023 kB

HardwareCorrupted: 0 kB

AnonHugePages: 802304 kB

CmaTotal: 0 kB

CmaFree: 0 kB

HugePages_Total: 0

HugePages_Free: 0

HugePages_Rsvd: 0

HugePages_Surp: 0

Hugepagesize: 2023 kB

DirectMap4k: 97280 kB

DirectMap2M: 5134336 kB

DirectMap1G: 3145728 kB

“`

以上是如何查看 Linux 系统的内存大小的三种方法,通过这三种方法可以很方便地了解系统内存的情况,有助于优化系统的性能和提高系统的稳定性。

相关问题拓展阅读:

linux 下怎么查看一个进程占用内存大小

你好,方法如下:

可以直接使用top命令后,查看%MEM的内搜早容。可以选择按进程查看或者按用户查看,如想查看oracle用户的进程内存使用情况的话可以使用如下的命令:

 (1)top

  top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器

  可以直接使用top命令后,查看%MEM的内容。可以选择按进程查看或者按用户查看,如想查看oracle用户的进程内存使用情况的话可以使用如下的命令:

  $ top -u oracle

内容樱返解释:

  PID:进程的ID

  USER:进程所有者

  PR:进程的优先级别,越小越优先被执行

  NInice:值

  VIRT:进程占用的虚拟内存

  RES:进程占用的物理内存

  SHR:进程使用的共享内存

  世颂雀S:进程的状态。S表示休眠,R表示正在运行,Z表示僵死状态,N表示该进程优先值为负数

  %CPU:进程占用CPU的使用率

  %MEM:进程使用的物理内存和总内存的百分比

  TIME+:该进程启动后占用的总的CPU时间,即占用CPU使用时间的累加值。

  COMMAND:进程启动命令名称

  常用的命令:

  P:按%CPU使用率排行

  T:按MITE+排行

  M:按%MEM排行

(2)pmap

  可以根据进程查看进程相关信息占用的内存情况,(进程号可以通过ps查看)如下所示:

  $ pmap -d 14596

 (3)ps

  如下例所示:

  $ ps -e -o ‘pid,comm,args,pcpu,rsz,vsz,stime,user,uid’ 其中rsz是是实际内存

  $ ps -e -o ‘pid,comm,args,pcpu,rsz,vsz,stime,user,uid’ | grep oracle | sort -nrk5

  其中rsz为实际内存,上例实现按内存排序,由大到小

这里介绍下查看一个进程占用内存大小的方法。

1、首先单击桌面左上角亮碧的

应用程序

,选择系统工具选项,如槐键岩下图所示。

2、接着在下拉菜单中,单击系统终端选项,如下图所示。

3、这时会来到系统终端

命令行

,如下铅御图所示。

4、最后输入free -h命令,在结果中找到total即可查看到系统总的内存情况,如下图所示就完成了。

Linux系统下面有关内存的专用名词圆森和专业术语概念:

物理内存和虚拟内存

物理内存:就是系统硬件提供的内存大小,是真正的内存,一般叫做内存条。也叫随机存取存储器(random access memory,RAM)又称作“随机存储器”,是与CPU直接交换数据的内部存储器,也叫主存(内存)。

虚拟内存:相对于物理内存,在Linux下还有一个虚拟内存的概念,虚拟内存就是为了满足物理内存的不足而提出的策略,它是利用磁盘空间虚拟出的一块逻辑内存,用作虚拟内存的磁盘空间被称为交换空间(Swap Space)。Linux会在物理内存不足时,使用虚拟内存,内核会把暂时不用的内存块信息写到虚拟内存,这样物理内存就得到了释放,这块儿内存就可以用于其他目的,而需要用到这些内容的时候,这些信息就会被重新从虚拟内存读入物理内存。

Linux的buffers与cached

在Linux中经常发现空闲的内存很少,似乎所有的内存都被消耗殆尽了,表面上看是内存不够用了,很多新手看到内存被“消耗殆尽”纳腔衡非常紧张,其实这个是因为Linux系统将空闲的内存用来做磁盘文件数据的缓存。这个导致你的系统看起来处于内存非常紧急的状况。但是实际上不是这样。这个区别于Windows的内存管理。Linux会利用空闲的内存来做cached & buffers。

buffers是指用来给块设备做的缓冲大小(块设备的读写缓冲区),它只记录文件系统的metadata以及 tracking in-flight pages.

Buffers are associated with a specific block device, and cover caching of filesystem metadata as well as tracking in-flight pages. The cache only contains parked file data. That is, the buffers remember what’s in directories, what file permissions are, and keep track of what memory is being written from or read to for a particular block device. The cache only contains the contents of the files themselves.

cached是作为page cache的内存, 文件系统的cache。你读写文件的时洞做候,Linux内核为了提高读写性能与速度,会将文件在内存中进行缓存,这部分内存就是Cache Memory(缓存内存)。即使你的程序运行结束后,Cache Memory也不会自动释放。这就会导致你在Linux系统中程序频繁读写文件后,你会发现可用物理内存会很少。其实这缓存内存(Cache Memory)在你需要使用内存的时候会自动释放,所以你不必担心没有内存可用

1、top

top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器

可以直接使用top命令后,查看%MEM的内容。可以选择按进程查看或者按用户查看,如想查看oracle用户的进程内存使用情况的话可以使用如下的命令:

$ top -u oracle

内容解释:

PID:进程的ID

USER:进程所有者

PR:进程的优先级别,越嫌瞎小越优先被执行

NInice:值

VIRT:进程占用的虚拟内存

RES:进程占用的物理内存

SHR:进程使用的共享内存

S:进程的状态。S表示休眠,R表示正在运行,Z表示僵死状态,N表示该进程优先值为负数

%CPU:进程占用CPU的使用率

%MEM:进程使用的物理内存和总内存的百分比

TIME+:该进程启动后占用的总的CPU时间,即占用CPU使用时间的累加值。

COMMAND:进程启动命令名称

常用的命令:

P:按%CPU使用率排行

T:按MITE+排行

M:按%MEM排行

2、pmap

可以根据进程查看进程相关信息占用的内存情况,(进程号可以通过ps查看)如下所示:

$ pmap -d 14596

3、ps

如下例所示:

$ ps -e -o ‘pid,comm,args,pcpu,rsz,vsz,stime,user,uid’ 其中rsz是是实际闷州内芹罩空存

$ ps -e -o ‘pid,comm,args,pcpu,rsz,vsz,stime,user,uid’ | grep oracle | sort -nrk5

其中rsz为实际内存,上例实现按内存排序,由大到小

top vmstat prstat看哪个更符合你的要求

关于linux 内存大小查看的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。


数据运维技术 » 如何查看 Linux 系统的内存大小? (linux 内存大小查看)