5个命令检查Linux中内存使用情况
- 发表于
- Linux
Linux操作系统包含大量工具,所有这些工具都可以帮助您管理系统。从简单的文件和目录工具到非常复杂的安全命令,在Linux上你做不了多少。而且,虽然常规桌面用户可能不需要在命令行熟悉这些工具,但它们对于Linux管理员来说是必需的。为什么?首先,您必须在某些时候使用无GUI的Linux服务器。其次,命令行工具通常比GUI替代工具提供更多的功能和灵活性。
确定内存使用量是一项技能,如果特定应用程序变为流氓和占用系统内存,您可能需要这种技能。当发生这种情况时,知道您有多种工具可以帮助您进行故障排除,这很方便。或者,您是否需要收集有关Linux交换分区的信息或有关已安装RAM的详细信息?也有命令。让我们深入了解各种Linux命令行工具,以帮助您检查系统内存使用情况。这些工具并不是非常难以使用,在本文中,我将向您展示解决问题的五种不同方法。
我将在Ubuntu Server 18.04平台上进行演示。但是,您应该在您选择的发行版中找到所有这些命令。更好的是,您不需要安装任何东西(因为大多数这些工具都包含在内)。
top
我想从最明显的工具开始。top命令提供正在运行的系统的动态实时视图。该系统摘要中包括基于每个进程检查内存使用情况的功能。这非常重要,因为您可以轻松地对同一命令的多次迭代消耗不同的内存量。虽然你不会在无头服务器上找到它,但是你已经打开Chrome并发现你的系统速度变慢了。发出top命令以查看Chrome有多个进程在运行。
Chrome并不是唯一展示多个流程的应用。你看到图1中的Firefox条目?这是Firefox的主要流程,而Web Content流程是打开的选项卡。在输出的顶部,您将看到系统统计信息。在我的机器上,我总共有16GB的RAM,其中只有超过10GB的RAM正在使用中。然后,您可以梳理列表,查看每个进程使用的内存百分比。
最重要的事情之一就是发现可能已失控的进程ID(PID)服务数量。使用这些PID,您可以设置对故障任务进行故障排除(或终止)。
如果你想让内存更友好,请发出命令
1 |
top -o%MEM |
这将导致top按所用内存对所有进程进行排序。
free
然而,有时顶部可能会有点满足您的需求。您可能只需要查看系统上的可用和已用内存量。为此,有自由命令。free命令显示:
- 可用和已用物理内存总量
- 系统中交换内存的总量
- 内核使用的缓冲区和缓存
在终端窗口中,免费发出命令。此命令的输出不是实时的。相反,你将获得的是当时自由和已用内存的即时快照。
当然,您可以通过添加-m选项使其更加用户友好,如下所示:free -m。这将以MB为单位报告内存使用情况。
当然,如果您的系统甚至是远程现代的,那么您将需要使用-g选项(千兆字节),就像在free -g中一样。
如果您需要内存总计,可以像这样添加t选项:free -mt。这将简单地计算列中的内存量。
vmstat
另一个非常方便的工具是vmstat。这个特殊的命令是一个单一的小马,它报告虚拟内存统计信息。vmstat命令将报告以下状态:
- 流程记忆分页阻止IO陷阱磁盘中央处理器
- Processes
- Memory
- Paging
- Block IO
- Traps
- Disks
- CPU
发布vmstat的最佳方法是使用-s开关,如vmstat -s。这将在单个列中报告您的统计信息(这比默认报告更容易阅读)。vmstat命令将为您提供比您需要的更多信息,但更多信息总是更好(在这种情况下)。
ps
ps(即进程状态)命令用于提供有关当前正在运行的进程的信息,包括其进程标识号(PID)。系统为每个进程分配一个唯一的PID。
ps的基本语法是
1 |
ps [options] |
当没有任何选项使用ps时,它会发送到标准输出,默认情况下是显示监视器,系统上当前至少有两个进程的四项信息:shell和ps。shell是一个程序,它在类Unix操作系统中提供传统的纯文本用户界面,用于发出命令并与系统交互,默认情况下在Linux上是bash。ps本身是一个进程,一旦显示输出它就会死掉(即终止)。
使用ps获取有关系统当前进程的更完整信息的常用方便方法是使用以下方法:
1 |
ps -aux | less |
ps显示的进程可以限制为属于任何给定用户的进程,方法是通过grep(一种用于搜索文本的过滤器)输出输出。例如,属于具有用户名adam的用户的进程可以使用以下内容显示:
1 |
ps -ef | grep adam |
Linux 下 取进程占用 cpu 最高的前10个进程
1 |
ps aux|head -1;ps aux|grep -v PID|sort -rn -k +3|head |
linux 下 取进程占用内存(MEM)最高的前10个进程
1 |
ps aux|head -1;ps aux|grep -v PID|sort -rn -k +4|head |
其中rsz是是实际内存
1 |
$ ps -e -o 'pid,comm,args,pcpu,rsz,vsz,stime,user,uid' |
1 |
$ ps -e -o 'pid,comm,args,pcpu,rsz,vsz,stime,user,uid' | grep oracle | sort -nrk5 |
其中rsz为实际内存,上例实现按内存排序,由大到小
关于更多ps语法结构及说明您可看参考连接。
df
df(即,磁盘空间)命令报告当前安装(即,逻辑连接到系统)文件系统上使用和可用的空间量。默认情况下显示所有文件系统的信息。
df的基本语法是:
1 |
df [option(s)] [device(s)] |
实际使用如:
1 |
df -h |
查看硬盘占用率
参考
原文连接
的情况下转载,若非则不得使用我方内容。