Меню Рубрики

Linux sort by memory top

How to display `top` results sorted by memory usage in real time?

How can I display the top results in my terminal in real time so that the list is sorted by memory usage?

9 Answers 9

Use the top command in Linux/Unix:

  • press shift + m after running the top command
  • or you can interactively choose which column to sort on
    • press Shift + f to enter the interactive menu
    • press the up or down arrow until the %MEM choice is highlighted
    • press s to select %MEM choice
    • press enter to save your selection
    • press q to exit the interactive menu

Or specify the sort order on the command line

References

The command line option -o (o standing for «Override-sort-field») also works on my Xubuntu machine and according to the Mac man page of top it should work on a Macintosh too. If I want to short by memory usage I usually use

which sorts by the column %MEM . But I can use VIRT , RES or SHR too. On a Macintosh I would probably use mem or vsize .

I don’t know why or how but this is pretty much different between Unix systems and even between Linux distributions. For example -o isn’t even available on my Raspberry running Wheezy. It may be worth give it a try though.

Источник

How to see top processes sorted by actual memory usage?

I have a server with 12G of memory. A fragment of top is shown below:

The free -m shows the following:

If I understand correctly, the system has only 362 MB of available memory. My question is: How can I find out which process is consuming most of the memory?

Just as background info, the system is running 64bit OpenSuse 12 .

12 Answers 12

First, repeat this mantra for a little while: «unused memory is wasted memory». The Linux kernel keeps around huge amounts of file metadata and files that were requested, until something that looks more important pushes that data out. It’s why you can run:

and have the second find instance run at ridiculous speed.

Linux only leaves a little bit of memory ‘free’ to handle spikes in memory usage without too much effort.

Second, you want to find the processes that are eating all your memory; in top use the M command to sort by memory use. Feel free to ignore the VIRT column, that just tells you how much virtual memory has been allocated, not how much memory the process is using. RES reports how much memory is resident, or currently in ram (as opposed to swapped to disk or never actually allocated in the first place, despite being requested).

But, since RES will count e.g. /lib/libc.so.6 memory once for nearly every process, it isn’t exactly an awesome measure of how much memory a process is using. The SHR column reports how much memory is shared with other processes, but there is no guarantee that another process is actually sharing — it could be sharable, just no one else wants to share.

The smem tool is designed to help users better gage just how much memory should really be blamed on each individual process. It does some clever work to figure out what is really unique, what is shared, and proportionally tallies the shared memory to the processes sharing it. smem may help you understand where your memory is going better than top will, but top is an excellent first tool.

Источник

Sany’s Linux and Open Source Blog

Linux and Open Source Blog

Top command to sort by cpu/memory

top is command in to view processin running in a Linux machine.

Its will get dynamic real-time view of all process running in a Linux machine.

Run top command in your Linux machine and output should look like below:

Tasks: 233 total, 3 running, 230 sleeping, 0 stopped, 0 zombie
Cpu(s): 55.5%us, 3.9%sy, 0.0%ni, 40.5%id, 0.2%wa, 0.0%hi, 0.0%si, 0.0%st
Mem: 5880784k total, 5432556k used, 448228k free, 169636k buffers
Swap: 9764860k total, 0k used, 9764860k free, 1315972k cached

PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
2368 guest 20 0 996m 216m 47m R 96 3.8 420:25.79 thunderbird
2431 guest 20 0 1702m 717m 54m S 11 12.5 38:10.37 firefox
1106 root 20 0 186m 25m 9.8m S 7 0.4 22:45.97 Xorg
6243 guest 20 0 731m 36m 25m R 2 0.6 0:04.93 yakuake
3422 guest 20 0 1029m 191m 23m S 1 3.3 2:43.51 chrome
1692 guest 20 0 752m 21m 14m S 0 0.4 0:07.87 gnome-settings-
2502 guest 20 0 748m 143m 45m S 0 2.5 2:56.74 chrome
2640 guest 20 0 928m 84m 21m S 0 1.5 0:08.87 chrome
2781 guest 20 0 972m 124m 21m S 0 2.2 1:38.58 chrome
2907 guest 20 0 999m 60m 12m S 0 1.1 1:00.70 chrome
3352 guest 20 0 928m 72m 21m S 0 1.3 0:06.46 chrome
6286 guest 20 0 1290m 41m 26m S 0 0.7 0:00.45 knotify4
1 root 20 0 24456 2432 1356 S 0 0.0 0:00.68 init
2 root 20 0 0 0 0 S 0 0.0 0:00.18 kthreadd

