kworker использует все мои операции ввода-вывода, Postgres медленный
У меня есть 2 твердотельных накопителя, настроенных в конфигурации RAID 0, с одним томом, который я без проблем использовал в течение 3 месяцев для запуска базы данных PostgreSQL. Внезапно, сегодня, DB стал очень медленным. Раньше я выполнял несколько запросов к огромным таблицам и видел 100% загрузки ЦП для каждого postgres
задание (у меня 12 ядер). Теперь один запрос использует 15%-30% ЦП, как будто существует узкое место на диске, и одни и те же запросы с одинаковыми данными выполняются намного дольше.
Я не знаю, происходило ли это раньше, но если я бегу iotop
, Я вижу kworker/u24:1
используя 99,99% ввода-вывода и 0 дисков для чтения и записи. Я не знаю, нормально ли это, но выглядит подозрительно.
Я провел тесты с dd
а также hdparm
, Время чтения / записи SSD выглядит достаточно быстро; нет проблем там. Использование оперативной памяти в порядке. Я вижу, почти не используется своп. У меня очень мало свободного места, потому что вся свободная память идет на кеширование диска, но это должно быть в порядке. У меня фактически нет никаких процессов, занимающих всю мою оперативную память.
Что за сделка kworker
? Я знаю, что это задача ядра. Проблема в том, что используется так много операций ввода-вывода? Что-нибудь, что я должен проверить?
Обновление: это прекратило делать это. Не уверен, когда или почему.
1 ответ
kworker, использующий 100% IO, не означает, что он использует все мои IO. Это означает, что он ожидает ввода-вывода. Я думаю, что проблема Postgres была отдельной. Никогда не понимал этого, но он не вернулся.
См.: https://serverfault.com/questions/659164/kworker-consuming-90-io-and-zero-disk-write/785415