Задать вопрос
@kazuhira_0x94

Задержка с удаленной базой данных. Можно ли уменьшить пинг?

Есть нагруженный проект, в среднем 22к запрсов в сек., работает на одной вм в Яндексе, в докер контейнерах. Пришла пора выносить бд на отдельную вм. Вынесли, начались тормоза. В ходе тестов поняли что тормозит сеть.
Пинг на ВМ между php и mysql, порядка 0.04-0.07мс.
Пинг между ВМ php -> удаленная бд, порядка 0.5-0.8мс По дефолту без нагрузки, в 10 раз больше. С нагрузкой подрастает до 2мс, при очень большой нагрузке до 5мс. Это не устраивает.

В общем, можно как-то сохранить пинг в районе 0.1мс ?
Как я понимаю если все это развернуть на выделенном сервере, в несколько вм, то проблема исчезнет. Но это дорого.
Возможно использовать балансировщик ?
Хотелось бы понять куда копать, что почитать? Как-то не гуглится тема, статей про highload масса, но они не совсем про это. Возможно посоветуете литературу.

Тестируется это все дело через яндекс танк, закрались сомнения что танк огромную нагрузку на сеть делает. Т.к. стремимся к 22к запросов к бд. Соответственно кидаем это на 10 страниц, получаем 22к запроса, но при этом огромная нагрузка на сеть, в десятки раз больше чем на проде. Получаем пинг в 2-5мс, все тормозит. Даже если так только на тестовом стенде. Пинг, без нагрузки, 0.5-0.7 все равно много. На странице в среднем 200 запросов к бд, без кэша будет больше. Получаем плюс ~100мс, к загрузке страницы.
  • Вопрос задан
  • 365 просмотров
Подписаться 3 Средний 3 комментария
Решения вопроса 1
dimonchik2013
@dimonchik2013
non progredi est regredi
только свич и патчкорд
все остальное - без гарантий

но в конкретно вашем случае - дело в базе, проверьте на бОльших ресурсах сервера базы поведение
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@vitaly_il1
DevOps Consulting
Вы проверяли время выполнения запросов и увидели что оно увеличилось?
Я совсем не уверен что различия в пинге имеют значение. (Кстати о пинге - проверил сейчас в Амазоне - 0.2 мс)
Апликация и база в одной сети? Какие ресурсы у базы старой и новой?
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы