Как отобразить результаты `top`, отсортированные по использованию памяти в режиме реального времени?


375

Как я могу отображать topрезультаты в моем терминале в режиме реального времени, чтобы список сортировался по использованию памяти?


24
В Linux >и <переместите столбец сортировки вправо и влево. Поскольку %MEMстолбец находится справа от %CPUстолбца, который также является столбцом сортировки по умолчанию, для переключения между ними требуется всего одно нажатие клавиши. Я знаю, у вашего вопроса есть тег macintosh, поэтому я пишу этот ответ как комментарий.
Уолтер Тросс

5
Я предпочитаю htop, главным образом потому, что он говорит мне, как это сделать.
Линд

Ответы:


424

Используйте topкоманду в Linux / Unix:

top
  • нажмите shift+ mпосле запуска topкоманды
  • или вы можете в интерактивном режиме выбрать столбец для сортировки
    • нажмите Shift+, fчтобы войти в интерактивное меню
    • нажимайте стрелку upили, downпока %MEMвыбор не будет выделен
    • нажмите, sчтобы выбрать %MEMвыбор
    • нажмите, enterчтобы сохранить ваш выбор
    • нажмите qдля выхода из интерактивного меню

Или укажите порядок сортировки в командной строке

# on OS-X
top -o MEM
# other distros
top -o %MEM

Рекомендации

https://stackoverflow.com/questions/4802481/how-to-see-top-processes-by-actual-memory-usage


2
В Linux это top -o %MEM(обратите внимание на «%»)
Габриэль Хаутлок

@GabrielHautclocq Это должно зависеть от вашего дистрибутива Linux и пакета, поставляемого с ним. Debian 7 использует, procps-ngи -oв этой версии нет никакой опции. SHIFT-Mу меня работает один раз topзапускается.
Кристофер Шульц

top -o %MEMработает на моем Debian 8 и 9, но не на Debian 7, вы правы @Christopher Schultz.
Габриэль Хаутлок

вместо <key> enter </ key> это должно быть <key> q </ key>
dashesy

99

Параметр командной строки -o(o означает «Override-sort-field») также работает на моем компьютере Xubuntu, и, согласно справочной странице Mac в верхней части, он также должен работать на Macintosh. Если я хочу сократить использование памяти, я обычно использую

top -o %MEM

который сортирует по столбцу %MEM. Но я могу использовать VIRT, RESили SHRтоже. На Macintosh я бы, вероятно, использовал memили vsize.

Я не знаю почему или как, но это довольно сильно отличается в Unix-системах и даже в дистрибутивах Linux. Например, -oдаже не доступен на моем Raspberry под управлением Wheezy. Возможно, стоит попробовать.


2
Ответ мог бы %MEMдать пользователю больше ясности: дан как ответ нетерпеливому читателю; в то время как это не работает везде (безусловно).
7heo.tk

1
Для Macbook 2014 это говорит:top -o %MEM invalid argument -o: %MEM
anon58192932

Мне жаль слышать это.
YTG

Это единственный ответ, который на самом деле работал на Centos для меня.
Амальговинус

1
@ anon58192932 вы должны заменить %MEM(или PID, VIRTи т. д.) на любое имя столбца, которое вы видите topтолько при запуске . Как отмечает ytg , «на Macintosh я бы, вероятно, использовал memили vsize».
ebosi

14

Похоже , что -o флаг будет взять на себя фактическое имя столбца. Так что если команда top показывает только «mem», то команда должна быть «top -o mem » .

Для машины с Ubuntu, с которой я тестирую, этот столбец называется «% MEM» . На OSX Yosemite я пробовал, это "мем" .


13

Для Ubuntu 14.04 начиная с

htop -s=MEM

сделал трюк для меня.


Хорошо работает и для OSX.
ehime

это другая команда. Искать ответа по поводу topкоманды (как задали в этом вопросе) нет htop.
Лукас

7

Если topон уже запущен, нажмите o . Над данными появится подсказка:

primary key [xxxxx]:

Где xxxxxтекущий ключ сортировки. Введите имя столбца, по которому вы хотите отсортировать. Если имя столбца содержит «%» или «#», пропустите символ. Для% CPU просто наберите "cpu".


6

Исходный вопрос, похоже, был для Mac, но для любого другого, кто сталкивается с этим ответом, в Red Hat Linux (и многих других), top -m начинается с результатов, отсортированных по использованию памяти.


Не в Debian 8
marcovtwout

Работал на: Red Hat Enterprise Linux Server версии 6.8 (ни один из других ответов не сработал).
контанго



2

Если вы используете topUbuntu ( top -v= procps-ng version 3.3.10), то вы можете использовать эти интерактивные сочетания клавиш для изменения сортировки. Обратите внимание, что это все заглавные буквы, поэтому используйте shiftлибо caps lock.

M% MEM
NPID
P% CPU
TTIME +

По умолчанию они будут отсортированы в порядке DESC. Используйте Rдля переключения ASC / DESC.

Чтобы установить сортировку из командной строки, используйте top -o %MEM. Вы можете указать любой столбец.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.