Posts tagged: ralentí

Office Computing Reixa utilización de ambientes virtuais - Parte 3

Por , venres 04 de decembro de 2009 23:37

Introdución

Eu traballo nunha empresa na que corremos moitos traballos en lote procesar millóns de rexistros de datos de cada día e eu estiven a pensar recentemente sobre as máquinas que se sentan ao redor de cada día sen facer nada durante varias horas. Non sería bo se puidésemos utilizar esas máquinas para reforzar o poder de procesamento dos nosos sistemas? Neste conxunto de artigos que eu vou ollar para os potenciais beneficios da contratación dunha oficina de reixa utilización de ambientes virtualizados.

Na parte 2 nós miramos os traballos serán executados nun servidor, e como os traballos deben ser configurados para acadar maior cantidade de procesamento, garantindo que cada traballo é procesado, sen fallar.

Configurar o traballador - ou servidor Limp

O seguinte paso no proceso é a creación dos seus traballadores virtuais. Por iso eu vou usar unha instalación de CentOS usando VirtualBox. Vou instalar MySQL e PHP no servidor, tamén coñecido como Bizkit (Li nux, m ySQL, P HP) Servera (eu poida facer ese nome).

  • Instalar VirtualBox na súa máquina Windows (continuación enlace)
  • Baixo e instala o CentOS (versión actual 5.3) dentro dunha máquina virtual creada

Non adianta ir a este probablemente hai 1.000 's de tutoriais aí fóra (ok, aquí vai un: Creando e Managing CentOS máquina virtual no VirtualBox ). O punto importante a destacar é que supoño que eu chamei miña máquina virtual GridMachine.

Tanto como as miñas opcións do cliente de virtualización de sistema operativo e alí non é gran motivo convincente para cada elección. VirtualBox é algo que eu uso na miña máquina na casa e é apoiado polos tres principais sistemas operativos. Eu escollín o CentOS como o seu sistema operativo unha boa estable e eu uso no meu propio servidor web. Son un gran crente nas ferramentas certas para o traballo (aínda que eu estou aplicando "usar o máis rápido e máis doado para ti" mentalidade aquí), entón o sistema operativo X executa o código máis rápido e máis eficiente usar isto en vez :)

É importante asegurarse de que a súa VM emprega DHCP, se non, para cada nova máquina virtual que debe ser configurado por separado que é algo que non want.By utilizando DHCP non precisa configurar as opcións de rede individualmente para máquinas de traballo, DHCP pode entregar fóra IPs para ti. Así, pode copiar a máquina virtual no escritorio sen se preocupar sobre como configurar cada un para arriba (é dicir mellora a módulos e reduce a administración traballador).

O proceso que debe ter por obxectivo sería conseguir unha nova máquina física, instala o VirtualBox, e, a continuación, practicamente implantar a imaxe virtual sen máis. Pode ser sabio para configurar os seus traballadores en unha sub-rede diferente para que poida, polo menos, ver cantas máquinas están funcionando. Tamén cómpre configurar as súas máquinas nun contrato a longo ou de concesión ilimitada DHCP.

Como facer Jobs sobre o traballador

Esta é unha área interesante e existen varios métodos válidos para procesar os traballos sobre o traballador. Aquí eu só vou discutir os dous máis obvios:

  • Perpetuamente executar o script: Un guión, sexa un shell script, ou un script PHP é executado unha vez sobre o traballador e é executado como parte dun loop infinito. Eu xa descontado a rede como un accidente do guión e, potencialmente, os traballadores deixarán de funcionar sen ningún tipo de intervención.
  • Cron a execución de scripts baseada en: cada X minutos o servizo cron inicia unha chamada ó arquivo para facer as cousas ocorrer. Sen algunhas probas este podería levar a moitas moitas copias da súa carreira guión traballador.