By default top output is sorted with CPU usage.

There are lot of options available with which we can sort top output based on our requirement.

To view all available options run top command and then press shift + o OR O, it will display all possible fields which can used to sort.

If you want to sort all processes with memory usage run top command then press “O” and then press “n” and enter. Now the output is sorted and displayed based on memory consumption of a process.

To quit from from top’s real time view just press “q”.

Ubuntu 14.04 tip to sort by cpu/memory:

Ubuntu 14.04 comes with top 3.3.9 version where shift + o OR O won’t work.

Here you need to use F to sort with cpu/memory. First run top command, press F then select cpu/memory by using up/down arrows and press s to set sort, use Esc/q to end.

This will sort top output according to your selection.

Источник

Команда top в Linux

В одной из предыдущих статей я рассказывал как пользоваться утилитой ps для просмотра информации о запущенных процессах в Linux. Однако для решения подобных задач существуют и более продвинутые инструменты. Один из таких инструментов — это команда top. Она немного проще чем та же утилита htop, но в отличие от ps позволяет выводить информацию о системе, а также список процессов динамически обновляя информацию о потребляемых ими ресурсах.

В этой статье мы разберемся как пользоваться утилитой top, рассмотрим опции её запуска, а также интерактивные команды, которые вы можете использовать во время работы программы. Кроме того, разберем несколько примеров.

Команда top в Linux

1. Опции и команды top

Опций запуска у команды не много и использовать их активно не принято, потому что большинство действий выполняются с помощью интерактивных команд. Вот основные опции:

  • -v — вывести версию программы;
  • -b — режим только для вывода данных, программа не воспринимает интерактивных команд и выполняется пока не будет завершена вручную;
  • -c — отображать полный путь к исполняемым файлам команд;
  • -d — интервал обновления информации;
  • -H — включает вывод потоков процессов;
  • -i — не отображать процессы, которые не используют ресурсы процессора;
  • -n — количество циклов обновления данных, после которых надо закрыть программу;
  • -o — поле, по которому надо выполнять сортировку;
  • -O — вывести все доступные поля для сортировки;
  • -p — отслеживать только указанные по PID процессы, можно указать несколько PID;
  • -u — выводить только процессы, запущенные от имени указанного пользователя.

С опциями запуска всё, теперь давайте поговорим про интерактивные команды, которые вы можете выполнять во время работы программы.

  • h — вывод справки по утилите;
  • q или Esc — выход из top;
  • A — выбор цветовой схемы;
  • d или s — изменить интервал обновления информации;
  • H — выводить потоки процессов;
  • k — послать сигнал завершения процессу;
  • W — записать текущие настройки программы в конфигурационный файл;
  • Y — посмотреть дополнительные сведения о процессе, открытые файлы, порты, логи и т д;
  • Z — изменить цветовую схему;
  • l — скрыть или вывести информацию о средней нагрузке на систему;
  • m — выключить или переключить режим отображения информации о памяти;
  • x — выделять жирным колонку, по которой выполняется сортировка;
  • y — выделять жирным процессы, которые выполняются в данный момент;
  • z — переключение между цветным и одноцветным режимами;
  • c — переключение режима вывода команды, доступен полный путь и только команда;
  • F — настройка полей с информацией о процессах;
  • o — фильтрация процессов по произвольному условию;
  • u — фильтрация процессов по имени пользователя;
  • V — отображение процессов в виде дерева;
  • i — переключение режима отображения процессов, которые сейчас не используют ресурсы процессора;
  • n — максимальное количество процессов, для отображения в программе;
  • L — поиск по слову;
  • <> — перемещение поля сортировки вправо и влево;

Это далеко не все команды top, но их будет вполне достаточно для начала работы, а остальные вы сможете найти в официальной документации по утилите.

2. Запуск программы

Утилита не всегда установлена по умолчанию, для её установки в Ubuntu используйте команду:

sudo apt install top

Затем для запуска просто выполните в терминале:

Окно можно условно разделить на две части. В верхней части находится информация о системе, общем использовании ресурсов процессора и памяти, раздела подкачки, и так далее. В нижней части окна расположен список запущенных процессов с информацией, отсортированных по определённому полю.

Если все процессы не помещаются на одном экране, их можно листать с помощью стрелок вверх и вниз. Если не помещаются все колонки — с помощью стрелок вправо и влево:

Если вы хотите отображать только те процессы, которые используют ресурсы процессора используйте команду i:

3. Сортировка процессов

