物理内存不足对Linux桌面系统和服务器系统的性能影响都很大。当你的计算机变慢时,要做的第一件事就是释放内存。尤其是在多用户环境以及执行关键任务的服务器环境下,内存消耗会变得更加关键,因为多个用户和应用线程会同时竞争更多的内存空间。

如果要监测系统内各种资源的使用情况(比如说CPU或内存),图形化显示是一种高效的方法,通过图形界面可以快速分析各用户和进程的资源消耗情况。本教程将给大家介绍在linux下图形化分析内存使用情况的方法,使用到命令行工具是smem.

物理内存使用情况: RSS 、 PSS 和 USS

由于Linux使用到了虚拟内存(virtual memory),因此要准确的计算一个进程实际使用的物理内存就不是那么简单。 只知道进程的虚拟内存大小也并没有太大的用处,因为还是无法获取到实际分配的物理内存大小。

RSS(Resident set size),使用top命令可以查询到,是最常用的内存指标,表示进程占用的物理内存大小。但是,将各进程的RSS值相加,通常会超出整个系统的内存消耗,这是因为RSS中包含了各进程间共享的内存。

PSS(Proportional set size)会更准确一些,它将共享内存的大小进行平均后,再分摊到各进程上去。

USS(Unique set size )是PSS中自己的部分,它只计算了进程独自占用的内存大小,不包含任何共享的部分。

安装Smem

smem是一个能够生成多种内存耗用报告的命令行工具,它从/proc文件系统中提取各进程的PSS/USS信息,并进行汇总输出。它还内建了图表的生成能力,所以能够方便地分析整个系统的内存使用情况。

在Debian, Ubuntu 或 Linux Mint 上安装smem

复制代码代码如下:

$ sudo apt-get install smem

在Fedora 或 CentOS/RHEL上安装Smem

在CentOS/RHEL上,你首先得启用EPEL仓库。

复制代码代码如下:

$ sudo yum install smem python-matplotlib

使用smem检查内存使用情况

你可以在非特权模式下使用smem,它能够显示当前用户运行的所有进程的内存使用情况,并按照PSS的大小进行排序。

复制代码代码如下:

$ smem

如有你想得到整个系统中所有用户的内存使用情况,就需要使用root权限来运行smem。

复制代码代码如下:

$ sudo smem

也可以按用户维度来输出报告:

复制代码代码如下:

$ sudo smem -u

smem提供了以下选项来对输出结果进行筛选,支持按映射方式(mapping)、进程和用户三个维度的筛选:

-M

-P

-U

想了解smem更多的使用方式,可以查询用户手册(man page)。

使用smem图形化显示内存使用情况

图形化的报告使用起来会更加方便快捷。smem支持两种格式的图形显示方式:直方图和饼图。

下面是一些图形化显示的实例。

下面的命令行会基于PSS/RSS值,生成直方图,以用户alice为例。

复制代码代码如下:

$ sudo smem --bar name -c "pss uss" -U alice

这个例子会生成一张饼图,图中显示了系统中各进程的PSS内存使用量:

复制代码代码如下:

$ sudo smem --pie name -c "pss"

概括来说,smem是一个方便易用的内存分析工具。利用smem的格式化输出,你可以对内存使用报告进行自动化分析,并执行一些自动化的处理措施。如果你还知道其他的一些优秀的内存检测工具,请在留言区告诉我。

