Cosa è più importante per un server di database? Mem? Velocità Mem? Cores?


11

Sposterò il mio server di database su un nuovo hardware leggermente migliore. L'attuale server di database non ha alcun problema, tranne per il fatto che esegue Centos 4. L'hardware corrente è 2 xeon quad core 5335, 4 15 K RPM in RAID 10 e 4 GB (sì, in realtà è solo 4 GB) di memoria.

Le scelte hardware nel mio budget non hanno quasi differenze di prezzo e avranno gli stessi 4 hard disk da 15K RPM in RAID 10. Sono:

  • 2 xeon 5335 quad core con 8GB 533/667
  • 2 xeon con nucleo esagonale 2620 con 16GB 1333
  • 4 opteron dual core 8212 con 8 GB 667
  • 1 octo core xeon 2650 con 8 GB 1333
  • 1 xeon 3460 quad core con 16GB 1333

Escludendo i dischi rigidi, qual è l'ordine delle parti importanti di un server di database? È qualcosa di simile: dimensione della memoria, velocità della memoria, core e quindi dimensione della cache?


3
Qual è il tuo attuale utilizzo sulla CPU? Corri al 10%? 50%? Se sei ~ 30-40% su base regolare, allora sembra che il 2620 con 16 GB di RAM sia quello che vuoi (un chip hexacore Q1`12 con 16 GB di RAM RAPIDA? Sì, per favore)
jcolebrand,

@jcolebrand Questo è quello che stavo pensando sarebbe il migliore. Utilizzo del 10-20% in media con punte al 30-40% a volte.
Echo dice che ripristina Monica il

XEON 2620 a 2 GHz, XEON 3460 a 2,8 GHz?
Nils,

Risposte:


21

Nella mia esperienza, quello che stai cercando sarebbe in questo ordine di priorità:

  1. Velocità del sottosistema del disco. RAID10 nella mia esperienza è il migliore. Punti bonus per SSD.
  2. Quantità totale di RAM Più RAM, più cache sarà in grado di avere il server.
  3. Velocità di memoria. La RAM più veloce è ovviamente migliore della RAM più lenta, tuttavia la RAM è sempre più veloce dei dischi, quindi una RAM più lenta è migliore della RAM meno veloce.
  4. Numero di core della CPU
  5. Velocità della CPU

Questo ovviamente dipende dall'applicazione, ma in genere il compito di un server di database è fornire un accesso molto veloce ai dati, quindi la velocità della CPU è meno importante della velocità di accesso ai dati (dischi e RAM). Ma ovviamente se usi molte matematiche / calcoli nelle tue query, hai bisogno di più risorse CPU.


2
a seconda dell'architettura db direi che un numero maggiore di core sarebbe complessivamente migliore di una maggiore velocità della CPU, perché una frequenza di clock superiore! = pipeline più corta e ci sono troppe cose da considerare lì, ma con più core, il sistema operativo può avere più spazio per eseguono processi secondari e i motori sono generalmente abbastanza intelligenti da essere in grado di diffondersi su più core.
jcolebrand,

@jcolebrand punto preso e risposta aggiornata!
Josh,

2
Dato che MySQL è stato menzionato in modo specifico, i processori più veloci sono in genere una scelta migliore rispetto ad altri (supponendo che non si stia parlando solo di 1 o 2), poiché la velocità di una singola query è sostanzialmente limitata dalla velocità di un singolo processore. Anche le versioni più recenti di MySQL non si adattano così come alcuni altri RDBMS su più core a causa della contesa interna di mutex e semafori. Gestisco diversi server core 24 e darei il braccio sinistro per scambiarli per la metà del numero di core che sono 1,5 volte più veloci.
Aaron Brown,

7

Quando si tratta di MySQL, è necessario considerare anche il motore di archiviazione predefinito dei dati.

Se si utilizzano solo dati MyISAM, è necessario considerare solo quanto segue

Velocità disco, Velocità memoria, RAM totale, CPU

Il numero di core è un grande fattore negativo poiché MyISAM (in effetti, mysqld) non utilizza più core.

Se usi solo i dati InnoDB, ora hai qualcosa di cui parlare quando si tratta di core.

MySQL 5.5 ora include il supporto multicore per InnoDB.

Tutte le CPU si accenderanno su tutti i cilindri per InnoDB finché configurerai correttamente InnoDB. Che ci crediate o no, se non configurate InnoDB, ci sono casi in cui le versioni precedenti di InnoDB saranno immediatamente più veloci rispetto alle versioni più recenti.

Nota per i moderatori

Se ci sono troppi collegamenti, non sottovalutare. Avvisami e posso parafrasare gli estratti di quei collegamenti.


Buono a sapersi. Molte tabelle sono MyISAM, ma la maggior parte, se non tutte, possono essere cambiate in InnoDB, che stavo pensando di fare comunque. Ho intenzione di passare alla versione 5.1 (dalla 4.1)
Echo dice Reinstate Monica il

Devi eseguire l'aggiornamento a 5.5. MySQL 5.1 richiede il plug-in. È più semplice andare al 5.5.
RolandoMySQLDBA,

Il plug-in InnoDB può essere installato facilmente in 5.1. Inoltre, Percona Server 5.1 si basa sul plugin InnoDB.
Aaron Brown,

@AaronBrown: Poiché Echo ha MySQL 4.1, Percona 5.1 o MySQL 5.5 lo farebbero. Anche se ho già installato i plugin semisync 5.5 in precedenza, sono solo un po 'pigro sui plugin.
RolandoMySQLDBA

0

Da tutto ciò che è già stato detto e da quello che mi sembra dai server DB: "2 xeon 2620 hex core con 16GB 1333" mi sembra la prima scelta.

Utilizzare RDIMM3 con una velocità di 1333 MHz: 12 o 15 GB sono decisamente più veloci di 16 GB, poiché è possibile dividere il numero di DIMM per 3.

Se il tuo DB è pesante nelle scritture, cerca anche buone prestazioni di I / O del disco.

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.