Você tem dois processadores Xeon E5506 com 8 núcleos no total. O E5506 não possui hyper-threading. Você pode executar sete funcionários e ainda ter um núcleo gratuito para o sistema operacional.
Tudo bem, então estou prestes a atualizar minha caixa (com 2k ips externos) para o último lula (3.3.x), já que minha versão antiga não tira vantagem dos processadores multi-core.
Enquanto pesquisava sobre os trabalhadores, encontrei uma discussão em que alguém diz:
Use cpu_affinity_map in squid.conf. Leave Cpu0 "for the OS". Be careful not to put two busy workers on sibling hyper-cores. This is just a sketch of an optimization algorithm. There are many details that depend on your setup.
Eu também entendo que é melhor usar tantos trabalhadores quanto você tem CPUs:
FWIW, we usually see best performance results when using cpu_affinity_map with 1:1 mapping between workers and cores (which effectively disables those complex algorithms as far as Squid workers are concerned).
Minha pergunta é ... são CPUs físicas? Minha caixa relata 8 processadores, mas apenas 2 físicos mostrados quando eu executo cat /proc/cpuinfo | grep "physical id" | sort | uniq | wc -l
, o que significa 2 trabalhadores?
Se eu colocar 2 funcionários em 2 CPUs físicas, como Deixa Cpu0 "para o SO" se encaixar? Isso significa que eu defino apenas 1 worker para cpu1 enquanto o sistema operacional usa cpu0?
P.S. Eu sei sobre a afinidade da CPU. Eu só preciso de um esclarecimento sobre como descobrir exatamente quantos trabalhadores eu posso usar antes de perder o desempenho.
Tags squid