Чтобы выделить поле, по которому сейчас выполняется сортировка нажмите клавишу y. После этого вся колонка будет выделена жирным:

Для выбора соседнего поля сортировки справа или слева от текущего используйте клавиши > или 4. Настройка полей

По умолчанию выводятся далеко не все поля, а только те, что чаще всего используются. Но вы можете включить вывод других полей, отключить не нужные, а также изменить порядок их расположения. Для этого введите команду F:

Откроется новое окно в псевдоинтерфейсе программы, в котором будут выведены все поля. Я не буду описывать поля в этой статье, поскольку я это сделал в статье про команду ps:

Поля, которые сейчас отображаются выделены жирным и отмечены звездочкой. Вы можете перемещаться по ним с помощью стрелок вверх или вниз. Для того чтобы добавить или убрать поле нажмите на нём d или пробел.

Для того чтобы переместить поле, нажмите на нём Enter, а затем стрелку вправо. После этого поле будет захвачено и вы сможете двигать его вверх или вниз. Затем надо отпустить поле на нужном месте с помощью клавиши Enter.

После завершения настройки можно вернуться обратно в интерфейс программы с помощью клавиши q.

5. Виртуальные окна

Программа имеет четыре окна для вывода данных. Так они называются в документации, но мне больше нравится название формат отображения. Это def, job, mem и usr. Каждое окно выделяется другим цветом в цветном режиме, а также содержит разный набор колонок. Для просмотра всех окон используйте команду A, а для переключения между ними — a:

Текущее окно отображается в левом верхнем углу.

Когда выберите нужное окно снова нажмите A, чтобы вернуться в обычный режим.

7. Цветной вывод

По умолчанию команда top выводит всё в чёрно-белом цвете, однако вы можете включить цветной вывод. Для этого нажмите клавишу z:

Как я уже говорил, у каждого окна данных есть своя цветовая схема, вы можете настроить их под себя. Для этого надо использовать команду Z:

Здесь каждому элементу цветовой схемы отведена своя буква в верхнем регистре, а цвету — в нижнем. Сначала надо выбрать элемент, затем цвет для него. Когда завершите нажмите w для сохранения и редактирования цветовой схемы следующего окна или Enter для сохранения и выхода.

8. Сохранение настроек

Все эти настройки не имели бы смысла, если бы их нельзя было сохранить для восстановления при следующем запуске. Для сохранения текущих настроек программы используйте команду W.

Она записывает все внесённые настройки в файл

/.toprc и при следующем запуске они будут восстановлены.

9. Фильтрация процессов

Чтобы отфильтровать процессы, запущенные от имени определённого пользователя используйте команду u:

После ввода команды она попросит ввести имя пользователя или его UID. Также можно фильтровать процессы по любому другому полю. Для этого нажмите клавишу o, затем введите условие фильтра в виде:

ИМЯ_ПОЛЯ = значение

Если вы выполните команду o ещё раз, то программа предложит создать ещё один фильтр. Чтобы сбросить фильтры используйте команду =.

10. Завершение процессов

Чтобы завершить процесс используйте команду k. После ввода команды утилита попросит набрать PID идентификатор процесса, который надо завершить:

Затем программа спросит какой сигнал процессу надо отправить:

Можно оставить по умолчанию, тогда будет отправлен SIGTERM или же ввести любой другой код, например 9 для SIGKILL.

11. Инспектирование процессов

Ещё одна интересная возможность команды top — это инспектирование процессов. Для того чтобы эта функция заработала надо сначала открыть файл

/.toprc и добавить в конец такие строки:

pipe Open Files lsof -P -p %d 2>&1
file NUMA Info /proc/%d/numa_maps
pipe Log tail -n200 /var/log/syslog | sort -Mr

После этого перезапустите top и нажмите сочетание клавиш Shift+y.

Утилита попросит ввести PID процесса, который надо инспектировать. После этого откроется новое псевдоокно в котором можно выбрать три вкладки:

Для выбора вкладки нажмите Enter. Затем можете просматривать нужные данные, чтобы вернуться обратно ещё раз нажмите Enter.

Выводы

Из этой статьи вы узнали что из себя представляет команда top Linux. Как видите, утилита довольно мощная, хотя при первом запуске сложно подумать что она столько всего может и будет выглядеть настолько красиво если её настроить. Но я всё же привык к старой доброй ps. А какой утилитой пользуетесь вы для просмотра запущенных процессов? Напишите в комментариях!

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

  • Spore для mac os
  • Split screen mac os
  • Splash pro mac os
  • Splan для mac os
  • Spire для mac os x