Mosix - Instalação e configuração de um cluster de balanceamento de carga

Artigo que demonstra alguns conceitos sobre clusters, os procedimentos e resultados obtidos na instalação, configuração e testes de um cluster do tipo balanceamento de carga utilizando o Mosix. Também relaciona com este cluster os conceitos de sistemas distribuídos (feito para meu TCC em 2008).

[ Hits: 85.681 ]

Por: Rodrigo Mendes Pasini em 30/07/2009


Testes computacionais



Assim que toda configuração foi concluída, foram aplicados vários testes para a comprovação do funcionamento do cluster. Os principais foram:
  • Módulo de teste "testload";
  • Teste com o MatLab;
  • Teste com processos simultâneos;
  • Teste com processos locais e remotos.

Um dos principais aplicativos do Mosix é o monitor dos nodos, que fornece muitas informações importantes sobre os nodos, como a carga de cada CPU:
Linux: Instalação e configuração de um Cluster de Balanceamento de Carga utilizando Mosix
E também a memória em uso para cada nodo:
Linux: Instalação e configuração de um Cluster de Balanceamento de Carga utilizando Mosix
O próprio Mosix fornece um aplicativo chamado testload que promove uma grande quantidade de carga no CPU para testes, podendo monitorar a distribuição de carga entre os nodos do cluster comprovando seu funcionamento. Esse teste não permite fazer comparação de tempo quanto a execução local ou distribuída, pois ele é orientado a tempo de execução e não a volume de dados.

Para fazer o teste com o MatLab foi utilizado um algoritmo da rede neural Adaline e um script de teste que realiza vários cálculos numéricos. Em cada um houve diferença no tempo de termino quando executado localmente e quando utilizado o processamento distribuído.

O arquivo Adaline eu não colocarei devido ao seu tamanho.

Arquivo teste.m:

a = randn(3000);
b = svd(a);
fim=1

Tempo para execução do algoritmo localmente e distribuído (em minutos):

Algoritmo    Localmente    Distribuído
Adaline.m    3.55             3.46
Teste.m      1.40             1.36

Como os testes feitos são relativamente algoritmos pequenos, a diferença de tempo entre processamento local e distribuído é pequena, porem notável. Em algoritmos menores se notou que o tempo de execução distribuída era maior que localmente, a ocorrência desse fato deve-se ao grande uso da rede para comunicação entre os nodos, tornando inviável o uso do processamento distribuído para processos pequenos, causando queda de performance.

O teste com processos simultâneos se deu com um shell script (linguagem de programação de alto nível interpretada pelo Shell do Linux) ilustrado na figura a seguir, que gerou vários processos simultâneos. A execução local desse shell script teve um tempo bem elevado, e distribuidamente esse tempo foi bem reduzido, foi o teste que melhor demonstrou a eficiência do cluster Mosix.
Linux: Instalação e configuração de um Cluster de Balanceamento de Carga utilizando Mosix
Tempo para execução do shell script de teste (em minutos):

Execução      Tempo  
Local         89,35  
Distribuída   60,22

O teste de processos locais e remotos consistiu e executar programas locais, tais como openoffice etc, juntamente com as rotinas de testes citadas anteriormente. O teste principal foi feito com o editor de texto do openoffice, e o browser Firefox. Todos os testes anteriores foram executados novamente (somente distribuidamente), porem com os processos locais rodando em cada um dos nodos. Notou-se uma leve diferença nos tempos de termino dos processos. O teste feito através do testload não pode ser avaliado por ser orientado a tempo de execução e não a volume de dados.

Teste de processos locais e remotos:

Teste          Sem processos locais    Com processos locais
Adaline.m      3,46                    3,49
Teste.m        1,36                    1,38
Shell Script   60,22                   61,35

Página anterior     Próxima página

Páginas do artigo
   1. Introdução
   2. Instalação do Mosix
   3. Configuração do Mosix
   4. Conteúdo dos principais arquivos de configuração do Mosix
   5. Testes computacionais
   6. Conclusão
Outros artigos deste autor

Como ver as informações de rede no Linux

Virtualização - Montando uma rede virtual para testes e estudos de serviços e servidores

Convertendo sistemas físicos em máquinas virtuais

Virtualização - VirtualBox em modo texto e acesso remoto

Ovos de Páscoa no GNU/Linux

Leitura recomendada

FTP com autenticação LDAP

Integrando Nagios com Asterisk

Tamanho dos ícones do lançador e do Desktop

Instalando o Gentoo 2018

Instalação do CRUX 3.0 em Virtualbox

  
Comentários
[1] Comentário enviado por Andre_A_Ferreira em 31/07/2009 - 10:18h

Sr. Rodrigo!

Que dizer do seu artigo?
Expetacular é a definição mais próxima.

Grande abraço!

André A. Ferreira

[2] Comentário enviado por cesarmoura em 31/07/2009 - 13:07h

Amigo, excelente o seu artigo.
Parabéns!

[3] Comentário enviado por manoserpa em 31/07/2009 - 16:42h

Muito bom artigo.

Parabéns!

[4] Comentário enviado por ranzes em 31/07/2009 - 19:54h

Muito Bom.

Pena que o projeto foi extinto.


Att,


Ranzes Tamar

[5] Comentário enviado por rodrigo8819 em 01/08/2009 - 12:32h

Não, esse projeto não foi extinto. O projeto que foi extinto é o open Mosix, esse ainda está em desenvolvimento. acesse www.mosix.org e veja :D

