Kswapd0 грузит систему: cpu 100% io 100%. (Ubuntu)
Содержание
Kswapd0 занимает много процессора — Yodo.im
kswapd0 работает на 99,9% одного процессора, но на самом деле вообще не переключается
Для меня это иногда случается в Ubuntu 14.04 с ядром 3.19.0-50-generic (и более ранними версиями), работающим на виртуальной машине VMware. Я понятия не имею, из-за чего это появилось, но это происходит во время простоя.
top
показывать:
# toptop - 09:49:35 up 5 days, 18:35, 1 user, load average: 1.00, 1.00, 0.99Tasks: 219 total, 2 running, 217 sleeping, 0 stopped, 0 zombie%Cpu(s): 0.0 us, 25.0 sy, 0.0 ni, 74.7 id, 0.2 wa, 0.0 hi, 0.1 si, 0.0 stKiB Mem: 3028784 total, 1874468 used, 1154316 free, 1010276 buffersKiB Swap: 15624188 total, 3032 used, 15621156 free. 234928 cached Mem PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 52 root 20 0 0 0 0 R 99.7 0.0 122:15.21 kswapd0 3 root 20 0 0 0 0 S 0.3 0.0 0:29. 86 ksoftirqd/0 7 root 20 0 0 0 0 S 0.3 0.0 9:49.47 rcu_sched
Временное решение
перезагрузка решила проблему — временно.
следуя ответу на ошибка сервера (kswapd часто использует 100% ЦП при использовании подкачки) там, где те же настройки в моей системе:
# cat /proc/sys/vm/swappiness60# cat /proc/sys/vm/vfs_cache_pressure100# cat /sys/kernel/mm/transparent_hugepage/enabled[always] madvise never
решение действительно работало echo 1 > /proc/sys/vm/drop_caches
как пользователь root:
# cat /proc/sys/vm/drop_caches0# echo 1 > /proc/sys/vm/drop_caches# cat /proc/sys/vm/drop_caches1
Или, как указал около theTuxRacer (спасибо!), используйте следующую команду, если вы не вошли в систему как root:
echo 1 | sudo tee /proc/sys/vm/drop_caches
теперь все в порядке:
# toptop - 10:08:58 up 5 days, 18:55, 1 user, load average: 0.72, 0.95, 0.98Tasks: 220 total, 1 running, 219 sleeping, 0 stopped, 0 zombie%Cpu(s): 0. 0 us, 0.2 sy, 0.0 ni, 99.8 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 stKiB Mem: 3028784 total, 681704 used, 2347080 free, 2916 buffersKiB Swap: 15624188 total, 3032 used, 15621156 free. 81924 cached Mem PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 9 root 20 0 0 0 0 S 0.3 0.0 14:10.40 rcuos/0 1 root 20 0 45652 8124 2888 S 0.0 0.3 1:54.98 init
Постоянное решение (должно быть найдено)?
но поскольку фактическая причина еще не известна, и я не нашел ни одного подходящего объяснения в сети, это не постоянное решение. На самом деле, выбранный ответ может быть, это постоянное решение. Я просто хотел добавить это для дальнейшего использования, поскольку перезагрузка (чтобы заставить sysctl вступить в силу) не всегда возможна.
Другим решением может быть установка THP на либо madvice
или never
(см. пойджес комментарий к его ответ, Как мне изменить “/sys/kernel/mm/transparent_hugepage/enabled” и упомянутое руководство MongoDB по Отключить Прозрачные Огромные страницы (THP))
задание cron
я настроил следующий пакет в качестве задания cron в качестве «постоянного» решения:
#!/bin/bash# Rev 2: Use ps instead of top## run as cron, thus no $PATH, thus need to define all absolute pathscpu=$(/usr/bin/printf %. 0f $(/bin/ps -o pcpu= -C kswapd0))[[ -n $cpu ]] \&& (( $cpu >= 90 )) \&& echo 1 > /proc/sys/vm/drop_caches \&& echo "$$ $0: cache dropped (kswapd0 %CPU=$cpu)" >&2 \&& exit 1exit 0
вызванный из root@localhost:~# crontab -e
с
# m h dom mon dow command * * * * * /bin/bash /path/to/batch/drop_caches.sh >> /var/log/syslog 2>&1
Примечание: Приведенный выше сценарий задания cron был адаптирован для включения Фредрик Эрландссон’с предложение: Гораздо более простой и эффективный способ определения загрузки процессора kswapd0. Спасибо!
16.0414.04менять
Нагрузка процессора Linux
Содержание
Все инструкции
В Linux потребление ресурсов CPU, с сортировкой по наибольшей загрузке, можно посмотреть при помощи двух команд: ps и top.
Важный нюанс: Значение в столбце «CPU» в обоих командах считается от загрузки одного ядра процессора. Таким образом сумма процентов на многоядерных машинах будет больше 100%. К примеру для четырехядерного процессора суммарный процент потребления всех процессов не может превышать 400%.
Рассмотрим каждую из команд подробней.
Команда ps
Для запуска введите в консоли ОС команду:
ps -aux --sort -pcpu
Пример вывода команды:
$ ps -aux --sort -rss USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND user 30799 51.2 8.1 2733764 285136 ? Rl 09:25 5:30 /usr/lib/chromium-browser/chromium-browser --ppapi-flash-path=/usr/lib/pepperflashplugin-nonfree/libpepflashplayer.so --ppap user 2800 0.1 6.6 9972812 234184 ? Sl окт31 1:26 /usr/bin/plasmashell --shut-up user 31308 2.4 5.3 1767496 188672 ? Sl 09:26 0:13 /usr/lib/chromium-browser/chromium-browser --type=renderer --enable-pinch --field-trial-handle=7228759356551874141,180166971 user 31011 3. 9 5.3 1793296 186812 ? Sl 09:25 0:25 /usr/lib/chromium-browser/chromium-browser --type=renderer --enable-pinch --field-trial-handle=7228759356551874141,180166971 user 31369 5.5 4.8 1378568 171328 ? Sl 09:28 0:23 /usr/lib/libreoffice/program/soffice.bin --writer --splash-pipe=5 user 14442 12.1 4.2 1050808 150148 ? Sl 01:19 60:04 /usr/lib/x86_64-linux-gnu/libexec/kscreenlocker_greet --graceTime 5000 --ksldfd 26 user 31111 0.9 3.8 1708496 134564 ? Sl 09:25 0:06 /usr/lib/chromium-browser/chromium-browser --type=renderer --enable-pinch --field-trial-handle=7228759356551874141,180166971 user 1225 0.0 3.7 3639148 132092 ? Sl окт31 1:00 /usr/bin/plasmashell --shut-up user 31078 0.6 3.7 1724480 130724 ? Sl 09:25 0:03 /usr/lib/chromium-browser/chromium-browser --type=renderer --enable-pinch --field-trial-handle=7228759356551874141,180166971 user 30986 0.7 3.3 1717860 117660 ? Sl 09:25 0:04 /usr/lib/chromium-browser/chromium-browser --type=renderer --enable-pinch --field-trial-handle=7228759356551874141,180166971 user 1216 1. 7 3.2 3271220 113736 ? Sl окт31 20:36 kwin_x11
Важными столбцами являются:
- USER Пользователь, от имени которого работает процесс
- PID Идентификатор процесса
- %CPU Процент загрузки ядра
Согласно данному выводу можно понять, что экземпляр программы dd с PID=31712 практически полностью использует одно ядро процессора.
Команда top
Также загрузку процессора можно посмотреть в интерактивном режиме при помощи команды top. Для запуска введите в консоли ОС команду:
top
Пример вывода команды:
top - 15:13:56 up 8 days, 5:18, 4 users, load average: 0,01, 0,04, 0,05 Tasks: 124 total, 1 running, 123 sleeping, 0 stopped, 0 zombie %Cpu(s): 0,0 us, 0,0 sy, 0,0 ni, 99,9 id, 0,1 wa, 0,0 hi, 0,0 si, 0,0 st KiB Mem: 2060916 total, 1714780 used, 346136 free, 184580 buffers KiB Swap: 901116 total, 0 used, 901116 free, 999472 cached PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 22684 root 20 0 24768 1476 1016 R 0,3 0,1 0:00. 01 top 1 root 20 0 15444 756 612 S 0,0 0,0 0:08.79 init 2 root 20 0 0 0 0 S 0,0 0,0 0:00.00 kthreadd 3 root 20 0 0 0 0 S 0,0 0,0 1:08.03 ksoftirqd/0 5 root 20 0 0 0 0 S 0,0 0,0 0:00.00 kworker/u:0 6 root rt 0 0 0 0 S 0,0 0,0 0:00.77 migration/0 7 root rt 0 0 0 0 S 0,0 0,0 0:02.81 watchdog/0 8 root rt 0 0 0 0 S 0,0 0,0 0:00.77 migration/1 10 root 20 0 0 0 0 S 0,0 0,0 0:04.40 ksoftirqd/1 12 root rt 0 0 0 0 S 0,0 0,0 0:02.40 watchdog/1 13 root rt 0 0 0 0 S 0,0 0,0 0:01.50 migration/2 15 root 20 0 0 0 0 S 0,0 0,0 0:04.33 ksoftirqd/2 16 root rt 0 0 0 0 S 0,0 0,0 0:02.26 watchdog/2 17 root rt 0 0 0 0 S 0,0 0,0 0:00.49 migration/3 19 root 20 0 0 0 0 S 0,0 0,0 0:03. 73 ksoftirqd/3 20 root rt 0 0 0 0 S 0,0 0,0 0:02.21 watchdog/3 21 root 0 -20 0 0 0 S 0,0 0,0 0:00.00 cpuset 22 root 0 -20 0 0 0 S 0,0 0,0 0:00.00 khelper 23 root 20 0 0 0 0 S 0,0 0,0 0:00.00 kdevtmpfs 24 root 0 -20 0 0 0 S 0,0 0,0 0:00.00 netns 25 root 20 0 0 0 0 S 0,0 0,0 0:01.84 sync_supers 26 root 20 0 0 0 0 S 0,0 0,0 0:00.05 bdi-default 27 root 0 -20 0 0 0 S 0,0 0,0 0:00.00 kintegrityd 28 root 0 -20 0 0 0 S 0,0 0,0 0:00.00 kblockd 30 root 20 0 0 0 0 S 0,0 0,0 0:08.20 kworker/2:1 31 root 20 0 0 0 0 S 0,0 0,0 0:01.98 kworker/3:1 32 root 20 0 0 0 0 S 0,0 0,0 0:00.32 khungtaskd 33 root 20 0 0 0 0 S 0,0 0,0 0:00.00 kswapd0 34 root 25 5 0 0 0 S 0,0 0,0 0:00. 00 ksmd 35 root 39 19 0 0 0 S 0,0 0,0 0:00.00 khugepaged 36 root 20 0 0 0 0 S 0,0 0,0 0:00.00 fsnotify_mark 37 root 0 -20 0 0 0 S 0,0 0,0 0:00.00 crypto 103 root 0 -20 0 0 0 S 0,0 0,0 0:00.00 ata_sff 111 root 20 0 0 0 0 S 0,0 0,0 0:00.00 scsi_eh_0 114 root 20 0 0 0 0 S 0,0 0,0 0:00.01 scsi_eh_1 115 root 20 0 0 0 0 S 0,0 0,0 0:15.02 kworker/u:1 119 root 0 -20 0 0 0 S 0,0 0,0 0:00.00 mpt_poll_0 137 root 0 -20 0 0 0 S 0,0 0,0 0:00.00 mpt/0 165 root 20 0 0 0 0 S 0,0 0,0 0:00.00 scsi_eh_2 169 root 20 0 0 0 0 S 0,0 0,0 0:11.68 kworker/3:2 177 root 20 0 0 0 0 S 0,0 0,0 1:37.28 kworker/1:2 207 root 20 0 0 0 0 S 0,0 0,0 0:07.77 flush-8:0 213 root 20 0 0 0 0 S 0,0 0,0 0:21. 32 jbd2/sda1-8 214 root 0 -20 0 0 0 S 0,0 0,0 0:00.00 ext4-dio-unwrit 355 root 20 0 24140 1468 816 S 0,0 0,1 0:00.06 udevd 502 root 20 0 24100 1096 468 S 0,0 0,1 0:00.00 udevd 503 root 20 0 24100 1028 408 S 0,0 0,0 0:00.00 udevd 527 root 0 -20 0 0 0 S 0,0 0,0 0:00.00 kpsmoused 528 root 20 0 0 0 0 S 0,0 0,0 0:04.36 kworker/2:2 555 root 0 -20 0 0 0 S 0,0 0,0 0:00.00 ttm_swap 1842 root 20 0 152m 8928 4548 S 0,0 0,4 8:15.13 vmtoolsd 1885 root 20 0 60288 9396 6444 S 0,0 0,5 0:00.04 VGAuthService 1979 root 20 0 199m 5016 4128 S 0,0 0,2 3:19.79 ManagementAgent
Важными столбцами являются:
- USER Пользователь, от имени которого работает процесс
- PID Идентификатор процесса
- %CPU Процент загрузки ядра
Согласно данному выводу видно, что два процесса браузера Chromium используют по 40% возможностей одного из ядер процессора.
Тэги:
Debian, Cent OS, Ubuntu, FreeBSD
Для сброса пароля укажите Email, зарегистрированный в личном кабинете.
Email
Мы перезвоним в будни с 9:30 до 18:30(по московскому времени).
На указанный email будет отправлена ссылка для подтверждения эл.почты. После подтверждения эл.почты Вы получите доступ в личный кабинет.
Нажимая кнопку, Вы соглашаетесь с условиями договора-оферты, условиями лицензирования Microsoft и политикой обработки персональных данных.
Ядро
— kswapd0 использует много процессорного времени
kswapd0 работает на 99,9% одного ЦП, но на самом деле вообще не выполняет подкачку ) работает в VMware vm. Я понятия не имею, почему он появился, но он приходит во время простоя.
топ
показывает:
# топ топ - 09:49:35 вверх 5 дней, 18:35, 1 пользователь, средняя загрузка: 1.00, 1.00, 0.99 Задания: 219 всего, 2 бегущих, 217 спящих, 0 остановленных, 0 зомби %Cpu(s): 0,0 мкс, 25,0 си, 0,0 ни, 74,7 ид, 0,2 ва, 0,0 привет, 0,1 си, 0,0 ст KiB Mem: всего 3028784, 1874468 использовано, 1154316 свободно, 1010276 буферов KiB Swap: всего 15624188, 3032 использовано, 15621156 бесплатно. 234928 кэшированных памяти PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 52 корень 20 0 0 0 0 R 99,7 0,0 122:15,21 kswapd0 3 root 20 0 0 0 0 S 0,3 0,0 0:29,86 ksoftirqd/0 7 корень 20 0 0 0 0 S 0,3 0,0 9:49,47 rcu_sched
Временное решение
перезагрузка решила проблему — временно.
после ответа на serverfault (kswapd часто использует 100% ЦП, когда используется подкачка) там, где такие же настройки в моей системе:
# кошка /proc/sys/vm/swappiness 60 # кот /proc/sys/vm/vfs_cache_pressure 100 # кошка /sys/kernel/mm/transparent_hugepage/enabled [всегда] Мэдвайз никогда
решение действительно работало echo 1 > /proc/sys/vm/drop_caches
как пользователь root:
# cat /proc/sys/vm/drop_caches 0 # эхо 1 > /proc/sys/vm/drop_caches # кот /proc/sys/vm/drop_caches 1
Или, как указал theTuxRacer (спасибо!), используйте следующую команду, если вы не вошли в систему как root:
эхо 1 | sudo тройник /proc/sys/vm/drop_caches
теперь все в порядке:
# наверх топ - 10:08:58 вверх 5 дней, 18:55, 1 пользователь, средняя загрузка: 0,72, 0,95, 0,98 Задания: 220 всего, 1 бег, 219 сон, 0 остановлено, 0 зомби %Cpu(s): 0,0 мкс, 0,2 си, 0,0 ни, 99,8 ид, 0,0 ва, 0,0 привет, 0,0 си, 0,0 ст KiB Mem: всего 3028784, 681704 использовано, 2347080 свободно, 2916 буферов KiB Swap: всего 15624188, 3032 использовано, 15621156 бесплатно. 81924 кэшированная память PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 9корень 20 0 0 0 0 S 0,3 0,0 14:10,40 rcuos/0 1 корень 20 0 45652 8124 2888 S 0,0 0,3 1:54,98 инициализация
Постоянное решение (будет найдено)?
, но поскольку фактическая причина еще не известна, и я не нашел подходящего объяснения в сети, это не постоянное решение. На самом деле, выбранный ответ может быть постоянным решением. Я просто хотел добавить это для дальнейшего использования, поскольку перезагрузка (чтобы sysctl вступил в силу) не всегда возможна.
Другим решением может быть установка THP либо на madvice
, либо на , а не на
(см. комментарий Poige к его ответу, Как изменить «/sys/kernel/mm/transparent_hugepage/enabled» и упомянутое руководство MongoDB по отключению Transparent Huge Pages (THP))
cron job
я настроил следующий пакет как cron job в качестве «постоянного» решения:
#!/bin/bash # Rev 2: Используйте ps вместо top ## запускается как cron, поэтому нет $PATH, поэтому необходимо определить все абсолютные пути cpu=$(/usr/bin/printf %. 0f $(/bin/ps -o pcpu= -C kswapd0)) [[ -n $процессор ]] \ && (( $ ЦП >= 90 )) \ && эхо 1 > /proc/sys/vm/drop_caches \ && echo "$$ $0: кеш удален (kswapd0 %CPU=$cpu)" >&2 \ && выход 1 выход 0
вызывается с root@localhost:~# crontab -e
с командой
# m h dom mon dow * * * * * /bin/bash /path/to/batch/drop_caches.sh >> /var/log/syslog 2>&1
Примечание. Приведенный выше сценарий задания cron был адаптирован с учетом предложения Фредрика Эрландссона: Гораздо более простой и эффективный способ определения использования ЦП kswapd0. Спасибо!
16.0414.04swap
ЦП 100% с процессом kswapd0, хотя своп не требуется
спросил
Изменено
2 месяца назад
Просмотрено
17 тысяч раз
У меня есть небольшой виртуальный сервер (1 ГБ ОЗУ, 1 ядро), который хорошо служил мне, пока внезапно не начал сообщать о 100%-м использовании ЦП из-за kswapd0.
Потребление памяти составляет от 50% до 60%.
Я установил swappiness на 0, чтобы проверить, освобождает ли он ресурсы ЦП, но это не так.
У меня была эта проблема 16.04, а теперь 18.04 после обновления.
Как избавиться от этого процессора kswapd0?
- подкачка
- процессор
2
На случай, если кто-то столкнется с такой же проблемой — причиной было вредоносное ПО: Multios.Coinminer.Miner
.
kswapd0
был двоичным файлом, расположенным в /root/.configrc/a/kswapd0
.
Что вам нужно сделать, это:
- Очистить задания crontab, ссылающиеся на
/root/.configrc
- Очистить
ssh
ключи - Удалить
/корень/.configrc
4
Вредоносное ПО, работающее как гость
Если вы когда-либо включали гостевую учетную запись Ubuntu, а затем включали SSH, у вас может быть вредоносное ПО, работающее с использованием вашей гостевой учетной записи.
sudo найти /home -f kswapd0
Его можно найти в домашнем каталоге любого пользователя, например, /home/guest/.configrc/
Присоединение к любой сети (конференция, кафе, город), в которой есть скомпрометированная машина, или если вы используете службу, например ngrok
, несмотря на то, что в вашей системе открыт SSH, ваш компьютер подвергается этой простой гостевой уязвимости.
Поскольку привилегии никогда не повышались (гость не может записывать файлы вне /home/guest или sudo без пароля), я смог удалить гостевую учетную запись, и все работает нормально.
1
Актуально и для версии 20.04. Я поймал пользователя Steam, добавляющего контент на выделенный сервер KillingFloor2. Вот как это выглядит.
Результаты crontab -e
:
Результаты htop
:
Как решить эту проблему: 9000 5
- Я прокомментировал строки в cronjob
- Перезагрузил сервер (процессор успокоился)
- Удалена папка . configrc
- Проверил еще раз пути короны и очистил ее.
1
Я изменил swappiness с 60 на 0, но это не сработало. По ответу от Павла я нашел VIRT/RES/SHR
ненулевое значение для тех ресурсоемких задач kswapd0
, что предполагает наличие вредоносных программ.
Недавние обновления по аналогичным вопросам также показывают наличие вредоносных программ, которые скрываются под kswapd0
:
- kswapd0 занимает много ресурсов процессора
- kswapd0 в ubuntu тормозит систему
- 记录被kswapd0这个挖矿病毒折磨的一天
Ниже приведено мое решение. (Пожалуйста, используйте sudo
, killall
, rm -rf
осторожно)
- Найти подделку
kswapd0
.
$ sudo find /home -имя kswapd0 /home/пользователь/.configrc5/a/kswapd0
- Поскольку на новом сервере мало учетных записей, я дважды проверил, что никто не использует эту учетную запись, а папка
. configrc5
относительно новая (создана примерно за неделю).
$ sudo ls /home/user -al всего 224 drwxr-xr-x 18 пользователь пользователь 4096 四 10 23:56 . drwxr-xr-x 8 root root 4096 四 10 20:44 .. -rw-r--r-- 1 пользователь пользователь 220 一 13 09:10 .bash_logout -rw-r--r-- 1 пользователь пользователь 3771 一 13 09:10 .bashrc drwxrwxr-x 14 пользователь пользователь 4096 二 10 17:40 .cache drwx------ 12 пользователь пользователь 4096 二 24 15:09 .config drwxrwxr-x 4 пользователь пользователь 4096 四 4 00:48 .configrc5 ... -rw-r--r-- 1 root root 131953 二 26 23:34 plm -rw-r--r-- 1 root root 6300 二 26 23:34 plm2 -rw-r--r-- 1 пользователь пользователь 807 一 13 09:10 .profile drwxr-xr-x 2 пользователь пользователь 4096 一 13 09:34 Общедоступный drwx------ 3 пользователя пользователя 4096 二 10 16:09 snap drwx------ 2 пользователь пользователь 4096 в 10 23:56 .ssh -rw-r--r-- 1 пользователь пользователь 0 一 13 09:51 .sudo_as_admin_successful drwxr-xr-x 2 пользователь пользователь 4096 一 13 09:34 Шаблоны drwxr-xr-x 2 пользователь пользователь 4096 一 13 09:34 Видео
- (Можно пропустить) Я думал, что смогу раз и навсегда убить учетную запись
пользователя
и проверить, есть ли у нее привилегия sudo, ноsudo userdel userdel
отклонен. - Завершить все процессы, запущенные пользователем
$ sudo killall -u пользователь
- Удалить все файлы под
.configrc5
$ sudo rm -rf /home/user/.configrc5
- Снова проверьте
htop
, и никаких странных действий процессора больше не будет.
5
Зарегистрируйтесь или войдите в систему
Зарегистрируйтесь с помощью Google
Зарегистрироваться через Facebook
Зарегистрируйтесь, используя адрес электронной почты и пароль
Опубликовать как гость
Электронная почта
Обязательно, но не отображается
Опубликовать как гость
Электронная почта
Требуется, но не отображается
Нажимая «Опубликовать свой ответ», вы соглашаетесь с нашими условиями обслуживания и подтверждаете, что прочитали и поняли нашу политику конфиденциальности и кодекс поведения.