Domanda

Io lavoro per una grande azienda che esegue un molto di server x86 su cui corriamo JVM.

Abbiamo sperimentato con successo con VMWare ESX per ottenere un migliore utilizzo fuori del nostro centro dati. Ma questi ancora consumano un sacco di energia per unità di elaborazione.

Ho avuto un folle idea che dobbiamo risorgere mainframe, potremmo ospitare sia un sacco di JVM o di macchine virtuali.

Qualcuno ha provato questo? Ci sono buoni costi-benefici?

Non si perde flessibilità? Per esempio. abbiamo mainframe in altre parti della società, ma sembra che abbiano l'utilizzo molto più rigida delle macchine .. un sacco di controllo delle modifiche, tempi lunghi etc

È stato utile?

Soluzione

Tutto questo presuppone che si sta parlando di Java su z / OS e non esecuzione di Linux VM sul mainframe per sfruttare il risparmio sui costi che vengono con un minor numero di macchine.

I miei pensieri sulla virtualizzazione sono alla fine di questo ed è probabilmente il percorso che si desidera guardare, ma inizierò con Z / OS in quanto è quello che i mainframe sono tradizionalmente associati con e quello che ho dimestichezza con. Ho una certa esperienza con i mainframe Java.

La risposta breve è: dipende, ma probabilmente non. Che cosa sono esattamente le vostre applicazioni? Il mainframe è un ambiente difficile rispetto ai server x86. Se si sta eseguendo I carichi di lavoro ad alta intensità di / O sotto qualcosa di simile Websphere, potrebbe essere la pena, supponendo che il mainframe è sottoutilizzato.

Nella mia esperienza, Java è terribilmente lento su un mainframe ma è perché il sistema che ho usato è stato istituito per la flessibilità di sviluppo piuttosto che di prestazioni. Questo vale solo per dimostrare l'ottimizzazione delle prestazioni sul mainframe è di solito molto più complicato poi su un server di media in quanto i mainframe saranno in esecuzione molti più carichi di lavoro, allora un server x86 generico.

Ricordate che il mainframe è stato progettato principalmente per il throughput di I / O e può superare qualsiasi server x86 normale a questo. Non è stato progettato per fare un sacco di calcoli di calcolo intensive in modo da non superare un piccolo gruppo di server x86, se stai facendo un sacco di matematica.

I comandi cambio sul mainframe ci sono per una buona ragione - se uno dei server x86 ha un problema, è riavviarlo. Se un mainframe ha un problema, ogni secondo che è giù è che costano i soldi dell'azienda. È inoltre necessario tener conto di qualsiasi codice nativo le applicazioni dipendono o librerie di terze parti che possono utilizzare codice nativo. Tutto ciò che il codice avrebbe dovuto essere portato.

Configurazione di un mainframe prende anche molto più a lungo, in media, poi su un server x86. Vorrei suggerire che, se si vuole guardare seriamente in questo, si effettua una migliore business case di risparmio energetico, come ad esempio una stretta integrazione con le applicazioni di business attuali e partire in piccolo o con una prova di concetto o una nuova applicazione. Uno che non è business-critical, che possono essere implementate per sfruttare i punti di forza mainframe.

mainframe IBM possono anche eseguire Linux in modalità nativa o di un ambiente virtualizzato simile a VMWare. A meno che la vostra azienda è l'eccezione alla regola, le istanze di Linux sarebbero eseguiti come macchine virtuali. Non ho avuto molta esperienza con questo, ma, se la vostra applicazione dipende da alcun codice nativo e gira sotto Linux, sarebbe probabilmente lavorare su un mainframe con Linux. Per ulteriori informazioni su Linux su mainframe vedere questo link .

Altri suggerimenti

IBM fa un co-processore speciale Java che si dovrebbe prendere in seria considerazione. Non vorrei correre Java sui motori generali in quanto ciò potrebbe aumentare le tariffe MPU per il software con licenza.

Abbiamo una vasta esperienza in esecuzione Java sotto Windows, Linux e su IBM Systemi (o iSeries o AS / 400, a seconda dell'umore di IBM quell'anno) minicomputer. E 'mia opinione che la piattaforma mini-computer sembra offrire molto meno bang per il dollaro contro moderno multi-core CPU x86.

Si noti che Java beneficia più facilmente di avere più core disponibili di software tipico di oggi, a causa della sua natura intrinsecamente multithread -. Questo sarebbe ancora più vero, come si esegue più JVM

Detto questo, in genere in grado di ottenere molti più core della CPU disponibili con una migliore larghezza di banda per accedere alla memoria su un mini o mainframe, e una migliore throughput su sottosistemi disco (complessivi) in modo da questi sistemi può benissimo vanno molto meglio, come si gettare più JVM su di loro.

IBM consente questo. Alcuni dei loro mainframe può contenere processori acceleratore Java che gestiscono il bytecode nativo per maggiori prestazioni. Hanno anche acceleratori DB2, e forse un po 'per le operazioni di XML.

Non ho mai avuto modo di giocare con nessuno di loro, ma mi piacerebbe certamente piace.

Anche se non sono stato nel settore dal 1975, non sono più sicuro di quello che un "mainframe" è. La mia macchina di sviluppo attuale ha quattro processori 3 GHz in esso, 8 GB di RAM e 750 GB di spazio su disco (RAID 1, quindi è davvero il doppio di quello), e due monitor a schermo piatto da 19 pollici.

Ecco perché io sono lì su un contratto. I dipendenti hanno tutti scatole molto più potenti della mia.

Mi rendo conto che le macchine server, soprattutto i server di database, sono molto più veloci.

Mainframe?

A seconda del carico di lavoro si questo vale la pena guardare!

Ci sono una serie sconcertante di opzioni a vostra disposizione usando solo l'hardware IBM:

  1. La sua sicuramente vale la pena considerare l'add su processori java. (Questi non sono in realtà che forma diversa alle CPU standard suo solo essi sono limitato a carichi di lavoro Java JVM - e - soprattutto sono esclusi dalla cpu software basato su licenza).

  2. È possibile eseguire multple Linux VM ogni ruuning appenderci possiedono applicazione Java.

  3. È possibile eseguire più macchine virtuali in esecuzione nativa bontà del sistema operativo minimalista utilizzato per essere chiamato DOS ma cambiano il nome ogni due anni. Le licenze software sono più economici rispetto al sistema operativo principale, ma ha molto limitato funzionalità che si rivela essere un vantaggio se si esegue autonomo applicazioni.

  4. È possibile eseguire nell'ambiente mostro z / OS o: -

a. All'interno USS (UNIX System Services), che è praticamente una completa UNIX       OS in esecuzione all'interno del genitore z / OS.

b. Eseguire il java app nel proprio compito iniziato (== unix daemon).

c. Eseguire la vostra applicazione all'interno CICS.       (Probabilmente non è necessario utilizzare API CICS / Java in cui si farebbe        normalmente si usa API / J2EE Servlet in modo da applicazione richiederebbe una riscrittura.)

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top