совсем недавно я стал ответственным за существующий проект, который использует веб-серверы Apache и базы данных MySQL.
Веб-сервер находится за балансировщиком нагрузки HAProxy, и приложение подключается к ведомым устройствам MySQL через другой HAProxy.
2 из 10 веб-серверов были добавлены совсем недавно, и они более мощные, чем старые. То же самое и для ведомых устройств MySQL: 2 из этих 5 ведомых устройств имеют больше ОЗУ и ЦП.
Алгоритм балансировки серверов Apache следующий: минимум а для рабов это источник. По крайней мере, настройки для серверов MySQL я считаю странными, потому что в худшем случае «лучший» apache (с наибольшим весом) всегда может выбрать худший сервер MySQL, если я понимаю Документы HAProxy право. Я бы выбрал по-круговой с отрегулированными весами:
И поскольку апачи находятся за HAProxy с таймаутом 20 секунд, я бы предпочел применить по-круговой, слишком.
(Я бы использовал 20 только для начала. Я собираюсь наблюдать за мониторингом, и позже его откорректирую.)
Поскольку серверы находятся в колокации (например: у меня нет корневого доступа, запросы на изменение занимают некоторое время), я просто хотел бы высказать второе (или более) мнение по этой теме: это хорошая идея изменить балансировку алгоритм для обоих по-круговой ? Я бы не стал рассматривать это, если бы совсем недавно не было проблем с производительностью, и это всего лишь одно место, которое, на мой взгляд, стоит настроить.
Спасибо за любой / ваш совет!
С уважением, Деннис
source
- действительно странный выбор, если только ваши серверы приложений не должны поддерживать сеанс с ведомыми устройствами БД. Но это вам решать.
leastconn
обычно очень хороший выбор, если производительность каждого сервера (как сервера приложений, так и базы данных) не совсем стабильна. Это зависит от деталей вашего приложения и платформы. (Например, сервер приложений на основе Java может иметь периоды замедления из-за сборки мусора, во время которых имеет смысл уменьшить его балансировочную нагрузку.)
Наконец, да, с roundrobin
вы обычно добьетесь очень предсказуемой и стабильной балансировки, которая точно соответствует весам.