kworker, використовуючи всі мої IO, Postgres повільно


0

У мене є 2 SSD, налаштовані в конфігурації RAID 0 з одним томом, який я без проблем використовую протягом 3 місяців для запуску бази даних PostgreSQL. Раптом сьогодні БД стала справді повільною. Я використовував кілька запитів на величезних таблицях і бачив 100% використання процесора для кожного postgresзавдання (у мене є 12 ядер). Тепер один запит сам по собі використовує 15% -30% процесора, як ніби є вузьке місце на диску, і ті ж запити з тими ж даними займають набагато більше часу.

Я не знаю, чи було це раніше, але якщо я запускаю iotop, я бачу, як kworker/u24:199,99% IO і 0 диск читають і записують. Я не знаю, чи нормально це, але це виглядає підозріло.

Я проводив орієнтири за допомогою ddта hdparm. Час читання / запису SSD виглядає досить швидко; проблем там немає. Використання оперативної пам’яті добре. Я бачу, що майже не використовується своп. У мене дуже мало вільного, тому що вся вільна пам'ять йде на кешування дисків, але це повинно бути нормально. Я фактично не маю жодних процесів, використовуючи всю свою оперативну пам'ять.

З чим угода kworker? Я знаю, що це завдання ядра. Це проблема в тому, що вона використовує стільки вводу-виводу? Що я повинен перевірити?

Оновлення: перестало це робити. Не впевнений, коли і чому.


1
У мене схожа поведінка через повторну синхронізацію програмного RAID. Якщо ви знову навантажите 99% вводу-виводу на kworker, чи можете ви перевірити: cat / proc / mdstat (якщо припустити, що у вас є рейд програмного забезпечення) чи mdadm --detail? У мене є RAID5, і він повторно синхронізує кожен масив один раз на місяць. Під час цього він зчитує лише всі диски, а у випадку RAID0 він повинен лише порівнювати обидві копії, що швидко, тому це спричиняє вузьке місце для читання / запису диска, але тримає процесор на низькому навантаженні. Можливо, ви не помітили двох попередніх місяців (це може зайняти лише кілька годин, залежно від розміру масиву).
ludvik02

@ ludvik02 Дякую Можливо, саме так і сталося, тому що я вже не маю проблеми. Що я повинен шукати, коли запускаю ці команди? З mdadm я бачу Update Time : Sun Dec 20 16:54:20 2015(що коли я будував масив).
судо

1
Unfortunaly mdadm --detail не відображається при повторній перевірці в минулому, але якщо це сталося зараз, ви побачите показник прогресу у коті / proc / mdstat: приблизно так [======>> .... ..........] чек = 22,5% (123456/234567). Крім того, ви можете змусити негайно повторно перевірити такий спосіб: echo check> / sys / block / mdX / md / sync washing. Це може бути корисним для примусового застосування, якщо ви знаєте періоди низького навантаження для свого сервера.
ludvik02

@ ludvik02 Цього разу я не бачив перевіряючого показника прогресу. Гаразд, я перевірю наступного разу, коли він поводиться дивно.
судо

Відповіді:


Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.