A miña decisión era ir co cron que comeza un shell script cada minutes. 10 O meu guión shell executa as seguintes tarefas:

  1. Faga unha lista de procesos e grep para este 'php'. Se non está, a continuación continuar.
  2. Chame ao seu código de traballo, no meu caso iso sería algo baseado PHP
  3. Guión traballador completa a súa execución
  4. Preparado para ir de novo a próxima chamada axeitada

O meu script bash parece algo como o seguinte:

  #! / Bin / sh
 se ps ax | grep-v grep | grep php> / dev / null
 entón
     echo "Job está a procesar, de saída"
 outro
     echo "O traballo non está en execución, comezar agora"
     php yourJobProcessingScript.php
 fi 

Nota: o de eco son case completamente inútil, pero pode axudar a seguinte persoa que vén para intentar editalos.

Isto conclúe a configuración da máquina de traballo virtual, rápido, sinxelo e fácil de copiar a cada nova peza de hardware que é recibido. A "intelixencia" do sistema de rede realmente non é visualizado no sistema operativo, é todo que ver co código creado para traballos do proceso, a configuración do traballo, e para garantir que o traballo é executado no seu caso (ou sexa, cando o anfitrión é ocioso ).

Configurando o Windows para arrincar Traballadores

A primeira tarefa é descubrir o comando necesario para realizar a máquina virtual dende a liña de comandos de Windows. Se instalar o VirtualBox na localización predefinida e nomeou o seu traballador GridMachine entón o mando necesario para cargar o seu traballador é:

  "C: \ Arquivos de programas \ Sun \ VirtualBox \ VBoxManage.exe" startvm GridMachine 

Con todo, para executar o script nun estado 'sen cabeza', cómpre usar:

  "C: \ Arquivos de programas \ Sun \ VirtualBox \ VBoxHeadless.exe"-startvm GridMachine - VRDP = off 

Isto iniciar a máquina virtual sen a GUI e permitir que salva o estado graciosamente. O segundo argumento desactiva RDP polo que non entra en conflito con fiestras RDP, ou dar-lle unha mensaxe sobre escoita na porta 3389. O nome da máquina virtual é sensible a maiúsculas!

A continuación, imos ter definir fiestras ata comezar a nosa VM traballador unha vez que a máquina está ociosa. Para iso (en Windows XP) ten que ir en Inicio -> Programas -> Accesorios -> Ferramentas do Sistema -> Tarefas programadas conforme a continuación:

tarefas programadas

A continuación preme en "engadir tarefa programada 'seguido de navegar para engadir un programa personalizado. Desprácese ata o guión VBoxManage e prema en Aceptar. Agende súa tarefa para calquera das opcións (imos cambiar isto nun minuto) e seguir. Despois de saltar a seguinte pantalla de Windows ha pedir que quere levar a cabo esta tarefa, eu sugiro que sexa "administrador" ou crear un novo usuario privilexiado. Lembre que non queremos interferir na conta persoal estándar na máquina en calquera momento. Preme aquí ao lado e confía concerto advanced options para esta tarefa.

Para o fin da caixa de texto longo engadir noso cadea 'startvm GridMachine "e garantir que execución só cando conectado queda DESestablecido. Visita a tarefa seguinte programa e cambiar o programa de caer para a opción "cando ocioso", escolla a cantidade de tempo que lle gustaría que o ordenador estea ausente antes de pasar á seguinte guía.

Finalmente Desmarque a opción que afirma deixar a tarefa se foi correndo X cantidade de tempo, pero non sinalar a opción de deixar a tarefa a máquina non está ociosa.

programar

É iso entón, para a configuración de servidor de Windows!

Resumo

Nesta parte temos un conxunto de unha máquina virtual para actuar como un traballador, así como a forma na que chamamos e realizar os nosos scripts de procesamento de traballo (para min un script PHP). A partir de aquí, veremos como configurar nosas copias de Windows para iniciar a máquina virtual no modo headless cando o computador pasa a ser ocioso, e gardar o seu estado cando o usuario retomar a utilización da máquina. Esperemos que neste momento está a ver como é simple para configurar un sistema deste tipo e está ansioso para comezar algunhas experiencias vai vostede mesmo!

