172 похожих чатов

Коллеги, добрый день. Postgres запущен в докере, к которому примонтирован

вольюм для хранения БД. Сам же вольюм хранится в RBD вольюме цефа (кластер из SSD дисков). Известно, что к БД делаются только INSERT запросы. Но если смотреть на данные в iotop, то видно, как раз в 20 секунд, процесс postgres EXECUTE производит rops ы ( до нескольких десятков мегабайт доходит). Далее эта read-активность сходит до нескольких килобайт в секунду.
Чем может быть обусловлена такая ситуация?
Моя гипотеза - чтение индекса, но вряд ли.

10 ответов

8 просмотров

Ну, должэн жэ он когда-то это всё записывать, а потом перепаковывать. ЗЫ Просто не храните бд в ceph. На худой конец, если очень нужно — ну, смените postgres на sqlite.

Setplus-Mac Автор вопроса
Ilya Anfimov
Ну, должэн жэ он когда-то это всё записывать, а по...

Так запись - это write опсы должны быть, а тут именно скачки read опсов.

Setplus Mac
Так запись - это write опсы должны быть, а тут име...

Да я жэ говорю — вакуум как минимум. Вообще, можно разбираться, как минимум — но в принцыпе имеет право. И он на это рассчитан.

Setplus-Mac Автор вопроса
Ilya Anfimov
Да я жэ говорю — вакуум как минимум. Вообще, можн...

А разве в таком случае этот процесс не должен называться postgres autovacuum ?

Боле всего похоже на автовакуум. А какой размер базы? В память она влезает? Надо понимать, что вставка в индексы требует не только записи, но и чтения. Ведь для того чтобы найти позицию в дереве, надо спуститься от корня вниз. И если таблица большая и индекс не помещается целиком в память, но надо будет читать страницы с диска. Не понятно только почему это происходит периодически раз в 20 секунд. Поэтому это всё таки больше похоже на какую-то бэкграундную активность, и скорее всего - это вакуум. Но тогда не понятно, почему iotop инит в этом EXECUTE. А там точно в инсёртах никакие подзапросы не используются?

Setplus-Mac Автор вопроса
Konstantin Knizhnik
Боле всего похоже на автовакуум. А какой размер ба...

Размер базы — 458GB, полностью влезает (там максимум 1.8 TB). Используются только инсёрты, это точно.

Setplus Mac
Размер базы — 458GB, полностью влезает (там максим...

А pid процесса-читателя всегда один тот же?Или разные? Есть ли возможность приконнектиться к нему отладчиком?

Setplus-Mac Автор вопроса
Setplus Mac
Размер базы — 458GB, полностью влезает (там максим...

Что значит "максимум 1.8 ТБ"? Вы free посмотреть внутри контэйнера можэте? И да, это, на самом деле, опять "прекратите!" Если вам под базу нужэн сервак мощнее среднего (а 1.8ТБ RAM — это пока ещё заметно мощнее среднего), то пытаться пихнуть его в контэйнер — это растрата ресурсов, в том числе на администрирование. Всё финита, у вас нет возможности таскать этот контэйнер между виртуалками, вы на каждую реплику должны выделять физическую жэлезку, недешёвую. После этого танцы с оркестрацыей — это откровенное усложнение работы.

Похожие вопросы

Обсуждают сегодня

а зачем этот вопрос для удаления из чата?
Mёdkinson Medvezhkin
63
Эх кто-то пришел и весь праздник испортил :( You need complex FBX scene importing setup to change things on import? good luck with that. You need navigation and pathfinding? g...
Serg Gini
5
Всем привет! Подскажите. Я написал приложение на Delphi 10.2 Tokyo под Windows 10. И передо мной стал вопрос о том чтобы сделать это приложение кроссплатформенным (под Linux и...
Дмитрий Завгородний
24
Какого хера? /Sources/App/Modules/User/Models/UserLinkApple.swift:21:20: warning: stored property '_id' of 'Sendable'-conforming class 'UserLinkApple' is mutable @ID(...
Alexander Sherbakov
14
У тебя в конфиге нигде нет deny all; или вообще любого deny?
Alexander Sherbakov
10
Привет всем. Подскажите где можно посмотреть, какая версия электрон, поддерживает версии windows? Некий changelog. Мне бы желательно, поддержку 7,8,10... latest, как понимаю и...
Anonym Squad
21
Почему стало ломаться на D11? "739002.86400000' is not a valid timestamp" function IncDateTime(aStamp:TTimeStamp;aKind:TTriggerKind;aInterval:Integer):TDateTime; //aStamp = 2...
Катерина Свиридова
8
Есть Pipeline для GitLab Runner (executor = "shell") В нём есть: default: before_script: - set -eo pipefail - source "$(~/bin/trdl use werf 2 stable)" - source...
Aleksandr Karabanov
1
Портфолио: Зовут меня Александр, мне 36 лет. Город Пушкино. Общий рабочий стаж: ~14 лет Уровень квалификации: Senior Full-stack developer Где прочесть мой код? https://github....
Magic
10
Ребят, чет я уже не догоняю... Крч в коде на асм там происходит нечто вроде a+число (a+1, a+2 и т.д.). Но почему строка lea ecx, [edx+1] работает как a+1?? В edx берется адрес...
Alan 🔝 Бэброу
4
Карта сайта