Медленное время запроса с Postgres 10 внутри Docker по сравнению с голым железом для AWS Linux 2

Я пытался развернуть Postgres в Docker по соображениям переносимости и заметил, что производительность запросов, измеренная с помощью "объяснить анализировать", была мучительно медленной по сравнению с «голым железом».

Для таблицы с 1,7 миллиона строк запрос на «голом железе» Postgres занимает около 1,2 секунды против 4,8 секунды на Dockered Postgres, что в 4 раза больше!. Это сравнение выполняется с одним и тем же смонтированным томом как для «голого металла», так и для Docker (для Docker я использую опцию -v). Это том gp2, монтируется через консоль AWS, 60 ГБ

Я пробовал пару вещей:

  1. Увеличьте параметр буфера разделяемой памяти в postgresql.conf, который имеет незначительный эффект
  2. Пробовал несколько вариантов сопоставления томов (делегированный, кэшированный, согласованный)
  3. Обновление Docker с 17.06-го до 17.12-го

Все это делается в экземпляре AWS Linux 2. На этом этапе я надеюсь получить больше предложений о том, что делать для повышения производительности.

Я использую команду docker run:

docker run -p 5432:5432 --name postgres -v /vol/pgsql/10.0/data:/var/lib/postgresql/data postgres:latest

Какой драйвер хранилища Docker вы используете? Если вы не уверены, опубликуйте вывод docker info. Если Docker настроен на использование драйвера devicemapper на устройствах с обратной связью, это может объяснить некоторое снижение производительности.

Vineet Reynolds 16.03.2018 04:50

Итак, я запустил docker info, и это драйвер хранилища, который у меня есть, Storage Driver: overlay2 Backing Filesystem: xfs Supports d_type: true Native Overlay Diff: true . Я предполагаю, что это не драйвер устройства? Спасибо.

user9500023 20.03.2018 02:24
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
5
2
1 585
0

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