L'aggiunta di CPU riduce le prestazioni di MySQL 5.5 (Debian)


8

Sto per installare un server di database (MySQL) nel contenitore OpenVZ e mi chiedo quante CPU dovrei assegnargli. Ho deciso di confrontarlo. Ho confrontato due distribuzioni OS / MySQL e testato le loro prestazioni con 1, 2, 3 e 4 CPU.

La prima configurazione software è stata:

  • CentOS versione 6.5 (finale)
  • mysql Ver 14.14 Distrib 5.1.71, per redhat-linux-gnu (x86_64) usando readline 5.1

Il secondo:

  • Debian GNU / Linux 7 \ n \ l
  • mysql Ver 14.14 Distrib 5.5.31, per debian-linux-gnu (x86_64) usando readline 6.2

Entrambi erano in esecuzione sullo stesso kernel - 2.6.32-openvz-042stab083.2-amd64 # 1 SMP ven 8 nov 17:59:25 MSK 2013 x86_64 GNU / Linux.

Tutto il software è stato installato dai pacchetti e utilizzato immediatamente senza alcuna modifica della configurazione personalizzata.

Hardware: 6 GB RAM, 1-4 CPU 3,5 GHz.

Per il benchmarking ho usato sysbench con il seguente scenario:

sysbench --test=oltp --oltp-table-size=1000000 --mysql-db=test --mysql-user=root --db-driver=mysql --mysql-password=d prepare
sysbench --test=oltp --oltp-table-size=1000000 --mysql-db=test --mysql-user=root --db-driver=mysql --mysql-password=d --max-time=60 --oltp-read-only=on --max-requests=0 --num-threads=8 run

In entrambi i casi il motore della tabella era InnoDB.

L'output che stavo guardando era il numero di transazioni al secondo. I risultati erano abbastanza stabili: l'errore era inferiore all'1%.

I risultati sono stati buoni e attesi per CentOS / MySQL5.1, ma molto strano per Debian / MySQL5.5: inserisci qui la descrizione dell'immagine

Come puoi vedere, MySQL5.5 su Debian non riesce a sfruttare correttamente più CPU. Mentre le prestazioni con 2 CPU sono superiori a quelle con 1, sono chiaramente inferiori rispetto a CentOS / MySQL5.1. Inoltre, diminuisce quando aggiungiamo più CPU in cima a 2, il che è davvero strano.

Qualcuno può spiegare cosa sta succedendo lì? Perché mai MySQL dovrebbe peggiorare con l'aggiunta di CPU?


La contesa di risorse potrebbe essere in gioco qui - hai molti altri server / container virtuali in esecuzione su questo host? È possibile che i processori fisici fossero sotto carico durante il benchmark dell'installazione di Debian?
luce nera il

I risultati erano / sono abbastanza riproducibili. Era il mio server bare metal domestico e non l'ho caricato con nient'altro durante il test.
Greendrake,

Voglio dire, c'erano ovviamente alcune altre macchine virtuali sul server, ma erano inattive.
Greendrake,

Avrei detto kernel, ma è lo stesso ... Potresti provare a usare la stessa versione su entrambi i sistemi?
miniBill

uno diverso, debian usa eglibc en.wikipedia.org/wiki/Embedded_GLIBC , forse questo non è il problema
c4f4t0r

Risposte:



1

Beh, è ​​una domanda davvero importante senza prima sapere qualcosa sull'architettura che si sta eseguendo .. ma generalmente c'è un impatto esponenziale sulla velocità del bus quando si aggiunge la capacità della CPU, in particolare l'architettura che supporta più processori multi core, basta fermarsi e pensare per un momento di le implicazioni sul ciclo di interruzione attraverso qualunque limitazione della larghezza di banda del bus dispiegata .... in ogni caso di prestazione ... capendo che la vostra architettura o collocherà I / O collo o Bit per ciclo, ancora una volta tenere presente che più CPU necessitano di thread multipli .. quindi, indipendentemente dalla velocità del tuo FSB ... se l'hardware è solo a 64 bit, la connettività elettrica fisica dovrà condividere questa limitazione su altrettanti core nello stesso ciclo di clock ...ora fermati e pensa alle implicazioni positive dell'aggiornamento da una scheda di sistema a 64 bit a una scheda a 256 bit, potresti ottenere un throughput x3 volte migliore alla massima inclinazione, dato che x1 verrà speso per il threading / il mantenimento delle operazioni generali .. tuttavia durante le normali operazioni potresti riscontrare una realtà scomoda per il sovraccarico quando hai solo bisogno di un singolo processore / operatore .. Immagino sia un atto di bilanciamento o più specificamente il cavallo giusto per il corso giusto .. Steveo Reedo nextfriend@live.co.ukImmagino sia un atto di bilanciamento o più precisamente il cavallo giusto per la giusta rotta .. Steveo Reedo nextfriend@live.co.ukImmagino sia un atto di bilanciamento o più precisamente il cavallo giusto per la giusta rotta .. Steveo Reedo nextfriend@live.co.uk


0

Quando aggiungi CPU, la cosa farà più operazioni in parallelo. Se non si è aumentato il numero di RAM, si può verificare lo scambio, specialmente se si utilizza una versione più grassa (e più recente significa più grasso) del software che si sta testando.

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.