如何使用linux top查看内存使用情况 (linux top 看内存使用)
如何使用Linux top查看内存使用情况
在Linux操作系统中,内存是非常重要的资源。因为在运行应用程序时,操作系统需要将程序和数据加载到内存中。如果内存不足,操作系统可能会对磁盘进行交换,从而导致系统变慢。因此,监视内存使用情况是维护系统稳定和高效的关键之一。本篇文章将介绍如何使用Linux自带的top命令来查看内存使用情况。
一、 top命令简介
top命令是Linux系统中的一个强大的监视进程的工具,它可以实时查看系统进程的运行情况,包括CPU使用情况、内存使用情况、进程数等等。
二、 top命令查看内存使用情况
启动top命令最简单的方法是在终端窗口中输入top命令:
$ top
该命令在屏幕上显示一个实时的进程表,其中之一行显示系统的一些基本信息,如系统时间、运行时间、当前登录用户数等。其中,最重要的信息之一是内存使用情况。下面是一个top命令的示例输出:
top – 12:34:56 up 5 days, 5:34, 3 users, load average: 1.66, 1.56, 1.80
Tasks: 274 total, 2 running, 270 sleeping, 0 stopped, 2 zombie
%Cpu(s): 13.2 us, 7.1 sy, 0.0 ni, 78.9 id, 0.3 wa, 0.0 hi, 0.4 si, 0.0 st
KiB Mem : 8127168 total, 2460640 free, 3405368 used, 2262160 buff/cache
KiB Swap: 5845500 total, 3002960 free, 2842540 used. 3512708 avl Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
3392 www-data 20 0 94640 51044 232 S 8.3 0.6 91:32.93 apache2
28951 mysql 20 0 4658820 1.6g 3676 S 7.7 21.2 607:56.50 mysqld
3438 www-data 20 0 94396 50752 232 S 3.3 0.6 29:06.45 apache2
1846 root 20 0 371724 26296 2940 S 2.7 0.3 85:18.44 snapd
300 root 20 0 43484 4308 2848 S 1.7 0.1 82:09.47 systemd-journal
在上面的示例中,第四行和第五行显示了内存的相关信息。其中,KiB Mem是物理内存的总量和使用情况,KiB Swap是交换空间的总量和使用情况。在这个示例中,总共有8GB的物理内存,其中244MB是空闲的,而3.4GB已经被使用。交换空间的总量是5.8GB,其中3.0GB是空闲的,而2.8GB已经被使用。
之一行中的3个数字(1.66、1.56、1.80)是系统负载平均值。这表示在最近1分钟、5分钟和15分钟内有多少个进程正在运行或等待运行。负载平均值越高,表示系统越繁忙。当负载平均值超过系统的处理能力时,可能会出现性能问题。
继续看输出,top命令的主要部分是进程列表,按CPU占用率和内存占用率排序。在这个示例中,进程列表按内存占用率排序,更大的进程是mysqld进程,它占用1.6GB的物理内存和21.2%的总内存。第三列(%MEM)列显示进程占用的内存百分比,第六列(COMMAND)列显示进程的命令名称。
三、 top命令修改排序方式
默认情况下,top命令是按进程的CPU使用率来排序的。如果想要按照内存使用率排序,可以按下M键:
top – 12:34:56 up 5 days, 5:34, 3 users, load average: 1.66, 1.56, 1.80
Tasks: 274 total, 2 running, 270 sleeping, 0 stopped, 2 zombie
%Cpu(s): 13.2 us, 7.1 sy, 0.0 ni, 78.9 id, 0.3 wa, 0.0 hi, 0.4 si, 0.0 st
KiB Mem : 8127168 total, 2460640 free, 3405368 used, 2262160 buff/cache
KiB Swap: 5845500 total, 3002960 free, 2842540 used. 3512708 avl Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
28951 mysql 20 0 4658820 1.6g 3676 S 7.7 21.2 607:56.50 mysqld
23646 root 20 0 1202392 900148 51024 S 0.3 11.1 1:10.67 java
3438 www-data 20 0 94396 50752 232 S 2.7 0.6 29:02.17 apache2
3392 www-data 20 0 94640 51044 232 S 6.0 0.6 91:35.24 apache2
300 root 20 0 43484 4308 2848 S 1.7 0.1 82:09.47 systemd-journal
从上面可以看到,按下M键之后,top命令就按照进程的内存使用率来排序了。
四、 统计整个系统的内存使用情况
使用top命令查看内存使用情况的另外一个方法是,通过在top命令中按下’1’键来查看整个系统的内存使用情况:
top – 12:34:56 up 5 days, 5:34, 3 users, load average: 1.66, 1.56, 1.80
Tasks: 274 total, 2 running, 270 sleeping, 0 stopped, 2 zombie
%Cpu(s): 13.2 us, 7.1 sy, 0.0 ni, 78.9 id, 0.3 wa, 0.0 hi, 0.4 si, 0.0 st
KiB Mem : 8127168 total, 2460640 free, 3405368 used, 2262160 buff/cache
KiB Swap: 5845500 total, 3002960 free, 2842540 used. 3512708 avl Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
1 root 20 0 169204 8808 6304 S 0.0 0.1 0:06.43 systemd
2 root 20 0 0 0 0 S 0.0 0.0 0:00.09 kthreadd
3 root 20 0 0 0 0 S 0.0 0.0 0:02.94 ksoftirqd/0
5 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 kworker/0:0H
7 root rt 0 0 0 0 S 0.0 0.0 0:00.01 migration/0
…
在这个模式下,第二行显示了系统总的物理内存、空闲内存和已经使用的内存。KiB Buff/Cache是操作系统用来缓存文件系统I/O的内存使用情况。该值通常很高,因为Linux使用内存来提高文件系统的性能。最后一行显示了系统中的进程数量。
五、 top命令的其他用途
top命令还可以用来查看其他方面的系统信息,比如CPU使用情况、进程的I/O情况、进程的状态、进程的用户信息等等。在top命令中,可以使用不同的选项来定制输出,并通过管道传递给其他工具进行进一步分析。
本文主要介绍了如何使用Linux自带的top命令来查看内存使用情况。希望这篇文章能够帮助您更好地理解如何使用top命令监视和管理Linux系统的内存使用情况。