Server database: RAM veloce piccola o RAM lenta grande?


33

Attualmente stiamo progettando i nostri nuovi server di database e abbiamo trovato un compromesso. Non sono del tutto sicuro di come rispondere.

Queste sono le nostre opzioni: 48 GB 1333 MHz o 96 GB 1066 MHz.

Il mio pensiero è che la RAM dovrebbe essere abbondante per un server di database (disponiamo di molti dati in abbondanza e alcune query molto grandi) piuttosto che veloce come potrebbe essere. Apparentemente non possiamo ottenere chip da 16 GB a 1333 MHz, quindi le scelte sopra.

Quindi, dovremmo ottenere molta RAM più lenta o meno RAM più veloce?

Informazioni extra:

Numero di slot DIMM disponibili: 6
server: CPU Dell Blades: 6 core (solo socket singolo grazie alla licenza Oracle).


12
IMO, il 100% in più di capacità della RAM batte un ulteriore 20% nella velocità della RAM.
Joe Internet,

3
Soprattutto perché non è nemmeno del 20%;)
TomTom

Grazie a tutti. Ne ero anche abbastanza sicuro, ma volevo conferma.
Josh Smeaton,

Risposte:


59

Avrai voglia di andare con la RAM grande e lenta. La differenza nelle prestazioni della RAM è trascurabile rispetto alla differenza tra le prestazioni della RAM e le prestazioni del disco.


Naturalmente, questo dipende dalle dimensioni del database: dettagli di base ma comunque importanti.
Morg.

Sì, e Josh ha specificato chiaramente che lo scenario in questione prevede "molti dati in abbondanza".
Skyhawk,

Per alcune persone, un milione di righe sembra "abbondanza e abbondanza di dati" Difficilmente un motivo per non avere tutto in memoria;)
Morg.

16

Va bene, è molto, molto semplice:

Il tuo database si adatta a 48 GB di RAM con sistema operativo e tutto il resto? se sì, prendilo. Altrimenti, prendi 96 GB

Inoltre, adattamento del database in xyz GB di RAM significa che si adatta a indici, viste e tutto il resto.

I commenti SSD sono completamente privi di senso, sia la larghezza di banda che il tempo di accesso non sono allo stesso livello e nessun SSD può giustificare l'assunzione di meno RAM.


5
Questa è un'informazione molto importante. Se il database ha solo 5 GB e non si prevede che diventerà molto più grande, allora potresti anche utilizzare una quantità inferiore di RAM più veloce.
Kibbee,

13

Solo database? A seconda del database, penso che la RAM più grande sarebbe meglio. È stato dimostrato che la differenza di velocità è minuscola al massimo, ma i 48 gb aggiuntivi / potrebbero fare una differenza enorme.


11

RAM decisamente grande, velocità da dannare.

L'accesso ai dati casuali per la tecnologia RAM del XX secolo '90 è inferiore a 100 ns. Sta usando chip praticamente antichi che non si adatteranno nemmeno fisicamente a qualcosa di borderline contemporaneo.

L'accesso ai dati casuali per i dischi rigidi da 15k rpm all'avanguardia è misurato in millisecondi. 100 ns è 10.000 volte più corto (nano -> micro -> milli) di 1 ms. La RAM corrente è più veloce e l'HDD richiede diversi millisecondi per accedere ai dati. Non me ne può fregare di meno se la mia RAM fosse 50.000 più veloce o solo 30.000 volte più veloce dell'HDD, se potessi ottenere di più.


5

È necessario prestare attenzione in alcuni punti:

  • Lantecy della memoria La velocità della memoria dipende da due fattori: velocità del bus e latenza. Di solito i chip con una maggiore densità si traducono in una latenza più elevata, che alla fine significa meno velocità
  • Dati indice totali Y più critico per caricare in memoria tutti i dati dell'indice. I dati dell'indice sono i dati più importanti di cui hai bisogno in memoria (maggiore penalità nelle prestazioni).
  • Velocità del disco I dati del DB sono memorizzati nell'SSD? Se la risposta è sì, presta particolare attenzione alla latenza della memoria.

2

LARGHEZZA DI BANDA DI MEMORIA = / = VELOCITÀ!

Probabilmente il pezzo più importante di informazioni mancanti sono i tempi di memoria e il tipo di CPU / FSB. abbassa di alcuni cicli il ritardo di caricamento della memoria della CPU e in determinati calcoli aumenterai il doppio della larghezza di banda. Alcuni database non usano enormi quantità di RAM a causa del sistema operativo e motivi tecnici, quale server di database stai usando? Tipo di CPU? L [123] livelli di cache? tipo di query da eseguire? dimensione del database?


2
-1. Realmente sbagliato nel 99,9% dei casi.
TomTom,

A quale parte ti riferisci?
Silverfire,

2
Qualsiasi database più grande della memoria rallenta immediatamente. i cicli della CPU sono uno scherzo rispetto - a meno che non sia un caso OLAP molto speciale - introdotto la latenza IO. La maggior parte dei database utilizza enormi quantità di RAM: il SERVER di data base più grande che abbia mai visto che non è uno scherzo per un piccolo database è molto più grande nell'uso della RAM rispetto alla workstation media. A meno che non insista sull'uso di tecnologie estremamente obsolete ("limiti del sistema operativo"). E né la velocità della CPU né il tipo di fsb fanno la differenza: i database hanno bisogno di memoria.
TomTom,

0

Prima di spendere troppi soldi per hardware sbagliato, farei alcuni test e analisi prima di acquistare hardware.

  • Prima di tutto, pensa al tuo SLA.
  • requisiti severi per prestazioni e tempi di risposta?

La tua scelta dovrebbe dipendere da molti fattori:

  • sotto diversi carichi di lavoro e usi, qual è in realtà il collo di bottiglia?
  • CPU, memoria, memoria, rete?
  • È forse più importante spendere più soldi per uno spazio di archiviazione più rapido di più memoria?
  • CPU più veloce di più memoria? rete più veloce? riprogettazione minore su sofware / sql?

  • la tua analisi potrebbe anche essere molto rilevante per gli sviluppatori, architetti di database e software e progettisti di query sql .....

Se stai usando Windows, potresti facilmente eseguire perfmon per vedere alcune statistiche sull'attuale sistema in esecuzione e potresti essere molto fortunato ad avere un'idea chiara delle tue esigenze.


1
Sono uno sviluppatore e sto contribuendo a valutare questa decisione. Ci manca un vero amministratore di sistema, quindi tutti (6 di noi) abbiamo input nella discussione. I nostri server attuali sono a 32 bit e non sono in grado di fare molto a causa del limite di memoria per processo. La nostra rete / archiviazione va (dovrebbe essere) per il momento. Il back-end di archiviazione è una SAN. La nostra CPU non è mai massima. La maggior parte dei costi associati alle nostre query è I / O, che dovrebbe essere alleviato dalla possibilità di utilizzare più RAM. Stiamo anche effettuando l'aggiornamento a RAC. Abbiamo un'idea chiara di ciò di cui abbiamo bisogno. È la minutia che è discutibile.
Josh Smeaton,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.