Добавить в корзинуПозвонить
Найти в Дзене
Сисадмин

kswapd0 грузит процессор. Почему так происходит и как это исправить?

Братишка, держись — ты сейчас узнаешь, кто реально тебе гадит в жизнь, пока ты винишь Chrome и frontend-разработчиков. kswapd0 — это не вирус, не шпион, не майнер, хотя ведёт себя подозрительно.
Это — часть ядра Linux, отвечающая за управление виртуальной памятью. Проще говоря: "О, у тебя закончилась оперативка? Дай-ка я это добро свопну на диск, а то слишком ты тут разгулялся, царь ресурсов!" top или htop Если видишь, что kswapd0 висит на вершине, как победитель битвы за ресурсы — поздравляю, ты нашёл виновного. Проверь, сколько у тебя свободной оперативки: free -h Если "available" меньше твоей веры в стабильный продакшен — значит, память в истерике. Если ты на виртуалке с 1 ГБ RAM и запускаешь на ней docker, mysql, zabbix, grafana и Visual Studio Code через Wine...
Ну ты понял. Решение: добавить RAM. Иногда это самое логичное и простое. Но есть еще несколько способов, дальше читай. sync; echo 3 > /proc/sys/vm/drop_caches ⚠️ Это временно освободит память, не решает корень зла, но да
Оглавление
kswapd0 грузит процессор
kswapd0 грузит процессор

Братишка, держись — ты сейчас узнаешь, кто реально тебе гадит в жизнь, пока ты винишь Chrome и frontend-разработчиков.

Что такое kswapd0 и почему он жрёт CPU?

kswapd0 — это не вирус, не шпион, не майнер, хотя ведёт себя подозрительно.

Это — часть ядра Linux, отвечающая за управление виртуальной памятью.

Проще говоря:

"О, у тебя закончилась оперативка? Дай-ка я это добро свопну на диск, а то слишком ты тут разгулялся, царь ресурсов!"

Что он делает, по-человечески:

  1. Ты запускаешь миллион процессов, контейнеров, табов в Firefox, скриптов в Python с pandas…
  2. Оперативка заканчивается — и kswapd0 такой:

    "Ну, всё, пошло-поехало..."

    И начинает перекидывать данные из RAM в SWAP (то есть в файл/раздел на диске).
  3. Это медленно, больно, ресурсоёмко, особенно если своп на HDD (а не на SSD или NVMe, как у прошаренных пацанов с района).

Как понять, что виноват именно он?

  1. Глянь, чем занят проц:
top

или

htop

Если видишь, что kswapd0 висит на вершине, как победитель битвы за ресурсы — поздравляю, ты нашёл виновного.

Проверь, сколько у тебя свободной оперативки:

free -h

Если "available" меньше твоей веры в стабильный продакшен — значит, память в истерике.

Как починить и успокоить kswapd0

‍Способ 1: Добавь оперативки, брат

Если ты на виртуалке с 1 ГБ RAM и запускаешь на ней docker, mysql, zabbix, grafana и Visual Studio Code через Wine...

Ну ты понял.

Решение: добавить RAM. Иногда это самое логичное и простое. Но есть еще несколько способов, дальше читай.

Способ 2: Очисти кеш, убери тяжёлое

sync; echo 3 > /proc/sys/vm/drop_caches

⚠️ Это временно освободит память, не решает корень зла, но даст отдышаться.

Способ 3: Отключи своп (если у тебя много RAM)

sudo swapoff -a

🧠 Только если ты знаешь, что делаешь (не рекомендую делать это в проде).

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

Как босс на митапе, когда ты опоздал. Ну и последствия тоже могут быть, например, при нехватке памяти может упасть СУБД, веб-сервер или еще какой-нибудь важный процесс, так что делай это только в некритичной среде.

Способ 4: Уменьши свопность

Это настройка, как сильно Linux любит свопать. По умолчанию она ~60 (то есть: "Я ОБОЖАЮ СВОПАТЬ!").

Снизь это желание, пусть остынет:

sudo sysctl vm.swappiness=10

Чтобы сделать навсегда:

echo 'vm.swappiness=10' | sudo tee -a /etc/sysctl.conf

📉 Чем ниже значение — тем меньше свопа, и тем больше Linux держит в RAM.

💡 Оптимально:
10-20 для десктопа, 60 — для серверов, где стабильность важнее.

Способ 5: Найди того, кто жрёт память, и накажи

ps aux --sort=-%mem | head -n 10

Если в топе Python с чем-то вроде train_model.py — кто-то тут решил обучить ИИ и не сказал тебе. Пущай отдохнет:

kill -9 <PID>

Хардкор для параноиков

Проверь, где твой своп живёт:

sudo swapon --show

Если он на медленном HDD — всё, пиши пропало.

Можно создать
swap на SSD или вообще zram (сжатый swap в RAM).

Хочешь жить красиво? Врубай zram:

sudo apt install zram-tools
sudo systemctl enable --now zramswap

💨 Быстрее, чем обычный swap, и не насилует диск.

В двух словах, если по-мемному:

  • kswapd0 — такой системный "сантехник", который бегает по серверу с ведром, тушит утечку памяти.
  • Но если ты весь дом залил RAM’ой — он один не справится.
  • Поэтому либо освободи память, либо дай ему помощников: больше RAM или zram.
  • И не запускай 17 контейнеров на 512МБ оперативки. Мы ж цивилизованные.