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

Другие вопросы по тегам