Ham*_*eza 25 linux centos centos6
我如何在linux centos 6中看到用户的内存使用情况
For example:
USER USAGE
root 40370
admin 247372
user2 30570
user3 967373
Run Code Online (Sandbox Code Playgroud)
Jos*_*ber 28
这个单行程序在我的至少四个不同发行版和版本的Linux系统上工作.它也适用于FreeBSD 10.
ps hax -o rss,user | awk '{a[$2]+=$1;}END{for(i in a)print i" "int(a[i]/1024+0.5);}' | sort -rnk2
Run Code Online (Sandbox Code Playgroud)
关于实现,这里没有shell循环结构; 这使用关联数组awk来进行分组和求和.
这是我的一个服务器的示例输出,它运行的是大小合适的MySQL,Tomcat和Apache.数字以MB为单位.
mysql 1566
joshua 1186
tomcat 353
root 28
wwwrun 12
vbox 1
messagebus 1
avahi 1
statd 0
nagios 0
Run Code Online (Sandbox Code Playgroud)
警告:像大多数类似的解决方案一样,这只考虑驻留集(RSS),所以它不计算任何共享内存段.
编辑:一个更人性化的版本.
echo "USER RSS PROCS" ; echo "-------------------- -------- -----" ; ps hax -o rss,user | awk '{rss[$2]+=$1;procs[$2]+=1;}END{for(user in rss) printf "%-20s %8.0f %5.0f\n", user, rss[user]/1024, procs[user];}' | sort -rnk2
Run Code Online (Sandbox Code Playgroud)
并输出:
USER RSS PROCS
-------------------- -------- -----
mysql 1521 1
joshua 1120 28
tomcat 379 1
root 19 107
wwwrun 10 10
vbox 1 3
statd 1 1
nagios 1 1
messagebus 1 1
avahi 1 1
Run Code Online (Sandbox Code Playgroud)
sca*_*cai 27
使用标准工具的每用户内存使用百分比:
for USER in $(ps haux | awk '{print $1}' | sort -u)
do
ps haux | awk -v user=$USER '$1 ~ user { sum += $4} END { print user, sum; }'
done
Run Code Online (Sandbox Code Playgroud)
或者更精确:
TOTAL=$(free | awk '/Mem:/ { print $2 }')
for USER in $(ps haux | awk '{print $1}' | sort -u)
do
ps hux -U $USER | awk -v user=$USER -v total=$TOTAL '{ sum += $6 } END { printf "%s %.2f\n", user, sum / total * 100; }'
done
Run Code Online (Sandbox Code Playgroud)
第一个版本只是总结了报告的每个进程的内存百分比ps.第二个版本以字节为单位对内存进行求和,然后计算总百分比,从而提高精度.
h22*_*h22 15
如果您的系统支持,请尝试安装并使用smem:
smem -u
User Count Swap USS PSS RSS
gdm 1 0 308 323 820
nobody 1 0 912 932 2240
root 76 0 969016 1010829 1347768
Run Code Online (Sandbox Code Playgroud)
要么
smem -u -t -k
User Count Swap USS PSS RSS
gdm 1 0 308.0K 323.0K 820.0K
nobody 1 0 892.0K 912.0K 2.2M
root 76 0 937.6M 978.5M 1.3G
ameskaas 46 0 1.2G 1.2G 1.5G
Run Code Online (Sandbox Code Playgroud)
124 0 2.1G 2.2G 2.8G
Run Code Online (Sandbox Code Playgroud)
在Ubuntu中,可以通过键入来安装smem
sudo apt install smem
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
39951 次 |
| 最近记录: |