iis服务器助手广告广告
返回顶部
首页 > 资讯 > 操作系统 >Linux中怎么用smem查看内存占用情况
  • 394
分享到

Linux中怎么用smem查看内存占用情况

2023-06-16 18:06:26 394人浏览 独家记忆
摘要

小编给大家分享一下linux中怎么用smem查看内存占用情况,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!无论是作为系统管理员,还是作为使用桌面版Linux的简单

小编给大家分享一下linux中怎么用smem查看内存占用情况,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

无论是作为系统管理员,还是作为使用桌面版Linux的简单用户,你都会注意到,某个进程在耗用你系统的所有内存。

首先要明白Linux是如何管理内存的;我多次接到用户的反映,说运行了free命令,就是无法适当读取输出。简而言之,如果是Linux内核,不用担心;内核在耗用内存,缓存文件呢。

放心,Linux内核开发人员比你我更有能力找到一种优秀的算法来缓存文件,并且当某个进程需要时,释放该内存区域,所以千万不要让我把运行诸如这种命令的某个任务放入计划任务(cron):

echo 3 > /proc/sys/vm/drop_caches

当然,之后,你会在系统上有更多的可用闲置内存,但是系统不得不从磁盘重新读取所有文件,所以就性能而言,这通常是一个糟糕的举措:

但现在我们不妨看一个小巧的程序,它可以帮助我们找到哪些进程/用户在大量耗用我们系统的内存。

smem这个工具可以提供Linux系统上内存耗用情况方面的众多报告。与现有的工具不一样,smem可以报告实际使用的物理内存(PSS),这是一种更有意义的指标,可以衡量虚拟内存系统中的库和应用程序所占用的内存数量。

由于大部分的物理内存通常在多个应用程序之间共享,名为实际使用物理内存(RSS)的这个标准的内存耗用衡量指标会大大高估内存耗用情况。PSS这个参数而是衡量了每个应用程序在每个共享内存区中的“公平分配”,给出了一个切合实际的衡量指标。

smem有许多功能特性:

  • 系统概况列表

  • 按进程、映射和用户列表

  • 按用户、映射或用户过滤

  • 来自多个数据源的可配置列

  • 可配置的输出单位和百分比

  • 可配置的标题和总和

  • 从/proc读取活动数据

  • 从目录镜像或经过压缩的打包文件读取数据快照

  • 面向嵌入式系统的轻型捕获工具

  • 内置的图表生成功能

安装

如果你使用Debian、ubuntu或Mint,可以使用下面这个命令,直接从官方软件库安装smem:

$ sudo apt-get install smem

