Linux 下如何检查内存使用率

在排查系统问题,或者应用变慢,或者不明原因问题时,第一件事就是要检查系统的内存使用率。

本文讲解如何在 Linux 中使用不同的几个命令来检查 RAM 内存使用率。

一、free 命令

free命令是检查一个 Linux 系统中内存使用率最常用的命令。它显示关于内存总量,已经使用的内存以及空闲内存的相关信息。

通常, free 运行时加上-h选项,意味着以人类可读的格式打印输出:

free -h
       total    used    free   shared buff/cache  available
Mem:      3936    1087     252     130    2596    2427
Swap:       0      0      0

这里是每一列的意义:

  • total - 应用可以使用的内存总数
  • used - 已经被使用的内存。 它是这样计算的: used = total - free - buffers - cache
  • free - 空闲的/未被使用的内存。
  • shared - 这一列可以被忽略。 它仅仅用于向后兼容。
  • buff/cache - 内核缓存,页面缓存和slab
  • avaiable - 可用来启动新应用的估计可用内存,不包括交换内存。

这个free命令打印关于物理内存和交换内存的信息。

二、top 命令

top是一个命令工具,它展示正在运行的进程的实时信息。它同时显示系统概要,包括内存使用率。

想要运行命令,简单输入top:

top

输出将会看起来像下面这样:

输出头部包括以下信息:系统中内存,空闲内存,被使用内存,以及交换内存。

这个%MEM一列,提供信息包括每一个运行进程中被使用的共享内存占可用物理内存的比例。

三、 /proc/meminfo

最简单的检查 RAM 内存的方式就是去显示/proc/meminfo虚拟文件。这个文件被free,top,ps以及其他系统信息命令所使用。

使用less或者cat来查看/proc/meminfo文件的内容。

cat /proc/meminfo

文件包含了一系列信息,关于系统内存和交换内存使用率:

MemTotal: 4030592 kB
MemFree: 401804 kB
MemAvailable: 2507504 kB
...

这个来自/proc/meminfo文件的信息可以被解析,并且在 shell 脚本中使用。

四、 ps_mem 脚本

ps_mem 是一个 Python 脚本,他可以报告每个程序的 RAM 使用率。它在 Python 2 和 3 中都可以使用,并且可以使用pip进行安装。

sudo pip3 install ps_mem

运行ps_mem需要管理员权限:

sudo ps_mem

输出将会以升序显示包括每一个运行程序的内存使用率:

 Private +  Shared = RAM used	Program
...
 11.9 MiB + 20.2 MiB = 32.1 MiB	nginx (4)
 8.2 MiB + 42.4 MiB = 50.6 MiB	systemd-journald
 55.8 MiB + 307.2 MiB = 363.0 MiB	php-fpm7.4 (6)
233.9 MiB + 234.0 MiB = 467.9 MiB	redis-server
578.2 MiB + 578.6 MiB =  1.1 GiB	mysqld
---------------------------------
             2.2 GiB
=================================

五、总结

我们已经向你展示一些命令,你可以使用它们来检查系统内存使用率。

原文 :https://linuxize.com/post/check-memory-linux/

以上就是Linux 下如何检查内存使用率的详细内容,更多关于Linux 检查内存使用率的资料请关注我们其它相关文章!

(0)

