Apa yang lebih penting untuk server basis data? Nona? Kecepatan Mem? Core?

11

Saya akan memindahkan server database saya ke perangkat keras baru yang agak lebih baik. Server database saat ini tidak memiliki masalah kecuali bahwa ia menjalankan Centos 4. Perangkat keras saat ini adalah 2 quad core xeon 5335, 4 15K RPM di RAID 10 dan 4GB (ya, itu sebenarnya hanya 4GB) memori.

Pilihan perangkat keras dalam anggaran saya hampir tidak memiliki perbedaan harga dan akan memiliki harddrives 4 15K RPM yang sama di RAID 10. Mereka adalah:

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

Tidak termasuk harddrives, bagaimana urutan bagian-bagian penting dari server database? Apakah itu seperti: ukuran memori, kecepatan memori, inti, dan kemudian ukuran cache?

Echo mengatakan Reinstate Monica
sumber
3
Apa utilisasi Anda saat ini pada CPU? Apakah Anda menjalankan 10%? 50%? Jika Anda ~ 30-40% secara teratur, maka tampaknya 2620 dengan RAM 16GB adalah yang Anda inginkan (sebuah chip hexacore Q1`12 dengan RAM CEPAT 16GB? Ya silakan)
jcolebrand
@ jcolebrand Itulah yang saya pikir akan menjadi yang terbaik. Pemanfaatan 10-20% rata-rata dengan paku hingga 30-40% terkadang.
Echo mengatakan Reinstate Monica
XEON 2620 pada 2 GHz, XEON 3460 pada 2,8 GHz?
Nils

Jawaban:

21

Dalam pengalaman saya, apa yang Anda cari akan berada dalam urutan prioritas ini:

  1. Kecepatan subsistem disk. RAID10 dalam pengalaman saya adalah yang terbaik. Poin bonus untuk SSD.
  2. Jumlah total RAM Semakin banyak RAM, semakin banyak cache yang dapat dimiliki server Anda.
  3. Kecepatan memori. RAM lebih cepat jelas lebih baik daripada RAM lebih lambat, namun RAM selalu lebih cepat dari disk, jadi lebih lambat RAM lebih baik daripada RAM lebih cepat.
  4. Jumlah inti CPU
  5. Kecepatan CPU

Ini jelas tergantung pada aplikasinya, tetapi biasanya tugas server database adalah menyediakan akses sangat cepat ke data, sehingga kecepatan CPU kurang penting daripada kecepatan akses ke data (disk dan RAM). Tetapi jelas jika Anda menggunakan banyak matematika / perhitungan dalam permintaan Anda, Anda membutuhkan lebih banyak sumber daya CPU.

Josh
sumber
2
tergantung pada arsitektur db saya akan mengatakan bahwa lebih banyak core secara keseluruhan lebih baik daripada kecepatan cpu, karena clockrate lebih tinggi! = pipa yang lebih pendek, dan ada terlalu banyak hal untuk dipertimbangkan di sana, tetapi dengan lebih banyak core, OS dapat memiliki lebih banyak ruang untuk lakukan proses samping, dan mesin biasanya cukup pintar untuk dapat menyebar sendiri lebih banyak core.
jcolebrand
@jcolebrand point diambil dan jawaban diperbarui!
Josh
2
Karena MySQL secara khusus disebutkan, prosesor yang lebih cepat biasanya merupakan pilihan yang lebih baik daripada lebih banyak (dengan asumsi Anda tidak berbicara hanya 1 atau 2), karena kecepatan permintaan tunggal pada dasarnya dibatasi oleh kecepatan prosesor tunggal. Bahkan versi MySQL terbaru tidak skala serta beberapa RDBMS lainnya di beberapa core karena mutex internal dan pertengkaran semaphore. Saya menjalankan beberapa 24 server inti dan saya akan memberikan lengan kiri saya untuk menukarnya dengan setengah core yang 1,5x lebih cepat.
Aaron Brown
7

Ketika datang ke MySQL, Anda juga harus mempertimbangkan Mesin Penyimpanan default data Anda.

Jika hanya menggunakan data MyISAM, Anda hanya perlu mempertimbangkan yang berikut ini

Kecepatan disk, Kecepatan Memori, Total RAM, CPU

Jumlah Core adalah nonfaktor besar karena MyISAM (pada kenyataannya, mysqld) tidak menggunakan banyak core.

Jika menggunakan data InnoDB saja, sekarang Anda memiliki sesuatu untuk dibicarakan ketika datang ke inti.

MySQL 5.5 sekarang hadir dengan dukungan multicore untuk InnoDB.

Semua CPU akan diaktifkan pada semua silinder untuk InnoDB selama Anda mengkonfigurasi InnoDB dengan benar. Percaya atau tidak, jika Anda tidak mengonfigurasi InnoDB, ada beberapa contoh di mana InnoDB versi lama akan lebih cepat out-of-the-box daripada versi yang lebih baru.

Catatan untuk Moderator

Jika ada terlalu banyak tautan, jangan downvote. Cukup beri tahu saya dan saya bisa mengutip dari kutipan tautan tersebut.

RolandoMySQLDBA
sumber
Itu baik untuk diketahui. Banyak tabelnya adalah MyISAM, tetapi kebanyakan jika tidak semuanya dapat diubah menjadi InnoDB, yang saya pikir akan saya lakukan. Saya akan meningkatkan ke 5.1 (dari 4.1)
Echo mengatakan Reinstate Monica
Anda perlu meningkatkan ke 5.5. MySQL 5.1 membutuhkan plugin. Lebih mudah pergi saja 5.5.
RolandoMySQLDBA
Plugin InnoDB dapat diinstal dengan mudah di 5.1. Juga, Percona Server 5.1 didasarkan pada plugin InnoDB.
Aaron Brown
@ AaronBrown: Karena Echo memiliki MySQL 4.1, Percona 5.1 atau MySQL 5.5 akan melakukannya. Meskipun saya telah menginstal plugin semisync 5.5 sebelumnya, saya hanya sedikit malas pada plugin.
RolandoMySQLDBA
0

Dari semua yang telah dikatakan dan apa yang saya tampak dari DB-server: "2 hex core xeon 2620 dengan 16GB 1333" menurut saya seperti pilihan pertama.

Gunakan RDIMM3 dengan kecepatan 1333 MHz - 12 atau 15 GB mungkin lebih cepat dari 16 GB, karena Anda dapat membagi jumlah DIMM hingga 3.

Jika DB Anda berat, cari kinerja IO disk yang bagus juga.

Nils
sumber