我们最近重组了部分网络托管设置;将一系列应用程序分散到一台(虚拟)机器上的多个用户上,以便更好地发现资源使用问题等。
然而,此时的问题是,虽然我们有一个麻烦行为的候选者,但可以使用 轻松确认top -u
,这是一种获取资源使用情况顶部显示的方法按用户分组迄今为止仍未找到答案。
有什么建议么?
编辑:
详细说明:
我不想看到每一条流程线(流程线有很多,极端情况下每个用户最多有 15 条);我想看到每个用户一行;显示该用户的累计资源使用情况,其中一行表示每个用户。
答案1
好吧……因为我很无聊,而且这似乎是一个有趣的挑战,所以我写了这个脚本,我认为它会满足你的要求。我已经测试了它的基本功能,它旨在灵活,因此你可以告诉 top 只输出你关心的字段,它应该能够正确适应。但它无疑不能处理每一个每个版本的 top 的格式化输出的情况。
来自我自己的工作站的示例输出:
USER VIRT RES SHR %CPU %MEM TIME+ procs
ntp 41m 580 444 0 0 0:02.93 1
haldaemo 69m 3m 2m 0 0.1 0:01.85 2
jonhall 12g 803m 230m 4 13.3 134:24.09 47
postgres 471m 1m 788 0 0 0:15.24 5
postfix 117m 7m 6m 0 0.1 0:00.02 3
statd 14m 16 8 0 0 0:00.00 1
root 2g 473m 18m 0 7.7 108:18.75 126
avahi 66m 784 628 0 0 0:00.15 2
dovecot 12m 96 48 0 0 0:00.00 1
daemon 26m 56 32 0 0 0:00.00 2
messageb 23m 1m 812 0 0 0:01.74 1