Назад | Перейти на главную страницу

Рабочие Squid и серверные процессоры

Хорошо, поэтому я собираюсь обновить свой компьютер (с 2k внешними IP-адресами) до последней версии squid (3.3.x), поскольку моя старая версия не использует никаких преимуществ многоядерных процессоров.

Изучая рабочих, я обнаружил обсуждение, в котором кто-то говорит:

Используйте cpu_affinity_map в squid.conf. Оставьте Cpu0 «для ОС». Будьте осторожны, не поместите двух занятых рабочих на одноуровневые гипер-ядра. Это всего лишь набросок алгоритма оптимизации. Есть много деталей, которые зависят от вашей настройки.

Я также понимаю, что лучше использовать столько рабочих, сколько у вас есть процессоров:

FWIW, мы обычно видим лучшие результаты производительности при использовании cpu_affinity_map с отображением 1: 1 между рабочими и ядрами (что эффективно отключает эти сложные алгоритмы, насколько это касается рабочих Squid).

У меня вопрос ... это что, физические процессоры? Моя коробка сообщает о 8 процессорах, но при запуске отображается только 2 физических cat /proc/cpuinfo | grep "physical id" | sort | uniq | wc -l так что значит 2 рабочих?

Если я поставлю 2 рабочих на 2 физических процессора, как Оставьте Cpu0 "для ОС" подходит? Это означает, что я установил только 1 рабочего для cpu1, а ОС использует cpu0?

P.S. Я знаю про cpu afinity. Мне просто нужно пояснение, как точно узнать, сколько воркеров я могу использовать, прежде чем я потеряю производительность.

У вас есть два процессора Xeon E5506 с 8 ядрами. E5506 не имеет гиперпоточности. Вы можете запустить семь рабочих процессов и при этом иметь свободное ядро ​​для ОС.