Linux操作系统包含大量工具,所有这些工具都可以帮助您管理系统。从简单的文件和目录工具到非常复杂的安全命令,在Linux上没有太多不能做的事情。而且,虽然普通桌面用户可能不需要在命令行熟悉这些工具,但他们对于Linux管理员来说是强制性的。为什么?首先,你需要在某个时候使用无GUI的Linux服务器。其次,命令行工具通常比其替代方案提供更多的功能和灵活性。

  确定内存使用率是一项技能,您可能需要一个特定的应用程序和系统内存。发生这种情况时,知道您有多种工具可以帮助您排除故障,这很方便。或者,也许您需要收集有关Linux交换分区的信息或有关您安装的RAM的详细信息?还有一些命令。让我们深入了解各种Linux命令行工具,以帮助您检查系统内存使用情况。这些工具并非难以使用,在本文中,我会向您展示五种解决问题的方法。

  我将在UbuntuServer18.04平台上进行演示。但是,您应该在您选择的发行版中找到所有这些命令。更好的是,你不需要安装一件东西(因为大多数这些工具都包含在内)。

  我想用最明显的工具开始。命令提供了一个正在运行的系统的一个动态的,实时的图。包含在该系统摘要中的是能够按照每个进程检查内存使用情况。这非常重要,因为您可以轻松地对同一命令进行多次迭代,消耗不同数量的内存。虽然你不会在服务器上找到它,但是说你已经打开了Chrome并注意到你的系统变慢了。发出顶级命令以查看Chrome有多个进程正在运行(每个选项卡一个-图1)。

  图1:出现在顶部命令中的Chrome的多个实例。

Chrome并不是唯一显示多个进程的应用程序。你看到图1中的Firefox条目?这是Firefox的主要流程,而WebContent流程是开放的标签。在输出的顶部,您会看到系统统计信息。在我的机器上,我总共有16GB可用RAM,其中刚刚超过10GB。然后,您可以梳理整个列表并查看每个进程正在使用的内存百分比。

  其中一件事顶部是被发现,可能已经失去控制服务的进程ID(PID)号码非常好。使用这些PID,您可以设置故障排除(或杀死)违规任务。

  如果你想让top变得更友善一些,请发出命令top-o%MEM,这会导致top按所用内存对所有进程进行排序(图2)。

  图2:顶部使用的内存排序过程。

  该顶部命令也给你多少你的交换空间正在使用的实时更新。

  然而,有时候,顶端可能会满足您的需求。您可能只需查看系统上可用和已用内存的数量。为此,有免费的命令。自由命令显示:

  可用和已用物理内存总量

  系统中交换内存的总量

  内核使用的缓冲区和缓存

  在终端窗口中,免费发布命令。该命令的输出不是实时的。相反,您将获得的是当时免费和已用内存的即时快照(图3)。

  图3:free命令的输出简单明了。

  当然,您可以通过添加-m选项来免费更方便用户,如下所示:free-m。这将以MB为单位报告内存使用情况(图4)。

  图4:以更易读的形式输出free命令。

  当然,如果你的系统甚至是远程现代的,你可能想要使用-g选项(千兆字节),就像free-g一样。

  如果你需要内存总数,你可以像这样添加t选项:free-mt。这将简单地总计列中的内存量(图5)。

  图5:为您提供免费的总内存列。

  另一个非常方便的工具是vmstat。这个特殊的命令是报告虚拟内存统计信息的一招小马。该vmstat的命令将在报告统计:

  流程

  记忆

  分页

  块IO

  陷阱

  磁盘

  中央处理器

  发出vmstat的最好方法是使用-s开关,如vmstat-s。这将在单个列中报告您的统计信息(比默认报告更容易阅读)。该的vmstat命令会给你更多的信息比你需要(图6),但更多的是总是更好(在这种情况下)。

  图6:使用vmstat命令检查内存使用情况。

  如果你想了解有关已安装的系统RAM的详细信息,该怎么办?为此,您可以使用dmidecode命令。这个特定的工具是DMI表格解码器,它将系统的DMI表格内容转储为可读格式。如果您不确定DMI表的内容,则可以用它来描述系统的构成(以及系统可能的演变)。

  要运行dmidecode命令,您确实需要sudo权限。所以发出命令sudodmidecode-t17。命令的输出(图7)可能很长,因为它显示所有内存类型设备的信息。因此,如果您无法滚动,可能需要将该命令的输出发送到文件中,如下所示:sudodmidecode-t17>dmi_infoI,或者将其输入less命令,如sudodmidecode。

  图7:dmidecode命令的输出。

  你可能会问自己:“这些命令从哪里得到这些信息?”。在某些情况下,他们从/proc/meminfo文件中获取它。你猜怎么了?您可以使用less/proc/meminfo命令直接读取该文件。通过使用less命令,您可以通过冗长的输出上下滚动以准确找到您需要的内容(图8)。

  图8:less/proc/meminfo命令的输出。

  有一件事你应该知道/proc/meminfo:这不是一个真正的文件。相反/pro/meminfo是一个虚拟文件,其中包含有关系统的实时动态信息。特别是,您需要检查以下值:

MemTotal

MemFree

MemAvailable

  缓冲区

  缓存

SwapCached

SwapTotal

