Home » Telegram » Накладные расходы при работе базы данных в контейнере

Накладные расходы при работе базы данных в контейнере

Несмотря на то, что контейнеры используются уже много лет, не у всех есть понимание, какие накладные расходы они в себе несут. Просматривал сегодня ленту Хабр Q&A и увидел пару вопросов на тему производительности БД (1 - https://qna.habr.com/q/842253), 2 - https://qna.habr.com/q/846155). Написавшие вопрос заметили, что в контейнере производительность базы данных заметно ниже, чем на железе или в виртуальной машине.

Если у вас есть желание научиться строить и поддерживать высокодоступные и надежные системы, рекомендую познакомиться с онлайн-курсом «DevOps практики и инструменты» в OTUS. Курс не для новичков, для поступления нужно пройти .

Дело тут может быть вот в чем. Основные накладные расходы в данной ситуации - в работе сети. И конечная производительность будет зависеть именно от нее. По работе CPU никаких накладных расходов в работе БД нет. Это подтверждают исследования от Percona (https://www.percona.com/blog/2016/02/05/measuring-docker-cpu-network-overhead/), где один из разработчиков протестировал работу базы в разных режимах и выяснил, что основной ovehead добавляет сеть. Если вы запустите контейнер с параметром --net=host, то получите сопоставимую производительность с работой на железе.

Кому лень читать всю статью на английском, приведу сразу результаты:

  1. Железо - 7100 транзакций в секунду. Это максимум.
  2. БД в контейнере, подключение с хоста через замапленный tcp порт - 2200 транз/c. Самый слабый результат, так как подключение идет через проброс порта в iptables.
  3. БД в контейнере, который подключен напрямую в сеть хоста через net=host, подключение с хоста. Результат - те же самые 7100 транз/c.
  4. БД в контейнере, подключение из другого контейнера. Контейнеры соединены между собой через docker bridge. Результат - 6300 транз/c.

Так что делайте выводы сами, как вы будете работать с базой данных в докере. Кстати, на эту тему рекомендую хоть и немного устаревший, но очень крутой доклад:

Источник - мой канал: https://t.me/srv_admin/391

Онлайн курсы по Mikrotik

Если у вас есть желание научиться работать с роутерами микротик и стать специалистом в этой области, рекомендую пройти курсы по программе, основанной на информации из официального курса MikroTik Certified Network Associate. Помимо официальной программы, в курсах будут лабораторные работы, в которых вы на практике сможете проверить и закрепить полученные знания. Все подробности на сайте . Стоимость обучения весьма демократична, хорошая возможность получить новые знания в актуальной на сегодняшний день предметной области. Особенности курсов:
  • Знания, ориентированные на практику;
  • Реальные ситуации и задачи;
  • Лучшее из международных программ.

Автор Zerox

Владимир, системный администратор, автор сайта. Люблю настраивать сервера, изучать что-то новое, делиться знаниями, писать интересные и полезные статьи. Открыт к диалогу и сотрудничеству. Если вам интересно узнать обо мне побольше, то можете послушать интервью. Запись на моем канале - https://t.me/srv_admin/425 или на сайте в контактах.

Добавить комментарий

Ваш адрес email не будет опубликован.

Нажимая кнопку "Отправить комментарий" Я даю согласие на обработку персональных данных.