вольюм для хранения БД. Сам же вольюм хранится в RBD вольюме цефа (кластер из SSD дисков). Известно, что к БД делаются только INSERT запросы. Но если смотреть на данные в iotop, то видно, как раз в 20 секунд, процесс postgres EXECUTE производит rops ы ( до нескольких десятков мегабайт доходит). Далее эта read-активность сходит до нескольких килобайт в секунду.
Чем может быть обусловлена такая ситуация?
Моя гипотеза - чтение индекса, но вряд ли.
Ну, должэн жэ он когда-то это всё записывать, а потом перепаковывать. ЗЫ Просто не храните бд в ceph. На худой конец, если очень нужно — ну, смените postgres на sqlite.
Так запись - это write опсы должны быть, а тут именно скачки read опсов.
Да я жэ говорю — вакуум как минимум. Вообще, можно разбираться, как минимум — но в принцыпе имеет право. И он на это рассчитан.
А разве в таком случае этот процесс не должен называться postgres autovacuum ?
В принцыпе логично.
Боле всего похоже на автовакуум. А какой размер базы? В память она влезает? Надо понимать, что вставка в индексы требует не только записи, но и чтения. Ведь для того чтобы найти позицию в дереве, надо спуститься от корня вниз. И если таблица большая и индекс не помещается целиком в память, но надо будет читать страницы с диска. Не понятно только почему это происходит периодически раз в 20 секунд. Поэтому это всё таки больше похоже на какую-то бэкграундную активность, и скорее всего - это вакуум. Но тогда не понятно, почему iotop инит в этом EXECUTE. А там точно в инсёртах никакие подзапросы не используются?
Размер базы — 458GB, полностью влезает (там максимум 1.8 TB). Используются только инсёрты, это точно.
А pid процесса-читателя всегда один тот же?Или разные? Есть ли возможность приконнектиться к нему отладчиком?
Нет, не меняется. Сейчас посмотрю в strace.
Что значит "максимум 1.8 ТБ"? Вы free посмотреть внутри контэйнера можэте? И да, это, на самом деле, опять "прекратите!" Если вам под базу нужэн сервак мощнее среднего (а 1.8ТБ RAM — это пока ещё заметно мощнее среднего), то пытаться пихнуть его в контэйнер — это растрата ресурсов, в том числе на администрирование. Всё финита, у вас нет возможности таскать этот контэйнер между виртуалками, вы на каждую реплику должны выделять физическую жэлезку, недешёвую. После этого танцы с оркестрацыей — это откровенное усложнение работы.
Обсуждают сегодня