SwapFree

  如果你想使用/proc/meminfo,你可以像egrep命令一样使用它:egrep--color'Mem|Cache|Swap'/proc/meminfo。这将产生一个易于阅读的包含Mem,Cache和Swap...的所有条目的列表(图9)。

​  图9:使/proc/meminfo更易于阅读。

  保持学习,你应该做的第一件事情之一是阅读每个命令的手册页。(黑客周刊)​

Linux中检查内存使用情况的命令的更多相关文章

  1. Linux中查看系统资源占用情况的命令【转载】

      用 'top -i' 看看有多少进程处于 Running 状态,可能系统存在内存或 I/O 瓶颈,用 free 看看系统内存使用情况,swap 是否被占用很多,用 iostat 看看 I/O 负载 ...

  2. Linux中查看系统资源占用情况的命令

    用 'top -i' 看看有多少进程处于 Running 状态,可能系统存在内存或 I/O 瓶颈,用 free 看看系统内存使用情况,swap 是否被占用很多,用 iostat 看看 I/O 负载情况 ...

  3. Linux就这个范儿 第15章 七种武器 linux 同步IO: sync、fsync与fdatasync Linux中的内存大页面huge page/large page David Cutler Linux读写内存数据的三种方式

    Linux就这个范儿 第15章 七种武器  linux 同步IO: sync.fsync与fdatasync   Linux中的内存大页面huge page/large page  David Cut ...

  4. [转帖]linux中systemctl详细理解及常用命令

    linux中systemctl详细理解及常用命令 2019年06月28日 16:16:52 思维的深度 阅读数 30 https://blog.csdn.net/skh2015java/article ...

  5. linux中systemctl详细理解及常用命令

    linux中systemctl详细理解及常用命令 https://blog.csdn.net/skh2015java/article/details/94012643 一.systemctl理解 Li ...

  6. 全面了解 Linux 服务器 - 2. 查看 Linux 服务器的内存使用情况

    2. 查看 Linux 服务器的内存使用情况 liuqian@ubuntu:~$ free -m total used free shared buffers cached Mem: 1983 186 ...

  7. linux中tomcat内存溢出解决办法

    用命令 tail -f /root/apache-tomcat-6.0.20/logs/catalina.out(需要找到tomcat路径) 查看日志,查看是否有错误 linux中tomcat内存溢出 ...

  8. linux中tomcat内存溢出

    刚开始测试服务器与线上后台都不能上传10分钟以上的视频,后来只要是视频就不能上传,进入服务器查日志得到如下错误: Caused by: java.lang.OutOfMemoryError: Java ...

  9. 用于监视Linux上的内存使用情况的Bash脚本

    用于监视Linux上的内存使用情况的Bash脚本 2019-06-17 11:32:45作者:戴进稿源:云网牛站 在本文中,我们添加了两个shell脚本来监视Linux操作系统上的内存利用率,即用于监 ...

随机推荐

  1. KMP字符串匹配模板

    题目描述 如题,给出两个字符串s1和s2,其中s2为s1的子串,求出s2在s1中所有出现的位置. 为了减少骗分的情况,接下来还要输出子串的前缀数组next. (如果你不知道这是什么意思也不要问,去百度 ...

  2. Win10真正好用之处

    第一步.  关闭无用服务 刚装好Win10的时候,整部电脑响应很慢,有时什么都不做,硬盘灯也能狂闪半天.很明显,这是微软爸爸默认开启的服务未被及时关闭所致. 网上有很多文章指导新手如何关闭系统服务,但 ...

  3. 理解json和jsonp的定义和区别以及如何实际使用

    (一)什么是跨域请求? 首先要理解什么是跨域? 跨域是指一个域下的文档或脚本试图去请求另一个域下的资源,这里跨域是广义的. 其实我们通常所说的跨域是狭义的,是由浏览器同源策略限制的一类请求场景. 常见 ...

  4. selenium中的多窗口切换

    在selenium中,我们会遇到一些问题,就是多窗口处理的问题,我们爬取的内容在一个新窗口上,这个时候,我们就需要先切换到这个新的窗口上,然后进行抓取内容. 如何切换呢? 首先,获取当前窗口句柄 1. ...

  5. php面试专题---MYSQL查询语句优化

    php面试专题---MYSQL查询语句优化 一.总结 一句话总结: mysql的性能优化包罗甚广: 索引优化,查询优化,查询缓存,服务器设置优化,操作系统和硬件优化,应用层面优化(web服务器,缓存) ...

  6. read_ila

    close all; clc; %clear; %点数 %point=40960; fft_point=200; show_point=200; end_point=1024; FS=30.72;%% ...

  7. python内置装饰器

    前言 接着上一篇笔记,我们来看看内置装饰器property.staticmethod.classmethod 一.property装饰器 1. 普通方式修改属性值 code class Celsius ...

  8. win10 文件管理器频繁卡死

    参考: https://www.xitmi.com/1589.html

  9. vue- 指令v-if 与指令v-show的区别

    区别1: v-if :可以根据表达式的值在DOM中生成或移除一个元素. v-show:可以根据表达式的值来显示或者隐藏HTML元素.当v-show赋值为false时,元素被隐藏,此时查看代码时,该元素 ...

  10. UI自动化处理文件上传

    UI自动化处理文件上传 import win32guiimport win32con def set_uploader(self, file_path): sleep(2) self.file_pat ...