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:
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?