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

Может быть проблема связана с тем, что постгря в докере?

36 ответов

17 просмотров

СУБД называется постгрес. А постгря в докере - оно обязано доставлять боль и страдания тому, кто занимается подобным непотребством.

Setplus-Mac Автор вопроса
Михаил Шурутов
СУБД называется постгрес. А постгря в докере - оно...

Например, какие? Может постргес в докере показывать такие высокие IO?

Setplus Mac
Например, какие? Может постргес в докере показыват...

недостаточно информации для ответа на ваш вопрос. 10 инсёртов в пустую таблицу - это одно, 10 инсёртов вместе с триггерами - это другое, 10 инсёртов в таблицу в 100Гб - это третье. проверьте через pg_test_fsync скорость выполнения fsync в вашем контейнере. Ну и можете pg_bench запустить для последующего сравнения с другими вариантами установки СУБД

Сергей Голод
недостаточно информации для ответа на ваш вопрос. ...

А вставка в таблицу, которая активно используется другими процессами - это третье.

Михаил Шурутов
СУБД называется постгрес. А постгря в докере - оно...

> А постгря в докере - оно обязано доставлять боль и страдания тому, кто занимается подобным непотребством. Тут все зависит от потребностей. Я например без докера просто не могу. Мои типовые сценарии: - локально держу 6 версий постгреса с 9.5 по 13 для локальной разработки и тестов (они обычно у меня выключены, запускаю при необходимости) - если ктото заводит мне багу, я в докере быстро поднимаю нужное окружение чтобы воспроизвести багу - в докере запускаю тестовое окружение нужной версии постгреса, чтобы быстро проверить какую-то функциональность и потом удалить это окружение, не засоряя основную систему. Держать и обслуживать виртуалки для этого, или может держать это все в виде локальных служб это просто долго, дорого и нерационально, и вот это бы и было как вы и говорите непостребством, с болью и страданиями. И при разумном подходе, docker+postgres можно и в проде держать.

Alexey Lesovsky
> А постгря в докере - оно обязано доставлять боль...

Ключевое словосочетание: при разумном подходе.

Михаил Шурутов
Ключевое словосочетание: при разумном подходе.

При неразумном боль и унижение причиняет абсолютно всё.

Что такого нужно сделать, чтобы постгрес именно в докере доставлял боль?

Михаил Шурутов
Попробуйте обновить мажорную версию.

Хм, видимо я везучий, пока обновлял без проблем.

Михаил Шурутов
Попробуйте обновить мажорную версию.

В чём отличия от обновления без докера?

Sergey Bezrukov
В чём отличия от обновления без докера?

В отсутствии докера. Распишите, пожалуйста, пошагово процедуру обновления ПГ в докере в конфигурации мастер-реплика.

Михаил Шурутов
В отсутствии докера. Распишите, пожалуйста, пошаго...

Откуда взялась мастер-реплика? Докер - это для разработки большей частью.

Sergey Bezrukov
Откуда взялась мастер-реплика? Докер - это для ра...

Я не занимаюсь поддержкой разработки. Только и исключительно пром, который обслуживает внешних клиентов. Как показывает практика, то, что используется при разработке, так называемые "архитекторы" от словосочетания "идиоты безмозглые" пытаются протащить и в пром. Ну у меня же на ноутбуке, деве всё работает!

Михаил Шурутов
Я не занимаюсь поддержкой разработки. Только и иск...

без нагрузки и реальных объемов данных, ага, все работает ))

Михаил Шурутов
Я не занимаюсь поддержкой разработки. Только и иск...

Тогда понятно. В высоконагруженную систему лучше лишних уровней не запихивать, тут согласен, конечно.

Сергей Кравчук
без нагрузки и реальных объемов данных, ага, все р...

Вот именно! На прошлой работе один такой архитектор ваял скрипты для миграций. 50+ тыс записей вставлял отдельными INSERT-ами. У него на деве всё быстро проходило, меньше минуты.

Евгений Смирнов
На деве SSD, а на боевом - HDD, так?

Не так. 50 тыс записей и нагруженный проект и по записи, и по чтению.

Sergey Bezrukov
Тогда понятно. В высоконагруженную систему лучше л...

Самое интересное в этой фразе - лишние уровни. Ибо при любой, даже паравиртуализации, этот лишний уровень появляется. А если ещё и используются тома системы виртуализации, а не проброс физических устройств в витруалку, то чудеса с вводом/выводом гарантированы.

Setplus-Mac Автор вопроса
Сергей Голод
недостаточно информации для ответа на ваш вопрос. ...

И вот конфиг max_connections = 200 shared_buffers = 4GB effective_cache_size = 12GB maintenance_work_mem = 1GB checkpoint_completion_target = 0.7 wal_buffers = 16MB default_statistics_target = 100 random_page_cost = 4 effective_io_concurrency = 2 work_mem = 5242kB min_wal_size = 1GB max_wal_size = 4GB max_worker_processes = 8 max_parallel_workers_per_gather = 4 max_parallel_workers = 8 max_parallel_maintenance_workers = 4

Setplus-Mac Автор вопроса
Setplus Mac
И вот

это не совсем то что нужно, это конечно показывает что диски медленные, но не говорит о причинах почему они медленные... надо искать причины. начать следует с оценики работы системы через утилиты top, iostat и изучения окружения (конфигурация железа и настройки системы) где проявляются проблемы

Setplus Mac
И вот

Этого недостаточно. Напишите, какое там "железо", полностью — так проще будет.

Setplus Mac
Сейчас кину

вы не написали про диски, что там у вас ssd или hdd?

Setplus Mac
screenshot Выхлоп pg_test_fsync

да уж, не блещет докер производительностью.... А что используется в качестве хранилища для докера?

Setplus-Mac Автор вопроса
Setplus Mac
да дефолтный

если что, overlay2

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

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

а через ESC-код ?
Alexey Kulakov
29
30500 за редактор? )
Владимир
47
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
13
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
6
program test; {$mode delphi} procedure proc(v: int32); overload; begin end; procedure proc(v: int64); overload; begin end; var x: uint64; begin proc(x); end. Уж не знаю...
notme
6
Ребят в СИ можно реализовать ООП?
Николай
33
у вас два процесса. один посылает другому сигнал. у вас есть код обоих процессов? если всё не так - расскажите как оно на самом деле. а именно кто кому чего, есть-ли консоли,...
Karagy
6
вы делали что-то подобное и как? может есть либы готовые? увидел картинку нокода, где всё линиями соединено и стало интересно попробовать то же в ddl на lua сделать. решил с ч...
Victor
8
Карта сайта