Próxima vez

Na Parte 4 , imos estar a ollar para o uso de ferramentas para garantir que está a empregar a última versión das fontes de código e datos, para que os resultados obtidos son sempre up-to-date coas últimas información da empresa e da lóxica.

Office Computing Reixa utilización de ambientes virtuais - Parte 1

Por , venres 04 de decembro de 2009 11:23

Introdución

Eu traballo nunha empresa na que corremos moitos traballos en lote procesar millóns de rexistros de datos de cada día e eu estiven a pensar recentemente sobre as máquinas que se sentan ao redor de cada día sen facer nada durante varias horas. Non sería bo se puidésemos utilizar esas máquinas para reforzar o poder de procesamento dos nosos sistemas? Neste conxunto de artigos que eu vou ollar para os potenciais beneficios da contratación dunha oficina de reixa utilización de ambientes virtualizados.

Como PHP desenvolvedor vou usar as ferramentas que eu uso todos os días, ou sexa, Linux, MySQL , PHP, VirtualBox e Subversion (SVN). Con todo, eu espero que esta guía pode adaptarse a outras linguaxes e tecnoloxías tamén.

A solución que fornecer serán moi vagamente baseado no tipo de procesamento que sería necesario para conseguir, pode non ser verdade a través de todo o artigo como eu vou cambiar as cousas para a simplicidade, ou para producir escenarios de uso máis interesantes.

Estes ambientes virtualizados serán executados en máquinas Windows porque é o que a maioría das oficinas executado. O tratamento que as máquinas de oficina non debe interferir co persoal utilizando esas máquinas, deben non necesitan de mantemento na máquina, e ser facilmente salientable para novas máquinas que estean dispoñibles. Ademais, novas máquinas virtuais non debe esixir calquera configuración adicional, xa que reduce a módulos ea facilidade con que o sistema de rede pode ser prorrogado.

Por que implantar un Grid Computing Office?

En primeiro lugar, pode estar a pensar, por que non usar un recurso de computación en nube como plataforma EC2 de Amazon ? Ben, as razóns poden ser varias, por exemplo:

  • Non vai confiar certos datos para un ambiente de computación en nube
  • Non podes poñer algúns datos nun entorno de cloud computing, por motivos legais (por exemplo, datos de deixar o país), potencialmente, por razóns legais, por exemplo, os rexistros do SNS.
  • Vostede quere manter as súas unidades de procesamento de pechar e ten control total sobre o hardware tamén
  • Non ten os fondos do proxecto de execución de instancias de nubes
  • Súa oficina non ten unha conexión a internet e, por tanto, que non é posible utilizar un recurso de nube
  • Non gusta de choiva, nubes de chuvia suxiren, polo tanto, a manter moi lonxe

Estou seguro que a lista podería continuar, pero eu creo que é suficiente polo de agora.

Vantaxes dun Grid Computing Oficina

Ben, imos facer algunha matemática (e ao grande física realidade imos facer algunhas suposicións ampla). Imaxina que ten de procesamento do servidor gran executando beefy 100 postos de traballo ao día. Na súa oficina, ten 50 máquinas que están ociosos 16 horas ao día, cada unha destas máquinas é do 10% tan poderoso como o seu Sever procesamento robusto. (Todos os resultados aquí son redondeados a subestimar aumento de rendemento).

Así, unha máquina de poder do * 10% * 2/3 do tempo = 0,067 é dicir, procesamento escritorio 1 o tempo ocioso pode procesar 6 prazas de emprego completas por día.

Se agora escalar isto leva 15 escritorios ociosos para procesar traballos como moitos por día como o seu servidor de procesamento principal fai.

Así, na nosa oficina finxir de 50 máquinas, poderiamos aumentar o noso poder de procesamento a partir do 1 servidor ata 4 servidores de procesamento pleno, ou poderiamos estar procesar 400 empregos ao día en vez de 100.