linux 系统显示很大,在Linux中可视化显示内存占用情况的方法相关推荐

  1. linux 省内存的桌面,Linux_在Linux中可视化显示内存占用情况的方法,物理内存不足对Linux桌面系统 - phpStudy...

    在Linux中可视化显示内存占用情况的方法 物理内存不足对Linux桌面系统和服务器系统的性能影响都很大.当你的计算机变慢时,要做的第一件事就是释放内存.尤其是在多用户环境以及执行关键任务的服务器环境 ...

  2. 什么是内存泄漏?Chrome浏览器中怎么查看内存占用情况?

    JavaScript,会在创建变量(对象,字符串等)时分配内存,并且在不再使用它们时"自动"释放内存,这个自动释放内存的过程称为垃圾回收. 因为自动垃圾回收机制的存在,让大多Jav ...

  3. linux系统为什么很重要,为什么Linux系统始终取代不了Windows?这4个原因80%的人不知道!...

    为什么Linux系统始终取代不了Windows?这4个原因80%的人不知道! 说起当下的电脑端操作系统,你们会想到什么呢?相信很多人和编编一样会想到Windows.其实除了Windows,还有其他的操 ...

  4. 虚拟机中使linux系统分辨率变大,能够在虚拟机全屏显示

    虚拟机 中使linux 系统 分辨率变大 经常用虚拟机,而大部分人用虚拟机几乎是绿色版的,由于绿色版中没有安装的 时间 没有带虚拟 工具 ,使用全屏显示的时间久不是很方便,而且调节系统分辨率的时候,只 ...

  5. linux有个很大的内存目录,Linux中的内存管理

    Linux的内存管理方式经常会在面试时作为操作系统基础被问道.搞清楚这个问题的好处很多,近的话可以应付面试,远的可以提高对于操作系统底层的认识,为程序的性能优化打下基础. 我们对于计算机内存,最直观和 ...

  6. Linux系统下***软件大荟萃

    Linux系统下***软件大荟萃(zt) Linux系统下***软件大荟萃 现在,大量的网络服务器开始使用Linux操作系统,Linux服务器的安全性也开始受到关注.对Linux服务器***的定义是: ...

  7. linux调整大页内存,Linux 系统如何进行大页面配置

    Linux 系统如何进行大页面配置 3/31/2018 本文内容 在 Linux 中,物理内存是以页为单位来管理的.页的大小为 4096 字节. 1MB 的内存能划分为 256 页: 1GB 则等同于 ...

  8. linux系统数据库类型,linux系统下调度数据库类型资源库中的kettle job

    已经存在kettle的一个资源库enfo,在目录/works/wxj下面有一个job (testmailsuccess.kjb)如何实现手工在kettle外部执行此job和让系统每天定时的调用此job ...

  9. linux下去ldap数据,Linux系统下要如何修改LDAP中的数据

    在天下网吧-网吧系统-网吧天下栏目上一篇文章中,我们看到了:希望对各位网吧网管或者网吧维护,做网吧系统的各位大大有用,那么今天我们一起来看下:Linux系统下要如何修改LDAP中的数据 在之前的文章中 ...

最新文章

  1. 推荐8个高质量的小众实用APP,解决你的痛点需求
  2. CSS:IE与Firefox的CSS兼容大全
  3. 异常导致循环退出_Java异常有哪些?异常怎么处理?
  4. diy nas配置推荐2020_2020适合大学生专业需求及玩游戏的电脑配置推荐
  5. freetype-go学习
  6. 《系统集成项目管理工程师》必背100个知识点-97信息系统生命周期
  7. vm磁盘映射 不能启动_Oracle的启动与关闭-数据库(4)
  8. MySQL笔记-InnoDB物理及逻辑存储结构
  9. 借助精益找回敏捷的质量
  10. Service Mesh简史
  11. PHP肥料源码_PHP农场养殖游戏巨人农场复利平台源码带抽奖
  12. window的bat批处理命令
  13. Jetpack—LiveData组件的缺陷以及应对策略
  14. 微信群控二次开发SDK
  15. android 修改系统默认语言
  16. window10 删除桌面删除不掉的ie图标(快捷方式)
  17. ubuntu18.04查看网卡mac地址
  18. SVN冲突 One or more files are in a conflicted state
  19. 信息数据采集软件-什么工具可以快速收集信息
  20. PTA 6-2 根据派生类写出基类(Java)

热门文章

  1. Django框架——查询集QuerySet
  2. Handler处理器 和 自定义Opener
  3. 解决WARN TaskSchedulerImpl: Initial job has not accepted any resources;
  4. Python heapq库的用法介绍
  5. 懒人建站 前台设计及特效
  6. Web Service和SOAP以及HTTP的关系?
  7. leetcode —— 207. 课程表
  8. 循环序列模型 —— 1.12 深层循环神经网络
  9. SDN,你必须了解的基础知识【定期更新】
  10. Multi_thread--Linux下多线程编程中信号量介绍及简单使用