Arch Linux用户可以从Arch用户软件库(AUR,https://www.archlinux.org/packages/commUnity/i686/smem/)安装程序包。

Red Hat / Fedora / Centos / SuSE用户可以使用直接从官方网站下载的预编译二进制代码。为了方便起见,你可以拷贝剪贴这些命令,这些命令会将命令smen放入到你的/usr/local/bin文件夹:

cd /tmp/ wget Http://www.selenic.com/smem/download/smem-1.3.tar.gz tar xvf smem-1.3.tar.gz sudo cp /tmp/smem-1.3/smem /usr/local/bin/ sudo chmod +x /usr/local/bin/smem

基本用法

smem可报告物理内存使用情况,并且考虑到共享的内存页面。非共享内存被报告为进程独自占用的物理内存(USS)。共享内存在共享该内存的多个进程之间平均分配。非共享内存(USS)以及进程的共享内存比例被报告为实际使用的物理内存(PSS)。USS和PSS只包含物理内存使用情况。它们并不包含已经被置换到磁盘上的内存。

基本用法会显示运行中进程以及所用的内存数量;想看看这方面的情况,运行不带任何选项的命令smem,这会得出类似下面这样的输出:

# smem  PID User     Command                         Swap      USS      PSS      RSS.... 4223 linuxaria   /usr/lib/chromium-browser/c        0     9144    11696    29132 14280 root     python ./smem                      0    11580    11839    13680  2180 linuxaria   /usr/bin/Python /usr/share/        0    12956    14691    24392  2144 linuxaria   python /usr/lib/linuxmint/m        0    20252    22337    35648  2121 linuxaria   Thunar --daemon                    0    13316    23122    44404  2123 linuxaria   xfdesktop                          0    24004    24924    36032 13095 linuxaria   /usr/lib/chromium-browser/c        0    27536    30996    53328  2577 linuxaria   /usr/bin/python /usr/lib/ub        0    34192    35112    41300  2127 linuxaria   /home/riccio/copy/x86_64/Co        0    40268    41081    52248 10720 linuxaria   /usr/lib/chromium-browser/c        0    38684    42107    63928 10561 linuxaria   /usr/lib/chromium-browser/c        0    43956    48137    71644 10579 linuxaria   /usr/lib/chromium-browser/c        0    46276    50290    73484  5605 linuxaria   transmission-gtk /tmp/[kick        0    48616    51508    65148  8938 linuxaria   /usr/lib/firefox/plugin-con        0    48960    55428    71132  2186 linuxaria   /home/linuxaria/.dropbox-dist/        0    55524    56061    64820  1722 root     /usr/bin/X :0 -audit 0 -aut        0    52360    73110    96008 10623 linuxaria   /usr/lib/chromium-browser/c        0   114224   121888   149236  4171 linuxaria   chromium-browser --disable-        0   131044   140415   165780  7050 linuxaria   /usr/lib/thunderbird/thunde        0   253428   256803   273152  2644 linuxaria   /usr/lib/firefox/firefox           0   528420   537423   558992

所以在该示例(我的桌面)中,耗用较多内存的进程是Firefox,占用内存第二多的是Thunderbird。

-u是一个有用的选项,它显示了每个用户所耗用的内存总量:

#smem -uUser     Count     Swap      USS      PSS      RSS daemon       1        0      196      197      368 rtkit        1        0      300      312     1396 nobody       1        0      428      442     1600 mdm          2        0      600      695     1808 avahi        2        0      568      806     2420 syslog       1        0     1032     1043     1884 messagebus     1        0     1124     1207     2048 root        40        0    96568   123002   203372 linuxaria      83        0  1539864  1640378  2222556

可以为该命令添加-p,显示百分比数值:

#smem -u -pUser     Count     Swap      USS      PSS      RSS daemon       1    0.00%    0.00%    0.00%    0.00% rtkit        1    0.00%    0.00%    0.00%    0.02% nobody       1    0.00%    0.01%    0.01%    0.02% mdm          2    0.00%    0.01%    0.01%    0.02% avahi        2    0.00%    0.01%    0.01%    0.03% syslog       1    0.00%    0.01%    0.01%    0.02% messagebus     1    0.00%    0.01%    0.01%    0.03% root        40    0.00%    1.18%    1.47%    2.41% linuxaria      83    0.00%   19.29%   20.48%   27.58%

或者,如果你更想看到整个系统的内存使用情况,则可以使用-w选项:

#smem -w -pArea                           Used      Cache   Noncache firmware/hardware             0.00%      0.00%      0.00% kernel image                  0.00%      0.00%      0.00% kernel dynamic memory        64.55%     62.42%      2.13% userspace memory             22.12%      3.00%     19.12% free memory                  13.33%     13.33%      0.00%

说到-w,我建议另外使用选项-R REALMEM,这个值是指物理内存数量。这让smem可以在整个系统(-w)的输出中发现固件/硬件所耗用的内存数量。如果提供该选项,它还可以用作百分比所用到的总内存大小。

#smem -R 8G -w -pArea                           Used      Cache   Noncache firmware/hardware             2.83%      0.00%      2.83% kernel image                  0.00%      0.00%      0.00% kernel dynamic memory        63.02%     60.95%      2.07% userspace memory             21.60%      2.91%     18.68% free memory                  12.56%     12.56%      0.00%

借助smen,以图形显示linux内存

如果借助smem(又拥有matplotlib库),只要再借助几个选项,就可以生成条形图和饼形图。

显示带“pss”和“uss”这两列的条形图:

#smem --bar pid -c "pss uss"

Linux中怎么用smem查看内存占用情况

创建饼形图,显示在运行系统上以“k”开头的进程:

#smem -P '^k' --pie=name

Linux中怎么用smem查看内存占用情况

以上是“Linux中怎么用smem查看内存占用情况”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注编程网操作系统频道!

--结束END--

本文标题: Linux中怎么用smem查看内存占用情况

本文链接: https://www.lsjlt.com/news/284721.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Linux中怎么用smem查看内存占用情况
    小编给大家分享一下Linux中怎么用smem查看内存占用情况,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!无论是作为系统管理员,还是作为使用桌面版Linux的简单...
    99+
    2023-06-16
  • linux怎么查看内存占用情况
    在Linux上查看内存占用情况可以使用以下命令: free命令:用于查看系统内存的使用情况。 free -h 该命令将以可读的方...
    99+
    2023-10-24
    linux
  • mysql怎么查看内存占用情况
    要查看MySQL内存占用情况,可以使用以下几种方法: 使用MySQL自带的performance_schema插件:通过perfo...
    99+
    2024-04-09
    mysql
  • python怎么查看内存占用情况
    可以使用Python的内置模块`sys`来查看内存占用情况。1. 使用`sys.getsizeof()`函数来获取对象占用的内存大小...
    99+
    2023-09-15
    python
  • centos怎么查看内存占用情况
    在CentOS系统中,可以使用以下命令来查看内存占用情况: 使用 free 命令查看系统内存使用情况: free -h 使用...
    99+
    2024-04-02
  • Linux下怎么查看CPU和内存占用情况
    这篇文章将为大家详细讲解有关Linux下怎么查看CPU和内存占用情况,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。top命令  top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源...
    99+
    2023-06-28
  • linux怎么查看各个进程内存占用情况
    在Linux系统中,可以使用以下命令来查看各个进程的内存占用情况:1. top命令:在终端中输入top命令,然后按下shift+m键...
    99+
    2023-10-09
    linux
  • Python怎么查看程序内存占用情况
    今天小编给大家分享一下Python怎么查看程序内存占用情况的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。查看程序内存占用情况...
    99+
    2023-06-30
  • win11如何查看内存占用情况
    这篇文章主要介绍了win11如何查看内存占用情况的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇win11如何查看内存占用情况文章都会有所收获,下面我们一起来看看吧。方法一:首先右键“windows徽标”,打开“...
    99+
    2023-07-02
  • ubuntu怎么查看内存占用和查看cpu使用情况
    这篇文章主要介绍“ubuntu怎么查看内存占用和查看cpu使用情况”,在日常操作中,相信很多人在ubuntu怎么查看内存占用和查看cpu使用情况问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”ubuntu怎么查...
    99+
    2023-06-13
  • linux怎么查看各个进程的内存占用情况
    在Linux系统中,可以使用以下命令来查看各个进程的内存占用情况:1. `top`命令:在终端中输入`top`命令可以实时查看系统的...
    99+
    2023-09-13
    Linux
  • linux查看内存占用情况的方法是什么
    Linux系统中查看内存占用情况的方法有多种。 使用free命令:在终端中输入free命令,即可显示系统的内存使用情况。该命令会...
    99+
    2023-10-23
    linux
  • Python利用memory_profiler查看内存占用情况
    目录简介安装使用方法1、通过装饰器运行2、通过命令行运行补充简介 memory_profiler是第三方模块,用于监视进程的内存消耗以及python程序内存消耗的逐行分析。它是一个纯...
    99+
    2024-04-02
  • 云服务器内存占用情况怎么查看
    要查看云服务器的内存占用情况,可以使用以下方法:1. 使用命令行工具:登录到云服务器的命令行界面,使用命令`free -h`可以查看...
    99+
    2023-09-21
    云服务器
  • linux怎么查看jvm内存使用情况
    在Linux系统中,可以通过以下命令查看JVM内存使用情况:1. 使用top命令查看整个系统的进程状态和资源使用情况:top在top...
    99+
    2023-10-20
    linux jvm
  • linux怎么查看java内存使用情况
    要查看Java内存使用情况,可以使用以下命令:1. 使用jstat命令:`jstat -gc `该命令将显示与Java垃圾回收相关的...
    99+
    2023-09-27
    linux java
  • linux怎么查看空间占用情况
    要查看Linux系统中的存储空间占用情况,可以使用以下命令:1. df命令:该命令用于显示磁盘分区的使用情况。```df -h```...
    99+
    2023-09-26
    linux
  • Linux查看端口占用情况
    目录一、查看已知端口占用情况二、查看全部端口占用情况三、查看具体端口被哪个程序占用四、kill被占用的进程五、检查对应端口是否还在占用一、查看已知端口占用情况 比如,我们想知道8080端口的使用情况,或者说被谁占用了,命...
    99+
    2023-04-21
    Linux查看端口 Linux查看端口占用 Linux端口占用
  • Linux 查看端口占用情况
    在Linux系统中,可以使用以下命令来查看端口的占用情况:1. 使用 `netstat` 命令:```netstat -tunlp`...
    99+
    2023-09-06
    Linux
  • Python如何查看程序内存占用情况
    目录查看程序内存占用情况python查看内存使用查看程序内存占用情况 flyfishpsutil 这里用在查看内存占用情况memory_profiler输出每一行代码增减的内存 安装...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作