我想首先top
将排序设置为驻留内存大小,而不是默认的 CPU 使用率。
我没有找到从命令行参数或启动文件执行此操作的方法。显然我也不能echo "Oq" | top
,因为我会阻止top
使用 tty。
有没有办法做到这一点?
更新:我top
在Linux(最近的Ubuntu和Debian,3.x内核)上运行,安装为“procps 1:3.2.8-11ubun”,尽管我认为列排序功能可能非常跨平台。
答案1
top -M
按常驻内存使用情况排序。
M 按常驻内存使用情况对任务进行排序。
这是我系统上的 top 版本。
top -v top:procps 版本 3.2.7
如果您的 Linux 发行版支持该-M
标志,您可以按照上述方式使用它这里。
但是,如果您top
不支持该-M
标志,您可以启动命令并通过键入检查排序字段top
进入交互模式。 h(我认为不同发行版都是一样的)
在我的系统(而不是top
我的系统版本)中,我可以键入F或O选择 Q我的版本的排序字段和键top
,让我可以对常驻内存进行排序。
如果您想保存配置,您可以执行 slm 提到的操作这里。
保存配置
您可以使用Shift+W保存更改,使其成为默认值:
W Write configuration file
该文件存储在$HOME/.toprc
或$HOME/.config/procps/toprc
(在 procps-ng 3.3.13 或更高版本中),如下所示:
$ more toprc
RCfile for "top with windows" # shameless braggin'
Id:a, Mode_altscr=0, Mode_irixps=1, Delay_time=1.000, Curwin=2
Def fieldscur=AEHIoqTWKNMBcdfgjpLrsuvyzX
winflags=129016, sortindx=19, maxtasks=0
summclr=2, msgsclr=5, headclr=7, taskclr=7
Job fieldscur=ABcefgjlrstuvyzMKNHIWOPQDX
winflags=63416, sortindx=13, maxtasks=0
summclr=6, msgsclr=6, headclr=7, taskclr=6
Mem fieldscur=ANOPQRSTUVbcdefgjlmyzWHIKX
winflags=65464, sortindx=13, maxtasks=0
summclr=5, msgsclr=5, headclr=4, taskclr=5
Usr fieldscur=ABDECGfhijlopqrstuvyzMKNWX
winflags=65464, sortindx=12, maxtasks=0
summclr=3, msgsclr=3, headclr=2, taskclr=7
有关详细信息,请参阅手册页的第 5 节“5. 文件”。
答案2
在我的 Linux 系统上top
(procps-ng 版本 3.3.9)有一个-o
开关:
-o :Override-sort-field as: -o fieldname
Specifies the name of the field on which tasks will be
sorted, independent of what is reflected in the configuration
file. You can prepend a '+' or '-' to the field name to also
override the sort direction. A leading '+' will force sort‐
ing high to low, whereas a '-' will ensure a low to high
ordering.
因此,top -o RES
开始top
按驻留内存大小排序。
答案3
你已经top -a
使用了Linux。尝试检查 Unix 上的联机帮助页top -m
。不确定我们是否在谈论相同的内存。