我在寻找CPU使用率最高的东西。 top是否有命令行参数可以执行此操作?目前,我的记忆已满,连“ man top”都因内存不足而失败了:)

评论

theunixshell.blogspot.in/2012/12/blog-post.html

感谢@Vijay,它也可以在Solaris 9上完美运行。

#1 楼

top内部,您可以尝试以下操作:


按SHIFT + f

按与%MEM对应的字母
按ENTER

您也可以尝试:

$ ps -eo pmem,pcpu,vsize,pid,cmd | sort -k 1 -nr | head -5


这将按内存使用量列出前5个进程。

评论


在Linux下,只需按M即可按物理内存使用量排序(“ RES”列)。在* BSD下,运行top -o res或top -o size。但是htop更好,甚至不比top消耗更多的内存(但是它不是基本工具集的一部分,因此您可能没有安装它)。

–吉尔斯'所以-不再是邪恶的'
2010-12-19 13:38

我必须按s来按%MEM排序,然后按逃脱获得顶部。

–布莱斯·昆塔(Bryce Guinta)
16年6月26日在20:40

在Solaris 9上不起作用。

–saulius2
20年4月30日在14:19

#2 楼

如果已安装它,则启动它后,我会喜欢htop,可以按f6,向下箭头(至MEM%),输入以按内存排序。

#3 楼

在Solaris中,您需要的命令是:

prstat -a -s size


这将按递减的进程映像大小列出所有进程。请注意,后者基于OS提交给该进程的内存,而不是其驻留的物理内存使用情况。

Solaris可以使用“ top”版本,但这些版本不属于Solaris。标准安装。

评论


终于可以在Solaris 9上运行了!谢谢

–saulius2
20 Apr 30'14:25

#4 楼

top启动后,按F切换到排序字段屏幕。通过按左侧列出的键选择列出的字段之一;您可能需要MEM%的N

评论


如果您需要MEM%,则按“ M”执行上述操作。 'c'将命令行参数添加到进程列表,可能对您的问题有用。

– Wag
2010-12-19 8:46



在Solaris 9上不起作用

–saulius2
20年4月30日在14:21

#5 楼

top的一个不错的替代选择是htop。选中它,它比常规top更加用户友好。

#6 楼

此命令将标识内存消耗最大的进程:

ps -A --sort -rss -o pid,pmem:40,cmd:500 | head -n 6 | tr -s " " ";z"


评论


在Solaris 9上不起作用:ps:非法选项--ps:ort是-s选项的无效非数字参数ps:非法选项-r ps:s是-s选项的无效非数字参数ps:未知输出格式:-o pmem:40 ps:未知输出格式:-o cmd:500

–saulius2
20-4-30在14:22



#7 楼

它可以通过多种方式实现,
我最喜欢的一种方式是:
PS方式:


[arif@arif ~]$ ps -eo pid,cmd,%cpu,%mem --sort=-%mem
其中,


-e:选择所有进程

-o:适用于输出格式

pidcmd%cpu%mem:按正确的顺序输出格式。在这里,可以使用pcpupmem代替%cpu%mem
可惜(不知道为什么),它在某些计算机(Oracle Linux)和某些较旧的计算机上不起作用。您可以使用以下类似的替代方法。



[arif@arif ~]$ ps aux --sort '-%mem' --cols 120 | head
其中,



--cols 100:指定列的宽度cmd的输出有时会很长。如果您不希望使用带参数的缩减命令,则没有必要。

aux:使用BSD语法查看系统上的每个进程




[arif@arif ~]$ ps -eo pid,cmd,%cpu,%mem --sort -rss
其中,


-rss:驻留集大小,任务已使用的未交换物理内存



[arif@arif ~]$ ps aux --sort -rss --cols 120


顶部方式:
[arif@arif ~]$ top -b -o +%MEM
哪里,


-b:将top用作batch模式。

-o:覆盖排序字段名,后跟一个字段名%MEM


,您始终可以使用head和/或tail来控制输出。

评论


在Solaris 9上不起作用。顶部的cmd行给出:顶部:'+%MEM'不是公认的排序顺序。请尝试以下方法之一:cpu大小res时间

–saulius2
20 Apr 30'14:25

#8 楼

全局:
始终建议使用日志分析器工具来记录Splunk,ELK等历史记录日志,以便使用查询语言可以轻松获取CPU和内存的PID及其使用情况。

在SERVER / OS LEVEL:
从顶部开始,您可以尝试以下操作:

 Press SHIFT+M  ---> This will give you a process which takes more memory in descending order.


您还可以尝试:

$ ps -eo pid,ppid,cmd,%mem,%cpu --sort=-%mem | head -10


这将按内存使用量列出前10个进程。
此外,您可以使用vmstat实用程序同时查找RAM的使用情况,而不是历史记录。

评论


谢谢,最重要的技巧适用于Solaris9。ps cmd-line无效。

–saulius2
20-04-30在14:24

#9 楼

您可以尝试ps aux --sort -rss | headps aux | sort -nk +4 | tail

评论


在Solaris 9上不起作用

–saulius2
20年4月30日在14:22