У меня есть сайт с высокой нагрузкой, обслуживаемый двумя серверами: веб сервер с участием nginx
и php
, и сервер базы данных с участием mysql
. Веб-сервер обслуживает весь статический контент и подключается к MySQL и внешнему миру через единый интерфейс - eth0
.
В часы пик трафик на этом интерфейсе приближается к максимуму, а время пинга к серверу mysql становится очень большим (до 100 мс, даже если серверы находятся в одной локальной сети).
Итак, мой вопрос: настрою ли другой сетевой интерфейс, предназначенный только для подключений MySQL, на веб сервер решить проблему с высокой задержкой?
Если да, то какие инструменты я использую для пересылки соединений mysql через другой сетевой интерфейс? Как правильно настроить интерфейсы, нужны ли мне разные IP-адреса на интерфейсах?
Оба сервера имеют ubuntu-server
.
Если вы увеличиваете пропускную способность интерфейса и видите высокую задержку, вы, скорее всего, увидите выгоду от запуска соединения MySQL через другой интерфейс.
Вам не нужно делать ничего особенного, чтобы заставить его использовать другой интерфейс, но да, ему потребуется IP-адрес в сети, отличной от eth0.
Дайте серверу MySQL IP, например 10.0.0.1/255.255.255.0 и eth1 на веб-сервере 10.0.0.2/255.255.255.0. Вы можете использовать любой диапазон частных IP-адресов, который вам действительно нравится, и вы можете использовать сетевую маску меньшего размера, важно то, что это диапазон, отличный от eth0 на веб-сервере. Таким образом, когда веб-сервер подключается к 10.0.0.1, он будет знать, что для этого нужно использовать eth1.