E muito Obrigado pelos elogios!

[6] Comentário enviado por sermart em 02/08/2009 - 09:57h

Já experimentei no fedora e funcionou de primeira muito bom.

[7] Comentário enviado por marcioyshimoda em 05/08/2009 - 09:20h

Ah sim, o openMosix foi o projeto da qual estive estudando há um tempo atrás.
Para fins de comparação quanto ao tempo de compilação do kernel, qual foi a configuração do cluster citado no artigo?

De resto o artigo está de parabéns!

[8] Comentário enviado por rodrigo8819 em 05/08/2009 - 10:40h

Você acha essas informações no artigo na parte Nodos e Rede

Mas vai ai!

Para a montagem deste cluster foram utilizados três nodos, cada um com memória RAM de 512MB, Hard Disk de 80GB, processador Pentium IV de 3.40GHz e placa ethernet 10/100Mbps.

Obrigado e Abraço!

[9] Comentário enviado por thiago_dias em 18/08/2009 - 14:43h

Existe algum nodo central onde só ele migra os processos ou todos os nodos da rede podem migrar? pois no meu teste a maquina 1 migra para a 2 , mais a 2 não migra pra 1. é normal isso? tem como eu definir para a maquina 2 migrar para a 1 também?

Abraços

[10] Comentário enviado por rodrigo8819 em 20/08/2009 - 18:56h

Todos os nodos são iguais, qualquer um migra pra qualquer um. Deve ter algum erro na conf da máquina 2. Neste tipo de cluster não existe nodo controlador, o gerenciamento não é centralizado.

[11] Comentário enviado por magnolinux em 18/09/2009 - 08:15h

meus parabens...

muito bom o artigo!

[12] Comentário enviado por cmagnum em 01/10/2009 - 13:21h

muito bom seu comentario!!!!

o que eu acho ruim no mosix é que está desatualizado .

[13] Comentário enviado por thiago_dias em 01/10/2009 - 14:18h

cmagnum, o mosix não está desatualizado.
o projeto que esta desatualizado, pois foi descontinuado é o openmosix.
o mosix tem patch para as versões mais recentes do kernel.
dê uma conferida no site do projeto:
www.mosix.com

[14] Comentário enviado por removido em 17/10/2009 - 22:41h

Fiquei Conhecendo Agora o Misix.

[15] Comentário enviado por reinaldoef em 23/01/2010 - 02:40h

Rodrigo, gostaria de saber como fica o processamento de uma renderização do Blender com este cluster, pois preciso montar um cluster para renderizar animações em blender.

[16] Comentário enviado por baranzelli em 24/03/2010 - 08:27h

Valeu mesmo...
Muito bom o artigo...

[17] Comentário enviado por hudyfx em 17/06/2010 - 22:00h

opress, nota 10 no artigo parabéms

[18] Comentário enviado por rodrigocontrib em 27/06/2010 - 19:08h

Quanto da um Cluster de 100 K-62 500 500Mhz
50Ghz -> Isso é processamento a dar com pau...
Acredito que o unico problema de usar tal tecnologia é a quantidade de energia,espaço e mão de obra gasta...mas devemos pensar nisso como uma alternativa de reciclagem.

Cluster para o Google de Pcs reciclaveis, tem que ter muito alcool isopropilico.

[19] Comentário enviado por joelpolese em 05/07/2010 - 14:38h

OOpa!!

sou iniciante em Linux e meu TC vai ser em cima do gerenciamento e monitoramento de cluster linux Debian...

Não encontrei algum "tutorialzinho" sobre implementação de cluster de alto desempenho (vou rodar uma aplicação paralela e testar)
Se alguem puder ajudar, agradeço!

Obrigado

Abraço!!

[20] Comentário enviado por vinicius.almeida em 31/08/2010 - 20:05h

Interessante.. gostei.

:)

[21] Comentário enviado por hvazsampaio em 08/09/2010 - 12:14h

No comando seguinte deu erro, alguem sabe o porque?

# fakeroot make-kpkg --initrd --append-to-version=-MOSIX kernel_image kernel_headers

Error: The extended version may only contain
lowercase alphanumerics and the characters - + .
The current value is: -MOSIX
Aborting.

[22] Comentário enviado por renato_pacheco em 05/01/2011 - 13:27h

Rodrigo, eu não entendi: o mosix deve ser instalado em todas as 3 máquinas com a msm versão do Debian Etch (q foi usado no seu TCC)? Todos ficam com o msm IP? Esse assunto é muito novo pra mim...

[23] Comentário enviado por rodrigo8819 em 05/01/2011 - 13:39h

Você não precisa ficar preso a versão do linux nem a distros, basta fazer os passos de acordo com cada distro que for utilizar. Para isso terá de ver os métodos disponíveis para a distro que escolher, por exemplo a criação do pacote .deb do kernel compilado com o mosix não se aplica a derivados de red hat que utilizarão pacotes rpm.
Quando a rede, os nodos do cluster utilizarão a mesma rede (ou classe de IP) mas não o mesmo IP.

Aconselho que utilize versões parecidas do artigo, levando em conta que você relatou que é novo no assunto, assim quando já estiver mais familiarizado com o assunto faça em alguma outra distro de sua preferência.

[24] Comentário enviado por andregyn em 02/07/2012 - 17:06h

Otimp artigo, vou testar em casa, tenho um dualcore parado, vou reutiliza-lo. Valeu


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts