Linux top sort by swap

Linux Find Out What Process Are Using Swap Space

T he top and free command display the total amount of free and used physical and swap memory in the server. How do I determine which process is using swap space under Linux operating systems? How do I find out swap space usage of a particular process such as memcached?

Tutorial details
Difficulty level Intermediate
Root privileges Yes
Requirements Linux with smem and /proc
Est. reading time 6 minutes

You can use the any one of the following techniques but keep in mind that because of shared pages, there is no reliable way to get this information [ 1]

  1. /proc/meminfo – This file reports statistics about memory usage on the system. It is used by free to report the amount of free and used memory (both physical and swap) on the system as well as the shared memory and buffers used by the kernel. You can also use free, vmstat and other tools to find out the same information.
  2. /proc/$/smaps , /proc/$/status , and /proc/$/stat : Use these files to find information about memory, pages and swap used by each process using its PID.
  3. smem – This command (python script) reports memory usage with shared memory divided proportionally.

Finding out process ID and swap usage

  • No ads and tracking
  • In-depth guides for developers and sysadmins at Opensourceflare✨
  • Join my Patreon to support independent content creators and start reading latest guides:
    • How to set up Redis sentinel cluster on Ubuntu or Debian Linux
    • How To Set Up SSH Keys With YubiKey as two-factor authentication (U2F/FIDO2)
    • How to set up Mariadb Galera cluster on Ubuntu or Debian Linux
    • A podman tutorial for beginners – part I (run Linux containers without Docker and in daemonless mode)
    • How to protect Linux against rogue USB devices using USBGuard

Join Patreon

