小编给大家分享一下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,这会得出类似下面这样的输出:
|
所以在该示例(我的桌面)中,耗用较多内存的进程是Firefox,占用内存第二多的是Thunderbird。
-u是一个有用的选项,它显示了每个用户所耗用的内存总量:
|
可以为该命令添加-p,显示百分比数值:
|
或者,如果你更想看到整个系统的内存使用情况,则可以使用-w选项:
|
说到-w,我建议另外使用选项-R REALMEM,这个值是指物理内存数量。这让smem可以在整个系统(-w)的输出中发现固件/硬件所耗用的内存数量。如果提供该选项,它还可以用作百分比所用到的总内存大小。
|
借助smen,以图形显示linux内存
如果借助smem(又拥有matplotlib库),只要再借助几个选项,就可以生成条形图和饼形图。
显示带“pss”和“uss”这两列的条形图:
#smem --bar pid -c "pss uss"
创建饼形图,显示在运行系统上以“k”开头的进程:
#smem -P '^k' --pie=name
以上是“Linux中怎么用smem查看内存占用情况”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注编程网操作系统频道!
--结束END--
本文标题: Linux中怎么用smem查看内存占用情况
本文链接: https://www.lsjlt.com/news/284721.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
下载Word文档到电脑,方便收藏和打印~
2024-03-01
2024-03-01
2024-03-01
2024-03-01
2024-03-01
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0