Docker swarm - замедление docker.sock

У меня есть рой докеров, где я развернул 3 копии своего микросервиса. Работа микросервиса заключается в том, чтобы позволить клиенту загружать файлы. В настоящее время я тестирую большие файлы размером до 3 ГБ и несколько таких загрузок параллельно. Я на 17.06.1-й

  • В моем микросервисе есть "docker.sock", установленный внутри моего сервиса. Это тот же сокет, что и на моем mac-docker-vm

  • У меня есть скрипт bash, который, независимо от того, выполняю ли я его внутри микросервиса или на компьютере Mac, должен выдавать один и тот же вывод (так как один и тот же сокет монтируется внутри контейнера). Выход 3 IP-адреса. Сценарий, по сути, представляет собой не что иное, как просто запуск "проверки докера для получения IP-адресов". Это делает это хорошо. Сценарий bash использует команду docker, и я думаю, что он использует внутренний docker.sock для обработки этих команд.

Описание проблемы

  • Когда я занят своим микросервисом (у меня запущено несколько копий службы), который транслирует огромные потоки данных, скажем, до 3 потоков по 3 ГБ файлов, док-станция замедляется, я думаю. Причина, по которой я чувствую, заключается в том, что когда я отправляю запрос потока загрузки, он попадает на контроллер REST, контроллер выполняет сценарий bash и сидит там, ожидая завершения сценария. Чтобы проверить мою теорию, что сценарий - это "горлышко бутылки", а не "процессный" класс "Scala", в то время как возникает это узкое место, я выполнил тот же сценарий bash со своего ноутбука. Сценарий ждал более минуты, чтобы ответить во время потоковой передачи. Помните, выполняю ли я скрипт с моего ноутбука или из моего кода Scala (который находится внутри микросервиса, это тот же сокет, который используется (как монтируется тот же docker.sock)
  • Как мне отладить это дальше, чтобы убедиться, что моя теория верна и обойти это? Я понимаю, что это моя кодовая база, которую я написал для поддержки загрузки файлов, но могу ли я оставить ресурс открытым, из-за чего сокет ведет себя плохо? Я не проверял это на CentOS Docker. Не уверен, что поведение там останется таким же, как на Mac

0 ответов

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