В настоящее время я запускаю сервер squid для балансировки нагрузки между двумя серверами с использованием циклического перебора.
Но после нескольких дней работы я обнаружил, что сервер 1 становится медленнее. Могу ли я использовать CPU Performance, чтобы определить, на каком сервере должно быть больше пользователей, использующих squid?
Спасибо
Squid недостаточно умен для этого. Как говорится в документации по squid:
Squid одинаково относится ко всем циклическим родителям. В настоящее время невозможно, например, пересылать 25% запросов одному родителю и 75% другому.
IPVS и haproxy иметь несколько доступных алгоритмов, таких как взвешенный циклический алгоритм, наименьшее количество соединений и т. д. Но у них нет встроенного механизма, позволяющего делать это за счет загрузки процессора на реальных серверах.
В одной установке IPVS, которой я управляю, у нас есть задание cron, которое подключается по SSH к каждому серверу и берет нагрузку из / proc / loadavg. На основе нагрузки рассчитывается соответствующий вес. Затем с помощью команды ipvsadm изменяется вес этого реального сервера. Отлично работает и вызывает почти равную нагрузку на каждый сервер.
Имейте в виду, что нагрузка - это не единственное, на что нужно смотреть. Среднее время ответа может быть более точным представлением пользовательского опыта.