[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: [OFF-TOPIC] Multiprocessadores / Processamento paralelo



Edson Marquezani Filho escreveu:
       Quem distribui os processos entre os processadores e dita quanto
tempo esse processo pode usar o processador sem ser interrompido é o
kernel. Até aí tudo bem? Ok.
       Um processo em uma máquina com um processador vai ser
interrompido para que outros processos tenham a chance de serem
executados ou pelo motivo deste esperar uma resposta de algum
dispositivo lento (hd, teclado, mouse, rede, modem, etc). Entende isso, né?
       Agora um processo A em uma máquina com vários processadores vai
ser interrompido quando se tem um processo B com prioridade maior que a
deste A e nos outros processadores as prioridades são maiores que a de
B. Repare que o sistema de prioridades do Linux usa um algoritmo
complexo para definir o valor dessa prioridade, que é completamente
dinâmico, onde a prioridade do processo atribuída "manualmente" não é
fixa e sim uma forma de dar pesos para as prioridades dinâmicas. Acho
que ficou meio complexo mas deu para entender?
       Então, entendido isso, se o processo pode ser divido em vários
(thread e fork), este executa muito melhor do que com um só processador,
mas se não poder ser, ou este ficar mais "dormindo" do que "acordado",
esperando resposta do HD por exemplo, não adianta quase nada ter vários
processadores se o gargalo está no HD... Entendeu?
  Sim, eu cheguei a ver esse esquema de escalonamento baseado no valor
da prioridade, agora minha memória foi refrescada. =)
  Bom, mas sendo assim, se dizemos que o Squid não faz uso desse
recurso seria somente porque ele não pode ser dividos em threads ou
tem um fator mais crítico com relação ao desempenho, como I/O.
  Mesmo assim, de qualquer modo, a máquina ganha em performance, já
que pode rodar duas instruções simultaneamente, mesmo que de processos
diferentes - o que não acontece no caso de um processador/núcleo só.
  Portanto, de qualquer maneira, seria errado falar que pra tal
programa, o fato de ser multiprocessador em nada contribui.
  Outra dúvida: Windows tem suporte a processamento pararelo? Prque a
gente não escolhe a versão do kernel né. HAHA...

Olá,

O problema do Squid é I/O (velocidade): rede, HD e memória. Assim, o maior gargalo está com redes, depois vem o HD e depois a memória... Veja então que quanto mais memória, mais dados do HD ficam em cache e pode ter um desempenho execelente. Aumentar a rede para Gigabit e ter várias placas também ajuda. O processamento usado pelo Squid é praticamente apenas de comparação e movimento de dados, o que usa alguns ciclos do processador, fazendo assim com que o fato de ter vários processadores melhorem o desempenho de resposta em apenas alguns milisegundos, diluídos no tempo da rede/internet, o processador é algo que possa-se dizer desprezível, um novo mais fraquinho de todos ainda fica muito folgado. Assim sendo, o Squid tem todo o suporte de multi-processamento, porém fica preso a gargalos de I/O. Portanto, o fato de se ter vários processadores não aumentar em nada o desempenho do Squid está correto, desde que a máquina seja exclusiva para o Squid.

Quanto ao Windows, não é minha praia, mas você pode escolher o kernel: Start, Home, Home Basic, Home Office, Home Premium, Professional, Entreprise, Server e mais um monte que não vem ao caso. Cada qual tem limitação de processadores, processos, usuários, memória, janela, etc, visto que o Windows em sua versão não é apenas o kernel, mas sim tudo o que compões a interface básica, incluindo aí o controle de janelas, e tenho que dizer, o Start limitar o uso a um processador, operar no máximo a 2 GHz, memória RAM limitada em 256 MB e o absurdo de poder abrir apenas três processos comum e cada um abrir apenas 3 processos filhos é o fim!!! Veja que com Windows a limitação é de sacanagem, diferentemente do que no Linux onde a limitação significava ganho de desempenho, o que terminou com a versão 2.6.18, onde o kernel tem os módulo Single e SMP embutidos e os carrega de acordo com o número de processadores, sendo assim, não precisa mais escolher, o próprio kernel faz a melhor escolha...


--
Atenciosamente,

          Junior Polegato

          Um peregrino de problemas; Um pergaminho de soluções!
          Página Profissional: http://www.juniorpolegato.com.br


Reply to: