特定用户正在使用多少内存


8

是否可以找出我在多用户Linux机器上使用的内存量?我想知道我是否正在使用大量内存,并可能给其他人带来不便,因此如有必要,我可以关闭进程。

我在另一个问题中sa -m可能会这样做,但显然我无法在此服务器上访问该命令。

编辑:我没有sudo访问权限,所以我无法安装东西。服务器是CentOS。


CentOS5、6或7?
jsbillings

@jsbillings“ CentOS版本5.11(最终版)”
Hatshepsut,

Answers:


13

您可以将和ps一起使用awk以查找用户的物理内存使用情况:

ps -U root --no-headers -o rss | awk '{ sum+=$1} END {print int(sum/1024) "MB"}'

在这里,它将输出使用的内存打印出来root


1
因此,在我的情况下,我们可以使用@Luciano建议的环境变量:ps -U $USER --no-headers -o rss | awk '{ sum+=$1} END {print int(sum/1024) "MB"}'
Hatshepsut

1
对,就是这样!更改root为您在系统中拥有的任何用户。
coffeMug

我正在运行多处理代码,并且该命令表示我正在使用2TB RAM =)),而我的计算机只有200GB RAM。
32r34wgf3e

1

我认为smem是更好的工具。

安装smem并尝试

smem -uk

如果您使用的是debian,则可以使用以下命令进行安装:

apt-get install smem 

如果无法在服务器上未安装任何软件,则可以尝试:

 ps haux | awk -v user=$USER '$1 ~ user { sum += $4} END { print user, sum; }'

请记住,$ USER是一个环境变量,因此您不需要设置它。


结果的单位是-千兆字节?在我当前的桌面上,运行该命令将返回76,这很难解释为GB(我没有那么多的RAM)。
哈特谢普苏特

1
如果您谈论的是ps haux,它会以百分比形式返回使用情况。
卢西亚诺·安德列斯·马蒂尼

我没有访问SMEM在服务器上,但在我的本地我得到 User Count Swap USS PSS RSS user 127 716.0M 11.1G 11.1G 11.9G
哈特谢普苏特

另一个命令返回使用百分比。
卢西亚诺·安德列斯·马蒂尼
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.