在Linux中可视化显示内存占用情况的方法

物理内存不足对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的格式化输出,你可以对内存使用报告进行自动化分析,并执行一些自动化的处理措施。如果你还知道其他的一些优秀的内存检测工具,请在留言区告诉我。

相关阅读:

管理用SSH远程登录Linux服务器的用户的权限

jQuery获取上传文件的名称的正则表达式

Codeigniter中mkdir创建目录遇到权限问题和解决方法

Table显示你要显示的边框代码

php实现cookie加密的方法

如何重设Mac OS X系统帐户密码?OS X帐户密码设置5种方法

javascript 原型链维护和继承详解

Linux find命令中-exec参数的作用介绍

win10默认应用语言怎么设置?

PHP使用逆波兰式计算工资的方法

Android的ImageButton当显示Drawable图片时就不显示文字

详解 JAVA的回调机制CallBack

php实现多张图片上传加水印技巧

CSS3用@font-face实现自定义英文字体

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

  1. linux 系统显示很大,在Linux中可视化显示内存占用情况的方法

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

  2. linux 桌面 计算器,在Ubuntu中打开Gnome计算器的6种方法

    Gnome Calculator是Ubuntu的默认计算器应用程序.根据开发人员的说法,GNOME Calculator是一款解决数学方程式的应用程序.尽管起初它看起来像是只具有基本算术运算的简单计算 ...

  3. Windows下使用Jconsole远程监控Linux系统中java服务器资源占用情况

    1.首先需要停止正在运行的服务:resin-XXX stop 2.然后在Linux的服务器启动项中添加如下信息: -Djava.rmi.server.hostname=192.168.1.122-Dc ...

  4. python程序内存分析_python 如何测量运行中的程序内存 -- Valgrind

    介绍 通常我们可以用python profiler去分析应用程序中哪个模块被多次调用和那个程序部分运行的速度较为缓慢,但是并不能够准确给出我们应用程序在运行中在内存中占用的大小. 比如说在金融数据中会 ...

  5. 在计算机使用过程中内存出现,电脑在使用过程中提示电脑内存不足怎么办?

    在使用电脑的过程中可能会出现系统死机或蓝屏现象.导致电脑系统死机的因素有很多,其中电脑内存问题导致系统死机就是比较常见的.如果在使用过程中发现电脑提示内存不足怎么办?小编给大家分享一篇电脑内存不足的解 ...

  6. android surfaceflinger内存,surfaceflinger中的显示内存管理类

    1.  Android中的应用层每申请一个Surface,最终会通过jni和binder调用到surfaceflinger中,最终会创建一个Layerxxx(Layer,LayerBuffer,Lay ...

  7. linux pmap 内存泄露,pmap学习:系统测试中怎么确定内存泄露(memory leak)

    性能测试的一项重要工作就是检查有没有内存泄露.linux下通过top/free/pmap/ps,会提供许多关于内存分配的信息,如top里面的VIRT,RSS,SWAP,VSZ,RES,SHR等等,到底 ...

  8. linux java的启动内存溢出,java - Java的R代码可在Linux上运行,但不能在Windows中运行 - 堆栈内存溢出...

    我在做什么? 我正在用Java编写一个数据分析程序,该程序依赖R的arulesViz库来挖掘关联规则. 我想要什么? 我的目的是将规则存储在Java中的String变量中,以便以后进行处理. 它是如何 ...

  9. 9050 端口 linux 进程,Linux中查看某个端口占用情况

    Bridge模式--对象结构型模式 今天看了Bridge模式,对其进行简单的总结,并给出几篇通俗易懂的文章链接. (一)意图--将抽象部分和它的实现部分分离,使它们都可以独立地变化. 适用于从多维度描 ...

最新文章

  1. Basic脚本解释器移植到STM32
  2. 搭建Nginx正向代理
  3. Fastify 2.0.1 和 1.14.3 发布,极速 Node.js Web 框架
  4. Lucas(卢卡斯)定理---组合数取模问题
  5. →箭头符号大全复制_特殊符号大全,想要那个自己来复制
  6. 谷歌重返中国_我如何利用数据科学重返幻想英超联赛并进入前1名
  7. python李白买酒_李白买酒的数学问题
  8. mac 命令行 解压7z文件_Mac使用技巧:压缩/解压!
  9. 单射、满射和双射(一 一映射)
  10. 为什么ppt图形卡配置不正确_PPT常见问题解决方法,PPT检测到图形卡可能配置不正确怎么办?...
  11. 【ArcGIS微课1000例】0038:注记(Annotation)的使用方法
  12. Java使用@Value获取不到值
  13. Unity 之 ShaderGraph Procedural节点解析汇总
  14. 【历史上的今天】8 月 25 日:Linux 诞生;我国第一个计算机科学技术研究所成立
  15. http://www.baidu.com
  16. 微信小程序云开发新手教程——关于多人云开发和git版本管理
  17. 论文小结——CenterPoint
  18. transmac装黑苹果_黑苹果Mac系统盘制作工具TransMac V12.2——墨涩网
  19. Frame--ddt
  20. O365结合ADFS限制用户登录地址 (二) - 安装AAD Connect

热门文章

  1. Qt创建任务栏进度条
  2. 前端:后端,我要分手,你不适合我
  3. 漂亮 动态效果 信息提示(jquery版)
  4. Unable to execute dex: GC overhead limit exceeded
  5. 在开发环境中,自己搭建一个ssl环境(小例子)
  6. Linux下性能监控工具介绍
  7. error_logs
  8. Deploy过程出错解决
  9. OJ1031: 判断点在第几象限
  10. 信息学奥赛一本通 1316:【例4.6】数的计数(Noip2001) | 1914:【01NOIP普及组】数的计数 | 洛谷 P1028 [NOIP2001 普及组] 数的计算