How to Identify Which Process Is Using Swap in Linux
Safe swap diagnostics in Ubuntu: check active swap regions, read VmSwap for processes, and interpret results correctly without clearing memory.

In this article
Swap занят, но сервер работает нормально — это возможно. Linux не обязан немедленно возвращать редко используемые страницы из подкачки в RAM. Сам факт ненулевого swap не доказывает нехватку памяти и не требует отключать подкачку. Сначала нужно понять общий объём и процессы, у которых ядро учитывает выгруженные страницы.
Руководство применимо к Ubuntu 24.04 LTS и другим современным Linux с файловой системой procfs. Команды только читают состояние. Они не очищают swap, не перезапускают службы и не меняют параметры ядра. Проверено 25 сентября 2026 года по Linux manual pages и справке smem. Команды swapon и чтения VmSwap фактически выполнены в изолированной Ubuntu 24.04.3 LTS с ядром 6.18.44. Активного swap и установленного smem на стенде не было, поэтому для них проверены только пустой результат и доступность, а синтаксис сортировки smem сверен с документацией.
Проверьте, включён ли swap
swapon --show --bytes
Команда swapon показывает активные файлы и разделы подкачки. Ключ --bytes выводит размеры в байтах и упрощает машинное сравнение. Если таблица пуста, активной области подкачки нет; искать процессы с использованным swap в этот момент бессмысленно.
Если swap включён, обратите внимание на общий размер и использованный объём. Это только отправная точка: число не показывает, когда страницы попали в подкачку и испытывает ли система давление памяти сейчас.
Посмотрите поле VmSwap у одного процесса
Ядро публикует состояние процесса в файле /proc/PID/status. Вместо PID подставляют числовой идентификатор существующего процесса.
grep '^VmSwap:' /proc/PID/status
Поле VmSwap показывает объём анонимных приватных данных процесса, учтённых в swap. Значение приводится в килобайтах. Файл может быть недоступен обычному пользователю из-за прав или настройки hidepid у procfs; это не причина ослаблять защиту.
Соберите процессы с ненулевым VmSwap
Если в системе уже установлен smem, он собирает значения по процессам и сортирует их по объёму подкачки. Сначала убедитесь, что команда доступна; устанавливать новый пакет на перегруженном сервере только ради срочной диагностики не обязательно.
command -v smem
smem -rs swap -k
Ключ -r включает обратную сортировку, -s выбирает поле swap, а -k добавляет удобные суффиксы единиц. Процессы других пользователей могут быть не видны полностью; при необходимости диагностику проводит администратор с разрешёнными правами. Если smem отсутствует, проверяйте выбранные PID через поле VmSwap или используйте штатный мониторинг сервера.
Как читать результат
Наблюдение | Что это может означать | Следующая проверка |
|---|---|---|
Swap занят, список стабилен, ошибок нет | Старые редко используемые страницы остались в подкачке | Смотреть доступную RAM и текущую активность подкачки |
Значения быстро растут у одного процесса | Процесс увеличивает память или испытывает давление | Проверить RSS, лимиты и журналы приложения |
Много процессов с небольшими значениями | Фоновая выгрузка неактивных страниц | Оценить систему целиком, не завершать процессы по списку |
Swap заполнен и сайт замедляется | Возможна нехватка памяти или постоянный обмен с диском | Проверить память, диск, OOM и динамику, затем искать причину |
Поле VmSwap не равно всей виртуальной памяти процесса и не заменяет анализ RSS, cgroup-лимитов и общей активности ввода-вывода. Сумма по процессам также может не совпасть с общим использованием swap из-за особенностей учёта и уже завершившихся процессов.
Чего не делать во время диагностики
Не отключайте swap только ради получения нуля: возврат страниц потребует RAM и может привести к нехватке памяти.
Не завершайте процесс лишь потому, что он стоит первым в списке. Важны динамика, роль процесса и симптомы приложения.
Не меняйте swappiness по одной фотографии состояния. Сначала соберите наблюдения во времени и определите реальное узкое место.
Не запускайте тяжёлые обходы procfs слишком часто на большом сервере; для постоянного мониторинга используйте штатную систему метрик.
Остановите самостоятельную диагностику и привлеките администратора, если одновременно растёт swap, система перестаёт отвечать, в журнале появляются события OOM или неизвестно, какие службы можно безопасно ограничить. В таком состоянии попытка «быстро очистить память» способна усилить простой.
Swap is in use, yet the server runs normally—this is possible. Linux is not required to immediately return rarely used pages from swap to RAM. The mere fact of non-zero swap usage does not prove memory shortage and does not require disabling swap. First, you must understand the total volume and identify the processes for which the kernel accounts for swapped-out pages.
This guide applies to Ubuntu 24.04 LTS and other modern Linux systems with the procfs file system. The commands only read the system state. They do not clear swap, restart services, or change kernel parameters. Verified on September 25, 2026, against Linux manual pages and smem documentation. The swapon command and VmSwap reads were effectively executed in an isolated Ubuntu 24.04.3 LTS environment with kernel 6.18.44. Since no active swap or installed smem existed on the test stand, only the empty result and availability were verified for them, and the smem sorting syntax was cross-checked with the documentation.
Check if swap is enabled
swapon --show --bytes
The command swapon displays active files and swap partitions. The key --bytes outputs sizes in bytes and simplifies machine comparison. If the table is empty, there is no active swap area; searching for processes with used swap at this moment is pointless.
If swap is enabled, note the total size and the used volume. This is only a starting point: the numbers do not show when pages were swapped out or whether the system is currently under memory pressure.
View the VmSwap field for a single process
The kernel publishes the process state in the file /proc/PID/status. Replace PID with the numeric identifier of an existing process.
grep '^VmSwap:' /proc/PID/status
The field VmSwap shows the volume of anonymous private process data accounted for in swap. The value is given in kilobytes. The file may be inaccessible to a regular user due to permissions or hidepid settings in procfs; this is not a reason to weaken protection.
Collect processes with non-zero VmSwap
If smem is already installed on the system, it collects values per process and sorts them by swap volume. First, ensure the command is available; installing a new package on an overloaded server solely for urgent diagnostics is not necessary.
command -v smem
smem -rs swap -k
The key -r enables reverse sorting, -s selects the field swap, and -k adds convenient unit suffixes. Processes belonging to other users may not be fully visible; if necessary, an administrator with authorized rights must perform diagnostics. If smem is missing, check the selected PID via the field VmSwap or use the server's standard monitoring.
How to read the result
Observation | What this may mean | Next check |
|---|---|---|
Swap is occupied, the list is stable, no errors | Old, rarely used pages remain in swap | View available RAM and current swap activity |
Values rise rapidly in a single process | The process is consuming memory or under pressure | Check RSS, limits, and application logs |
Many processes with small values | Background unloading of inactive pages | Evaluate the system as a whole; do not terminate processes individually |
Swap is full and the site is slowing down | Possible memory shortage or constant disk swapping | Check memory, disk, OOM, and dynamic behavior, then identify the root cause. |
The VmSwap field does not equal the process's total virtual memory and does not replace analysis of RSS, cgroup limits, and overall I/O activity. The sum across processes may also not match total swap usage due to accounting specifics and already terminated processes.
What not to do during diagnostics
Do not disable swap just to achieve a zero value: returning pages requires RAM and can lead to memory shortages.
Do not terminate a process simply because it appears first in the list. Dynamics, the process role, and application symptoms are what matter.
Do not change swappiness based on a single snapshot of the system state. First, gather observations over time and identify the actual bottleneck.
Do not run heavy procfs traversals too frequently on a large server; for continuous monitoring, use the standard metrics system.
Stop self-diagnosis and involve an administrator if swap is growing simultaneously, the system becomes unresponsive, OOM events appear in the log, or it is unknown which services can be safely limited. In such a state, an attempt to "quickly clear memory" can worsen downtime.

Discussion 0
Share your experience and ask questions. Comments without links appear after editorial review.
No comments yet. Start the discussion.