СУБД называется постгрес. А постгря в докере - оно обязано доставлять боль и страдания тому, кто занимается подобным непотребством.
Например, какие? Может постргес в докере показывать такие высокие IO?
недостаточно информации для ответа на ваш вопрос. 10 инсёртов в пустую таблицу - это одно, 10 инсёртов вместе с триггерами - это другое, 10 инсёртов в таблицу в 100Гб - это третье. проверьте через pg_test_fsync скорость выполнения fsync в вашем контейнере. Ну и можете pg_bench запустить для последующего сравнения с другими вариантами установки СУБД
Спасибо, сейчас посмотрю.
А вставка в таблицу, которая активно используется другими процессами - это третье.
Это надо смотреть блокировки.
> А постгря в докере - оно обязано доставлять боль и страдания тому, кто занимается подобным непотребством. Тут все зависит от потребностей. Я например без докера просто не могу. Мои типовые сценарии: - локально держу 6 версий постгреса с 9.5 по 13 для локальной разработки и тестов (они обычно у меня выключены, запускаю при необходимости) - если ктото заводит мне багу, я в докере быстро поднимаю нужное окружение чтобы воспроизвести багу - в докере запускаю тестовое окружение нужной версии постгреса, чтобы быстро проверить какую-то функциональность и потом удалить это окружение, не засоряя основную систему. Держать и обслуживать виртуалки для этого, или может держать это все в виде локальных служб это просто долго, дорого и нерационально, и вот это бы и было как вы и говорите непостребством, с болью и страданиями. И при разумном подходе, docker+postgres можно и в проде держать.
Ключевое словосочетание: при разумном подходе.
При неразумном боль и унижение причиняет абсолютно всё.
Что такого нужно сделать, чтобы постгрес именно в докере доставлял боль?
Использовать постгрес в докере.
Попробуйте обновить мажорную версию.
Хм, видимо я везучий, пока обновлял без проблем.
В чём отличия от обновления без докера?
В отсутствии докера. Распишите, пожалуйста, пошагово процедуру обновления ПГ в докере в конфигурации мастер-реплика.
Откуда взялась мастер-реплика? Докер - это для разработки большей частью.
Вы ведь про обновление самого докера?
Нет, я про обновление ПГ в докере.
Я не занимаюсь поддержкой разработки. Только и исключительно пром, который обслуживает внешних клиентов. Как показывает практика, то, что используется при разработке, так называемые "архитекторы" от словосочетания "идиоты безмозглые" пытаются протащить и в пром. Ну у меня же на ноутбуке, деве всё работает!
без нагрузки и реальных объемов данных, ага, все работает ))
Тогда понятно. В высоконагруженную систему лучше лишних уровней не запихивать, тут согласен, конечно.
Вот именно! На прошлой работе один такой архитектор ваял скрипты для миграций. 50+ тыс записей вставлял отдельными INSERT-ами. У него на деве всё быстро проходило, меньше минуты.
На деве SSD, а на боевом - HDD, так?
Не так. 50 тыс записей и нагруженный проект и по записи, и по чтению.
Самое интересное в этой фразе - лишние уровни. Ибо при любой, даже паравиртуализации, этот лишний уровень появляется. А если ещё и используются тома системы виртуализации, а не проброс физических устройств в витруалку, то чудеса с вводом/выводом гарантированы.
И вот конфиг 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
это не совсем то что нужно, это конечно показывает что диски медленные, но не говорит о причинах почему они медленные... надо искать причины. начать следует с оценики работы системы через утилиты top, iostat и изучения окружения (конфигурация железа и настройки системы) где проявляются проблемы
Этого недостаточно. Напишите, какое там "железо", полностью — так проще будет.
вы не написали про диски, что там у вас ssd или hdd?
да уж, не блещет докер производительностью.... А что используется в качестве хранилища для докера?
если что, overlay2
Обсуждают сегодня