Pergunta

Eu trabalho para uma grande empresa que executa um muito de servidores baseados em x86 em que corremos JVMs.

Nós temos experimentado com sucesso com VMWare ESX para obter um melhor uso fora de nosso centro de dados. Mas estes continuam a consumir uma grande quantidade de energia por unidade de processamento.

Tive uma ideia louca que nós devemos ressuscitar mainframes, poderíamos sediar tanto lotes de JVMs ou máquinas virtuais.

Alguém já tentou isso? Há alguma boa relação custo-benefício?

Você perder a flexibilidade? Por exemplo. temos mainframes em outras partes da empresa, mas eles parecem ter uso muito mais rígida das máquinas .. lotes de controle de mudanças, longos prazos etc

Foi útil?

Solução

Tudo isso pressupõe que você está falando de Java no z / OS e não correr Linux VM no mainframe para aproveitar as economias de custo que vêm com menos máquinas.

Os meus pensamentos sobre virtualização estão no final deste e é provavelmente a rota que você quer olhar, mas eu vou começar com Z / OS, uma vez que é o que mainframes são tradicionalmente associados e com o que eu tenho familiaridade com. Tenho alguma experiência com mainframes Java.

A resposta curta é, isso depende, mas provavelmente não. O que exatamente são as suas aplicações? O mainframe é um ambiente difícil em comparação com os servidores x86. Se você estiver executando I / cargas de trabalho de S intensiva sob algo como Websphere, pode valer a pena, assumindo seu mainframe é subutilizada.

Na minha experiência, Java é terrivelmente lento em um mainframe, mas isso é porque o sistema que eu usei foi criado para flexibilidade desenvolvedor ao invés de desempenho. Isso só vai provar ajuste de desempenho no mainframe é geralmente muito mais complicado, em seguida, em um servidor média desde mainframes será executado muito mais cargas de trabalho, em seguida, um servidor x86 genérico.

Lembre-se que o mainframe é projetado principalmente para I / O e pode superar qualquer servidor x86 normal a isso. Ele não foi projetado para fazer um monte de cálculos computacionalmente intensivas, portanto, não irá superar um pequeno aglomerado de x86 servidores se você está fazendo um monte de matemática.

Os controles de mudança em mainframes estão lá por um bom motivo - se um x86 servidor tem um problema, você reiniciá-lo. Se um mainframe tem um problema, a cada segundo que é para baixo está a custar o dinheiro da empresa. Você também tem que ter em conta qualquer código nativo seus aplicativos dependem ou bibliotecas de terceiros que podem usar código nativo. Tudo o que o código teria de ser portado.

Configuração de um mainframe também leva muito mais tempo, em média, em seguida, em um servidor x86. Gostaria de sugerir que, se você quiser olhar seriamente para isso, você fazer um business case melhor do que economia de energia, tais como a integração com aplicativos de negócios atuais e começar pequeno ou com uma prova de conceito ou uma nova aplicação. Um que não é crítica de negócio, que pode ser implementado para tirar proveito dos pontos fortes mainframes.

mainframes IBM também pode rodar o Linux em modo nativo ou um ambiente virtualizado semelhante ao VMWare. A menos que sua empresa é a exceção à regra, suas instâncias Linux seria executado como máquinas virtuais. Eu não tive muita experiência com isso, mas, se a sua aplicação não depende de nenhum código nativo e é executado no Linux, ele provavelmente iria funcionar em um mainframe rodando Linux. Para mais informações sobre o Linux em mainframes ver este link .

Outras dicas

IBM torna um co-processador especial Java que você deveria considerar seriamente. Eu não iria correr Java nos motores gerais, pois isso pode aumentar os encargos MPU para software licenciado.

Temos vasta experiência em execução Java em Windows, Linux e no IBM SystemI (ou iSeries ou AS / 400, dependendo do humor da IBM que ano) minicomputadores. É minha opinião que a plataforma mini-computador parece oferecer muito menos retorno para seus investimentos contra moderno multi-core x86 CPU de.

Note que os benefícios Java mais facilmente de ter vários núcleos disponíveis do software típico de hoje, por causa de sua natureza inerentemente multithreaded -. Isso seria ainda mais verdadeiro como você executar vários JVMs

Dito isso, você normalmente será capaz de obter muitos núcleos mais CPU disponíveis com melhor largura de banda para memória de acesso em um mini ou mainframe e melhor rendimento em subsistemas de disco (geral) assim que estes sistemas podem muito bem escala muito melhor como você atirar mais JVMs sobre eles.

IBM permite isso. Alguns de seus mainframes pode conter processadores acelerador Java que correm o bytecode nativamente para mais desempenho. Eles também têm aceleradores DB2 e, possivelmente, alguns para operações XML.

Eu nunca tive de jogar com qualquer um deles, mas eu tinha certeza de amor.

Embora eu tenha sido na indústria desde 1975, já não estou certo de que é um "mainframes" é. Minha máquina de desenvolvimento atual tem quatro processadores de 3 GHz nele, 8GB de RAM e 750GB de espaço em disco (RAID 1, por isso é realmente o dobro), e dois monitores de tela plana de 19 polegadas.

Isso é porque eu estou lá em um contrato. Os funcionários têm caixas muito mais poderosos do que o meu.

Eu entendo que as máquinas de servidor, especialmente os servidores de banco de dados, são muito mais rápidos.

Mainframe?

Dependendo você carga de trabalho este vale a pena olhar!

Há uma série desconcertante de opções disponíveis para você apenas usando o hardware IBM:

  1. A sua definitivamente vale a pena considerar o suplemento em processadores java. (Estes não são realmente aquela forma diferente as CPUs padrão é apenas são restrita a cargas de trabalho java JVM - e - mais importante são excluídos cpu base o preço da licença do software).

  2. Você pode executar multple Linux VMs cada ruuning thier próprio aplicativo Java.

  3. Você pode executar várias VMs nativa correndo mudando o sistema operacional minimalista costumava ser chamado de DOS, mas eles mudam o nome a cada dois anos. As licenças de software são mais baratos que o sistema operacional principal, mas tem muito limitado funcionalidade que acaba por ser uma vantagem se você estiver executando auto-contido formulários.

  4. Você pode executar no ambiente monstro z / OS ou: -

a. Dentro USS (Unix System Services) que é praticamente um UNIX completo OS rodando no interior do pai z / OS.

b. Execute o aplicativo java em sua própria tarefa iniciada (== unix daemon).

c. Execute o aplicativo dentro CICS. (Provavelmente não como você precisa usar API CICS / Java, onde você faria normalmente usam APIs Servlet / J2EE para que você aplicativo exigiria uma reescrita.)

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top