Aviso previo, por ningún investimento en hardware novo a súa empresa acaba de ampliar a súa capacidade de procesamento en lote 4 veces! Potencialmente vai aumentar o seu consumo de enerxía, senón da maioría dos ambientes de escritorio que estiveron en máquinas son xeralmente deixadas pola noite de calquera xeito, así que podería ver isto como unha iniciativa verde.

Outras vantaxes tamén significa que o investimento en novas (ou actualizado) servidores de procesamento pode ser adiada se as máquinas da súa oficina son suficientes e que, como mellorar o poder das súas máquinas de oficina a súa reixa oficina faise máis poderosa automaticamente.

Tecnoloxías

O que precisa? (Ou máis correctamente o que eu uso):

  • Ociosos de máquinas de oficina (no meu caso un libre de idade fiestras portátil XP)
  • VirtualBox (ou outro software de virtualización de cliente)
  • Unha máquina virtual con PHP, MySQL running executando un corte OS, eu estou chamando eses servidores meus Limp :)
  • Traballos para seren executados
  • Servidor Job (pode ser outra máquina virtual nalgún lugar)

Empregos típicos

Tipo de emprego que este sistema está deseñado para executar é o seguinte:

  • Sistema recibe unha lista de datos sobre a que necesitamos para responder e devolver resultados
  • Correspondencia implica comprobar / buscar varias fontes (bastante fixa) de datos
  • Resultados das fontes de datos poden requirir unha validación adicional, fusión, comprobación de fontes de datos adicionais en resposta aos resultados
  • Os datos son devoltos con rexistros correspondentes debidamente validados e procesados
  • Cada rexistro dentro dun traballo é independente do resto

Entón, basicamente, estamos mirando para realizar traballos que requiren unha mestura de investigacións da base de datos e algún procesamento de números, un escenario bastante común en un ambiente de negocios.

Solucións de redes non só son vantaxosos para procesar os traballos deste tipo. Basicamente, calquera proceso que pode ser dividida en unidades independentes poden ser executados en paralelo. Vexa esta wikipedia exemplos e máis información: Grid Computing , pero un par de exemplos famosos son Seti @ Home e BIONC . Hai cadros para a execución de redes de computación, e estes valen a pena ollar en.

O que imos conseguir?

Ao final destes artigos, espero mostrar que a implantación dunha reixa de oficina non precisa estar consumindo moi caros ou de tempo. Estou indo para discutir:

  • Configurar o sistema de control de traballo, configuración de traballo
  • Creando unha máquina de procesamento virtual axeitada
  • Como configurar o sistema nunha máquina Windows
  • Garantir que está a usar o código máis recente e os datos
  • Implantación e avaliación do desempeño
  • Mirando cara o futuro

Eu estarei de construción (ok eu constrúe, entón escribín iso) unha aplicación de exemplo para probar os conceptos nunha máquina local usando o Windows XP e miña máquina GridMachine 'virtual. O meu servidor de control de traballo será a miña máquina principal, que corre o Fedora 11 .

Isto é así sentido para demostrar un sistema totalmente funcional robusto, o seu significado máis dunha demostración e discusión mostrando que estas cousas pode ser conseguida nun período de tempo razoablemente curto e con custos relativamente reducidos. Sinto-se libre para me enviar os comentarios, correccións ou melloras e eu vou facer o meu mellor para manter este artigo actualizado para corresponden.

Próxima vez

Na parte 2 vou comezar por ollar para o sistema de control de traballo, e ollar en como os traballos deben ser configurados para acadar maior cantidade de procesamento, garantindo que cada traballo é procesado, sen fallar.













Tema por Panorama Themocracy

3 visitantes en liña agora
1 visitantes, 2 bots, 0 membros
Max visitantes hoxe: 8 ás 03:49 pm UTC
Este mes: 56 en 25-04-2012 08:41 pm UTC
Este ano: 69 en 27-02-2012 09:56 pm UTC
Todas as horas: 130 en 28-03-2011 10:40 UTC