相关推荐

  • Linux内核私闯进程地址空间并修改进程内存的方法

    进程地址空间的隔离 是现代操作系统的一个显著特征.这也是区别于 "古代"操作系统 的显著特征. 进程地址空间隔离意味着进程P1无法以随意的方式访问进程P2的内存,除非这块内存被声明是共享的. 这非常容易理解,我举个例子. 我们知道,在原始野人社会,是没有家庭的观念的,所有的资源都是部落内共享的,所有的野人都可以以任意的方式在任意时间和任何其他野人交互.类似Dos这样的操作系统就是这样的,内存地址空间并没有隔离.进程可以随意访问其它进程的内存. 后来有了家庭的观念,家庭的资源被隔离,人们

  • jmeter在linux系统下运行及本地内存调优的方法详解

    1.在linux系统下安装跨系统传输文件工具 root用户下 根目录输入 yum -y install lrzsz 2.把apache-jmeter-4.0zip包 用rz命令上传到linux系统的根目录下 解压 3.配置jmeter环境变量 vim /etc/profile 添加 export PATH=/apache-jmeter-4.0/bin/:$PATH 注意路径 4.使用 rz命令上传jdk1.8 linux 64位版本 解压到 usr/local 目录下 下载jdk安装包 下载地址

  • Linux系统查看CPU、机器型号、内存等信息

    系统维护时随时可能有需要查看 CPU 使用率,并根据相应信息分析系统状况的需要.在 linux 中,可以通过 top 命令来查看 CPU 使用状况.关于 top 命令的详细说明请参看 使用top命令分析linux系统性能的详解 这篇文章. top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器:不过这里我们主要是介绍一下 linux 系统如何查看CPU信息.机器型号.内存信息等. 系统 # uname -a # 查看内核/操作系统/

  • Python3监控windows,linux系统的CPU、硬盘、内存使用率和各个端口的开启情况详细代码实例

    由于项目的需要,需要做一个简单监控服务器的CPU利用率.CPU负载.硬盘使用率.内存利用率和服务器的各个端口的开启情况的程序,并把结果通知到监控平台,如果出现异常,监控平台打电话或者发短信通知给具体的运维人员 python版本要求:python3.0 以上 安装 python 的 psutil 包 和 requests 包 pip install psutil pip install requests Linux系统下运行效果 Windows系统下运行效果 代码实例核心程序 # 获取端口信息 @

  • Linux系统下利用C程序输出某进程的内存占用信息

    前言 大家应该都遇到过一种情况,在实际工作中有时需要程序打印出某个进程的内存占用情况以作参考, 下面介绍一种通过Linux下的伪文件系统 /proc 计算某进程内存占用的程序实现方法.下面话不多说了,来一起看看详细的介绍吧. 实现分析 首先, 为什么会有所谓的 伪文件 呢. Linux系统的文件类型大致可分为三类: 普通文件, 目录文件和伪文件. 伪文件不是用来存储数据的, 因此这些文件不占用磁盘空间, 只是存在于内存中. /proc 让你可以与内核内部数据进行交互, 获取有关进程的有用信息.

  • Linux内存描述符mm_struct实例详解

    Linux对于内存的管理涉及到非常多的方面,这篇文章首先从对进程虚拟地址空间的管理说起.(所依据的代码是2.6.32.60) 无论是内核线程还是用户进程,对于内核来说,无非都是task_struct这个数据结构的一个实例而已,task_struct被称为进程描述符(process descriptor),因为它记录了这个进程所有的context.其中有一个被称为'内存描述符'(memory descriptor)的数据结构mm_struct,抽象并描述了Linux视角下管理进程地址空间的所有信息

  • 详解Linux内核内存管理架构

    内存管理子系统可能是linux内核中最为复杂的一个子系统,其支持的功能需求众多,如页面映射.页面分配.页面回收.页面交换.冷热页面.紧急页面.页面碎片管理.页面缓存.页面统计等,而且对性能也有很高的要求.本文从内存管理硬件架构.地址空间划分和内存管理软件架构三个方面入手,尝试对内存管理的软硬件架构做一些宏观上的分析总结. 内存管理硬件架构 因为内存管理是内核最为核心的一个功能,针对内存管理性能优化,除了软件优化,硬件架构也做了很多的优化设计.下图是一个目前主流处理器上的存储器层次结构设计方案.

  • python监控linux内存并写入mongodb(推荐)

    (需要安装psutil 用来获取服务器资源,以及pymongo驱动)#pip install psutil #pip install pymongo #vim memory_monitory.py 文件内容如下 #!/usr/bin/env python # -*- coding: UTF-8 -*- import psutil import socket import time from pymongo import MongoClient mongodbIp = '192.168.200.1

  • Linux下用Valgrind做检查(防止内存泄露)

    用C/C++开发其中最令人头疼的一个问题就是内存管理,有时候为了查找一个内存泄漏或者一个内存访问越界,需要要花上好几天时间,如果有一款工具能够帮助我们做这件事情就好了,valgrind正好就是这样的一款工具. Valgrind是一款基于模拟linux下的程序调试器和剖析器的软件套件,可以运行于x86, amd64和ppc32架构上.valgrind包含一个核心,它提供一个虚拟的CPU运行程序,还有一系列的工具,它们完成调试,剖析和一些类似的任务.valgrind是高度模块化的,所以开发人员或者用

  • Linux中大内存页Oracle数据库优化的方法

    前言 PC Server发展到今天,在性能方面有着长足的进步.64位的CPU在数年前都已经进入到寻常的家用PC之中,更别说是更高端的PC Server:在Intel和AMD两大处理器巨头的努力下,x86 CPU在处理能力上不断提升:同时随着制造工艺的发展,在PC Server上能够安装的内存容量也越来越大,现在随处可见数十G内存的PC Server.正是硬件的发展,使得PC Server的处理能力越来越强大,性能越来越高.而在稳定性方面,搭配PCServer和Linux操作系统,同样能够满重要业

  • Linux共享内存实现机制的详解

    Linux共享内存实现机制的详解 内存共享: 两个不同进程A.B共享内存的意思是,同一块物理内存被映射到进程A.B各自的进程地址空间.进程A可以即时看到进程B对共享内存中数据的更新,反之亦然.由于多个进程共享同一块内存区域,必然需要某种同步机制,互斥锁和信号量都可以. 效率: 采用共享内存通信的一个显而易见的好处是效率高,因为进程可以直接读写内存,而不需要任何数据的拷贝.对于像管道和消息队列等通信方式,则需要在内核和用户空间进行四次的数据拷贝,而共享内存则只拷贝两次数据[1]: 一次从输入文件到

  • 解决Linux下php-fpm进程过多导致内存耗尽问题

    最近,发现个人博客的Linux服务器,数据库服务经常挂掉,导致需要重启,才能正常访问,极其恶心,于是决心开始解决问题,解放我的时间和精力(我可不想经常出问题,然后人工重启,费力费时). 分析问题 发现问题以后,首先使用 free -m 指令查看当前服务器执行状况: 可以看到我的服务器内存是2G的,但是目前可用内存只剩下70M,内存使用率高达92%,很有可能是内存使用率过高导致数据库服务挂断. 继续看详细情况,使用 top 指令: 然后再看指令输出结果中详细列出的进程情况,重点关注第10列内存使用

  • 如何利用Bash脚本监控Linux的内存使用情况

    前言 目前市场上有许多开源监控工具可用于监控 Linux 系统的性能.当系统达到指定的阈值限制时,它可以发送电子邮件警报.它可以监视 CPU 利用率.内存利用率.交换利用率.磁盘空间利用率等所有内容. 如果你只有很少的系统并且想要监视它们,那么编写一个小的 shell 脚本可以使你的任务变得非常简单. 在本教程中,我们添加了两个 shell 脚本来监视 Linux 系统上的内存利用率.当系统达到给定阈值时,它将给特定电子邮件地址发邮件. 方法-1:用 Linux Bash 脚本监视内存利用率并发

  • linux swap交换内存扩容的方法

    swap交换内存主要是指当物理内存不够用时,系统会启用硬盘的一部分空间来充当服务器内存,而默认情况下swap内存会有一些设置标准,它与物理内存的大小也是有关系的,具体标准如下: Ram大小 Swap大小 激活Swap后合计大小 256MB 256MB 512MB 512MB 512MB 1GB 1GB 1GB 2GB 3GB 2GB 5GB 4GB 2GB 6GB 6GB 2GB 8GB 8GB 3GB 11GB 12GB 3GB 15GB 16GB 4GB 20GB 32GB 6GB 38GB

随机推荐