Saya akan menyiapkan server database (MySQL) dalam wadah OpenVZ dan saya bertanya-tanya berapa banyak CPU yang harus saya tetapkan untuk itu. Saya memutuskan untuk membandingkannya. Saya membandingkan dua distribusi OS / MySQL dan menguji kinerjanya dengan CPU 1, 2, 3 dan 4.
Konfigurasi perangkat lunak pertama adalah:
- Rilis CentOS 6.5 (Final)
- mysql Ver 14.14 Distrib 5.1.71, untuk redhat-linux-gnu (x86_64) menggunakan readline 5.1
Kedua:
- Debian GNU / Linux 7 \ n \ l
- mysql Ver 14.14 Distrib 5.5.31, untuk debian-linux-gnu (x86_64) menggunakan readline 6.2
Keduanya berjalan pada kernel yang sama - 2.6.32-openvz-042stab083.2-amd64 # 1 SMP Fri 8 Nov 17:59:25 MSK 2013 x86_64 GNU / Linux.
Semua perangkat lunak diinstal dari paket dan digunakan di luar kotak tanpa penyesuaian konfigurasi khusus.
Perangkat keras: RAM 6GB, 1-4 CPU 3.5 GHz.
Untuk pembandingan saya menggunakan sysbench dengan skenario berikut:
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
Dalam kedua kasus mesin tabel adalah InnoDB.
Output yang saya lihat adalah jumlah transaksi per detik. Hasilnya cukup stabil - kesalahannya kurang dari 1%.
Hasilnya bagus dan diharapkan untuk CentOS / MySQL5.1, tetapi sangat aneh untuk Debian / MySQL5.5:
Seperti yang Anda lihat, MySQL5.5 pada Debian gagal memanfaatkan beberapa CPU dengan benar. Sementara kinerja dengan 2 CPU lebih tinggi daripada dengan 1, itu jelas lebih rendah daripada pada CentOS / MySQL5.1. Selain itu, turun ketika kita menambahkan lebih banyak CPU di atas 2 yang benar-benar aneh.
Bisakah seseorang tolong jelaskan apa yang terjadi di sana? Mengapa di Bumi MySQL akan lebih buruk ketika kita menambahkan CPU?