To see swap space used by memcached (PID # 48440), enter (number #2):
# grep —color VmSwap /proc/48440/status
Sample outputs (number #4):

Or the following awk command (number #3):
# awk ‘/VmSwap/‘ /proc/48440/status
Sample outputs (number #4):

Fig.01: Finding out memcached process swap usage on Linux

Listing all process swap space usage

Type the following bash for loop command to see swap space usage per process:

Type the following command to sort out output:

Say hello to smem

The smem command reports physical memory usage, taking shared memory pages into account. Unshared memory is reported as the USS (Unique Set Size). Shared memory is divided evenly among the processes sharing that memory. The unshared memory (USS) plus a process’s proportion of shared memory is reported as the PSS (Proportional Set Size). The USS and PSS only include physical memory usage. They do not include memory that has been swapped out to disk. Memory can be reported by process, by user, by mapping, or system-wide. Both text mode and graphical output are available.

Installation

To install smem [ 2] type the following command under Debian / Ubuntu Linux:
$ sudo apt-get install smem
RHEL / CentOS Linux user type the following command:
$ wget https://www.selenic.com/smem/download/smem-1.4.tar.gz
$ tar xvf smem-1.4.tar.gz
# cp /tmp/smem-1.2/smem /usr/local/bin/
# chmod +x /usr/local/bin/smem

How do I use smem command?

To see basic process information, enter:
# smem
Sample outputs:

To see library-oriented view, enter:
# smem -m
To see user-oriented view, enter:
# smem -u
Sample outputs:

To see systemwide memory usage summary pass the -w option:
# smem -w
Sample outputs:

To see system view
# smem -R 8G -K /path/to/vmlinux/on/disk -w
To see totals and percentages, enter:
# smem -t -p
Sample outputs:

Options

Type the following command to see all other supported options:
# smem —help
Sample outputs:

A note about top command

Type the top command as root:
# top
To sort process as per swap page usage (SWAP = VIRT – RES) type capital O (option) followed by p (small p ) and [Enter] key:

Fig.02 top command – sored process by swap usage (click to enlarge)

References:

It is not possible to get the exact size of used swap space of a process. The top command fakes this information by making SWAP = VIRT – RES, but that is not a good metric, because other stuff such as video memory counts on VIRT as well (for example: top says my X process is using 81M of swap, but it also reports my system as a whole is using only 2M of swap. Therefore, I will not add a similar Swap column to htop because I don’t know a reliable way to get this information (actually, I don’t think it’s possible to get an exact number, because of shared pages).

🐧 Get the latest tutorials on Linux, Open Source & DevOps via

Источник

linux-notes.org

Утилиты top/htop и free отображают общее количество свободной, занятой физической памяти, а так же SWAP на сервере. Как определить, какой процесс использует пространство подкачки в Unix/Linux?

Вы можете использовать любой из следующих методов (но имейте в виду, что из-за общих страниц, нет никакого надежного способа получить данную информацию):

  • Используйте «/proc/meminfo» – Утилита, которая покажет общие сведения об RAM/SWAP. Данная статистика используется с утилитой «free», чтобы сообщить количество свободной и используемой памяти (как физической, так и swap) в системе, а также общей памяти и буферов используемых ядром. Вы также можете использовать free, vmstat и другие инструменты чтобы узнать ту же информацию.
  • «/proc/$/smaps», «/proc/$/status» и «/proc/$/stat» — Используя эти утилиты, чтобы найти информацию о памяти, страницах и swap-е используемых каждым процессом( зная PID процесса).
  • Используя smem.

Какие процессы заняли SWAP в Unix/Linux

Можно добиться желаемого результата несколькими способами.

Находим идентификатор процесса (PID):

Альтернатива, использовать «pgrep» команду для поиска PID-а:

И так, одна из команд выведет подобный результат:

Чтобы увидеть сколько использует swap служба memcached можно следующим образом:

И так, я показал сколько используется swap-а по указанному процессу ( memcached), но это не совсем удобно т.к имеется и ряд других процессов которые могут или использует swap, по этому — я сейчас покажу как можно красиво использовать данные утилиты для проверки.

Введите следующую команду в терменале, чтобы увидеть использование свопа по каждому процессу:

Небольшая оптимизация — используем сортировку и вывод частями:

Нашел небольшой bash скрипт:

И прописываем в него:

Запускайте его от суперпользователя для того, чтобы иметь возможность собрать точные цифры. Скрипт будет работать и от любого другого пользователя в системе, но если у него не поулчится получить доступ к процессу которые не принадлежат вашему пользователю, то он не сможет показать данные по процессам. Например, чтобы найти процесс с большим использованием свопа, просто запустите скрипт вот так:

Данные скрипт покажет все процессы которые используют или не используют SWAP, но можно убрать ненужно ( отображать только те процессы, которые имеют обращение к свапу):

Выход будет в килобайтах.

Вот уже готовый, упрощенный скрипт:

Хочу показать отличную вариацию данного скрипта ( на мой взгляд — одно из самых лучших):

Вот еще один вариант использования:

Они все работают и их можно использовать для своих нужд. А можно использовать утилиту smem. О ней можно прочитать тут:

А на этом, у меня все! Статья «Какие процессы заняли SWAP в Unix/Linux» завершена.

Источник

Как быстро выяснить какой процесс в Linux использует пространство подкачки (swap)

Заметка очень короткая и призвана администраторам помочь быстро найти процессы которые максимально используют пространство swap. Что делать с этими процессами — это уже отдельная тема, главное найти кто потребляет swap.

Исходные данные: ОС Oracle Linux 7;
Задач: Найти потребителя SWAP

Типичная ситуация на сервере с системой мониторинга — это аларм вида:
prod-srv-01 Low free swap space (free: 0.15 %, threshold: 10%, alert started: 8.79 %)

Вначале немного теории, о том как получить информацию о распределении памяти процессами в Linux.

  • /proc/meminfo — псевдо-файл который сообщает статистику об использовании памяти в системе. Вы также можете использовать утилиты free, vmstat и другие инструменты, чтобы узнать ту же информацию;
  • /proc/$/smaps, /proc/$/status и /proc/$/stat — используйте эти псевдо-файлы для поиска информации о потреблении памяти каждым процессом ($ замените на номер процесса);
  • smem — утилита (скрипт python), которая поможет вывести информацию в более удобном виде;

    Теперь идем на сервер и смотрим:

    Мы видим, что swap заполнен на 100% — это плохо.

    Попробуем быстро выяснить кто основной потребитель, для этого обратимся к /proc/*/status
    Ниже простой сценарий на bash который выдаст нам список потребителей swap:

    Результат будет длинным, я покажу только TOP потребителей:

    Мы видим, что основной потребитель — это процесс ora_j001_bs. На сервере установлен Oracle и один из процессов потребляет swap.
    На втором месте мы видим процесс rsyslogd — думаю он в представлении не нуждается.

    Если на потребителя №1 мы не можем повлиять быстро, то на потребителя №2 (rsyslogd) можем — это попытаться его перазапустить.

    Выполняем перезапуск rsyslogd:

    И смотрим состояние swap:

    Мы видим, что стало доступно 1.6 GB, а это уже более 30% от размера swap, что вполне нас должно устроить на первое время.

    На этом все, до скорых встреч. Если у Вас возникли вопросы или Вы хотите чтобы я помог Вам, то Вы всегда можете связаться со мной разными доступными способами.

    Источник

    8 Useful Commands to Monitor Swap Space Usage in Linux

    Memory management is an essential aspect of every System Administrator to improve the performance of a Linux system. It is always a good practice to monitor swap space usage in Linux to ensure that your system operates relative to its memory demands.

    8 Commands to Check Linux Swap Space Usage

    Therefore in this article we are going to look at ways to monitor swap space usage in a Linux systems.

    What is Swap space?

    Swap space is a restricted amount of physical memory that is allocated for use by the operating system when available memory has been fully utilized. It is memory management that involves swapping sections of memory to and from physical storage.

    On most distributions of Linux, it is recommended that you set swap space when installing the operating system. The amount of swap space you can set for your Linux system may depend on the architecture and kernel version.

    How do I check Swap space usage in Linux?

    We shall look at different commands and tools that can help you to monitor your swap space usage in your Linux systems as follows:

    1. Using the swapon Command

    This command helps you to specify the devices on which paging and swapping will be done and we shall look at few important options.

    To view all devices marked as swap in the /etc/fstab file you can use the —all option. Though devices that are already working as swap space are skipped.

    If you want to view a summary of swap space usage by device, use the —summary option as follows.

    Use —help option to view help information or open the manpage for more usage options.

    2. Using /proc/swaps which is equivalent to swapon

    The /proc filesystem is a very special virtual filesystem in Linux. It is also referred to as a process information pseudo-file system.

    It actually does not contain ‘real’ files but runtime system information, for example system memory, devices mounted, hardware configuration and many more. Therefore you can also refer to it as a control and information base for the kernel.

    To understand more about this filesystem read our article: Understanding /proc File System in Linux.

    To check swap usage information, you can view the /proc/swaps file using the cat utility.

    3. Using ‘free’ Command

    The free command is used to display the amount of free and used system memory. Using the free command with -h option, which displays output in a human readable format.

    From the output above, you can see that the last line provides information about the system swap space. For more usage and examples of free command can be found at: 10 free Command to Check Memory Usage in Linux.

    4. Using top Command

    The top command displays processor activity of your Linux system, tasks managed by kernel in real-time. To understand how the top command works, read this article: 12 top Commands to Check Linux Process Activity

    To check swap space usage with the help of ‘top’ command run the following command.

    Check Swap Space Using Top Command

    5. Using atop Command

    The atop command is a system monitor that reports about activities of various processes. But importantly it also shows information about free and used memory space.

    Atop Check Swap Usage

    To know more about how to install and use atop command in Linux, read this article: Monitor Logging Activity of Linux System Processes

    6. Using htop Command

    The htop command is used to view processes in an interactive mode and also displays information about memory usage.

    Htop Check Swap Usage

    For more information regarding installation and usage about htop command, read this article: Htop – Interactive Linux Process Monitoring

    7. Using the Glances Command

    This is a cross-platform system monitoring tool that displays information about running processes, cpu load, storage space usage, memory usage, swap space usage and many more.

    Glances Check Swap Usage

    For more information regarding installation and usage about glances command, read this article: Glances – An Advanced Real Time Linux System Monitoring Tool

    8. Using the vmstat Command

    This command is used to display information about virtual memory statistics. To install vmstat on your Linux system, you can read the article below and see more usage examples:

    VmStat Check Swap Usage

    You need to take note of the following in the swap field from the output of this command.

    1. si: Amount of memory swapped in from disk (s).
    2. so: Amount of memory swapped to disk (s).

    Summary

    These are easy methods one can use and follow to monitor swap space usage and hope this article was helpful. In case you need help or want to add any information relating to memory management in Linux systems, please post a comment. Stay connected to Tecmint.

    If You Appreciate What We Do Here On TecMint, You Should Consider:

    TecMint is the fastest growing and most trusted community site for any kind of Linux Articles, Guides and Books on the web. Millions of people visit TecMint! to search or browse the thousands of published articles available FREELY to all.

    If you like what you are reading, please consider buying us a coffee ( or 2 ) as a token of appreciation.

    We are thankful for your never ending support.

    Источник

    Читайте также:  1с постгрес linux установить
  • Оцените статью