Как определить причину очень высокой задержки запросов при подключении к удаленному хосту через Docker?

Как настроить соединение между двумя серверами, один из которых использует Docker Compose, а второй - Docker Swarm, если при выполнении SQL-запроса из под Docker во втором сервере время выполнения составляет 30 секунд, тогда как через VS Code DB плагин запрос выполняется в течение 100-130 миллисекунд без задержек? Какие могут быть причины этой проблемы и как её можно решить?
  • 18 июня 2024 г. 14:42
Ответы на вопрос 2
Для определения причины очень высокой задержки запросов при подключении к удаленному хосту через Docker, следует выполнить следующие шаги:

1. Проверить настройки сети в Docker. Возможно, проблема связана с неправильной конфигурацией сети.
2. Проверить наличие перегрузок на удаленном хосте. Высокая нагрузка на сервер может вызывать задержку в выполнении запросов.
3. Оценить доступность и производительность сетевых устройств между хостами. Проблемы с сетью могут приводить к задержкам.
4. Проверить работу Docker-контейнера и его ресурсов. Недостаточные ресурсы могут вызывать задержку при выполнении запросов.

Что касается настройки соединения между серверами, один из которых использует Docker Compose, а второй - Docker Swarm, и причин высокой задержки при выполнении запроса из под Docker, рекомендуется выполнить следующие действия:

1. Проверить настройки сети и конфигурацию Docker Compose и Docker Swarm. Убедиться, что нет конфликтов или ошибок в настройке.
2. Проверить производительность базы данных на втором сервере. Возможно, проблема связана с недостаточной оптимизацией базы данных.
3. Провести тесты производительности между двумя серверами для выявления возможных узких мест.
4. Использовать инструменты мониторинга для анализа производительности и выявления причин задержек.

После выявления причины проблемы следует приступить к её решению, включая оптимизацию сети, настройку Docker-контейнеров и баз данных, а также возможную оптимизацию запросов к базе данных.
1. брандмауэр OC замедляет пакеты из docker сети 
2. Routing изнутри докера ведет пакеты по другому маршруту - хотя сложно представить. traceroute?
3. Проверь, поменяй тип сети на контейнере

п.с. нарисовал бы схему сети, было бы легче... например
https://excalidraw.com/
Похожие вопросы