Я бачу kswapd з використанням 100% процесора ... як я можу сказати, від якого імені процес kswapd використовується настільки багато?
Я бачу kswapd з використанням 100% процесора ... як я можу сказати, від якого імені процес kswapd використовується настільки багато?
Відповіді:
kswapd керує свопом простором у відповідь на вимоги пам’яті, ніж фізично доступні всі процеси.
Це агностик процесу, його цікавить лише те, до яких сторінок можна отримати доступ і коли (це складніше, ніж це, звичайно, але для того, щоб все було просто, ми можемо також розглянути це таким чином).
Отже, справжнє питання полягає в тому, "які процеси мають найбільше навантаження на пам'ять, які викликають необхідність kswapd весь час створювати сторінки".
На це найлегше відповісти, використовуючи "верхній" та перехід на режим сортування пам'яті.
top
говорить мені про те, що в очікуванні IO часу не витрачається, і майже 100% часу витрачається в системі. Більш детальна інформація: kswapd часто використовує 100% CPU , коли своп знаходиться у використанні
Ви можете його скриптувати .. але ви також можете це зробити за допомогою верху
Запустіть верх, потім натисніть кнопку O, а потім p, тоді введіть
Тепер усі процеси сортуються за допомогою swap-використання, і ви можете побачити, які з них використовують
Якщо ви перебуваєте на Ubuntu 15.10 або новішої версії, це насправді може бути результатом помилки , особливо якщо у вашій системі є віртуальна машина, у якої відсутній розділ swap (наприклад, AWS EC2). Проблема існує і в інших дистрибутивах , але, як це писалося, незрозуміло, чи буде те саме виправлення універсальним.
Тимчасове вирішення:
sudo ln -s /dev/null /etc/udev/rules.d/40-vm-hotadd.rules
sudo reboot
Зауважте, що це відключить оперативну оперативну пам'ять / процесори для віртуальних машин Xen та Hyper-V.
echo 3 > /proc/sys/vm/drop_caches
це полегшує це, як тільки це починається. Я переважаю, що зараз я маю команду на роботі з кроном, і, здається, це допоможе або принаймні обмежить тривалість розправи OOM, коли я не вдома.
Здається, що kswapd
десь і помилка , сподіваємось лише на старих ядрах.
Зараз майже кожен день kswapd відбувається випадковим чином на деяких машинах у більшому кластері (однак з поточним ядром, однак). 100% процесора для обох процесів kswapd. Жодних інших запущених процесів (крім ssh shell), безлічі безкоштовної оперативної пам’яті (понад 700 Мб) і взагалі не використовуваних SWAP. Ніякого заміни, а також заміни.
Ще нічого не пояснює, чому конкретна машина потрапила, а інша - ні. Здається, це не зовсім випадково, тому що зазвичай за короткий проміжок часу він потрапляє на кілька машин. Схоже, машини, які працюють на холостому ходу, а також машини, що знаходяться під високим тиском, менше (!) Ймовірно вражають ефектом. Отже, він повинен щось робити з робочим навантаженням і лише б’є, якщо машина не працює і не дуже зайнята.
Якщо проблема усувається, більше нічого не допомагає. Вбивати всі процеси (які не стали неможливими), знімати всі файлові системи, нічого. kswapd
все ще залишається на 100% процесора. Я підозрюю деяку гонку спінлок у ядрах SMP, але ймовірно, що я помиляюся.
Можливо, дивіться мою відповідь serverfault.com/questions/316995/#493257
Примітки: