Bir veritabanı sunucusu için daha önemli olan nedir? Mem? Mem hızı? Çekirdekler?


11

Veritabanı sunucumu biraz daha iyi bir donanıma taşıyacağım. Geçerli veritabanı sunucusunun Centos 4'ü çalıştırması dışında herhangi bir sorunu yoktur. Mevcut donanım, RAID 10 ve 4GB (2, gerçekten sadece 4GB) bellekte 2 dört çekirdekli xeon 5335, 4 15K RPM'dir.

Bütçemdeki donanım seçeneklerinin neredeyse hiçbir fiyat farkı yok ve RAID 10'da aynı 4 15K RPM sabit diskine sahip olacaklar.

  • 8 GB 533/667 ile 2 dört çekirdekli xeon 5335
  • 16GB 1333 ile 2 altıgen çekirdekli xeon 2620
  • 8 GB 667 ile 4 çift çekirdekli opteron 8212
  • 1 okto çekirdekli xeon 2650, 8GB 1333 ile
  • 16 GB 1333 ile 1 dört çekirdekli xeon 3460

Sabit sürücüler hariç tutulduğunda, bir veritabanı sunucusunun önemli bölümlerinin sırası nedir? Bellek boyutu, bellek hızı, çekirdekler ve sonra önbellek boyutu gibi bir şey mi?


3
CPU'da şu anki kullanımınız nedir? % 10 koşuyor musunuz? % 50? Düzenli olarak ~% 30-40 iseniz, o zaman 16GB RAM ile 2620 istediğiniz gibi görünüyor (16GB FAST RAM ile bir Q1`12 hexacore çip? Evet lütfen)
jcolebrand 18:12

@jcolebrand En iyi olacağını düşündüğüm şey bu. Bazen% 30-40'lık artışlarla ortalama% 10-20'lik kullanım.
Echo, Reinstate Monica'yı

2 GHz'de XEON 2620, 2,8 GHz'de XEON 3460?
Nils

Yanıtlar:


21

Deneyimlerime göre, aradığınız şey bu öncelik sırasına göre olacaktır:

  1. Disk alt sistemi hızı. Deneyimlerime göre RAID10 en iyisidir. SSD'ler için bonus puanlar.
  2. Toplam RAM miktarı Ne kadar çok RAM olursa, sunucunuzda o kadar çok önbellek olur.
  3. Bellek hızı. Daha hızlı RAM, yavaş RAM'den daha iyidir, ancak RAM her zaman disklerden daha hızlıdır, bu nedenle daha yavaş RAM, daha hızlı RAM'den daha iyidir.
  4. CPU çekirdeği sayısı
  5. işlemci hızı

Bu açıkça uygulamaya bağlıdır, ancak genellikle bir veritabanı sunucusunun işi verilere gerçekten hızlı erişim sağlamaktır, bu nedenle CPU hızı verilere (diskler ve RAM) erişim hızından daha az önemlidir. Ancak, sorgularınızda çok fazla matematik / hesaplama kullanıyorsanız, daha fazla CPU kaynağına ihtiyacınız vardır.


2
db mimarisine bağlı olarak, daha fazla çekirdek daha fazla cpu hızından daha iyi olacağını söyleyebilirim, çünkü daha yüksek saat hızı! = daha kısa boru hattı ve orada düşünülmesi gereken çok şey var, ancak daha fazla çekirdek ile işletim sisteminin daha fazla yeri olabilir yan işlemler yaparlar ve motorlar kendilerini daha fazla çekirdek üzerine yayabilecek kadar akıllıdır.
jcolebrand

@jcolebrand puanı alındı ​​ve cevap güncellendi!
Josh

2
MySQL özellikle belirtildiği için, tek bir sorgunun hızı temel olarak tek bir işlemcinin hızı ile sınırlı olduğundan, daha hızlı işlemciler genellikle daha fazladan daha iyi bir seçimdir (sadece 1 veya 2'den bahsetmediğinizi varsayarak). En yeni MySQL sürümleri bile, dahili muteks ve semafor çekişmesi nedeniyle birden fazla çekirdek arasında diğer bazı RDBMS'leri ölçeklendirmez. Birkaç 24 çekirdek sunucu çalıştırıyorum ve sol kolumu 1,5 kat daha hızlı olan çekirdeklerin yarısında takas ettim.
Aaron Brown

7

MySQL söz konusu olduğunda, verilerinizin varsayılan Depolama Motorunu da göz önünde bulundurmalısınız.

Yalnızca MyISAM verilerini kullanıyorsanız, yalnızca aşağıdakileri göz önünde bulundurmanız gerekir

Disk hızı, Bellek Hızı, Toplam RAM, CPU

Çekirdek Sayısı büyük bir faktör değildir çünkü MyISAM (aslında mysqld) birden fazla çekirdek kullanmaz.

Yalnızca InnoDB verilerini kullanıyorsanız, şimdi çekirdekler söz konusu olduğunda konuşacağınız bir şey var.

MySQL 5.5 şimdi InnoDB için çok çekirdekli destek ile geliyor.

InnoDB'yi doğru şekilde yapılandırdığınız sürece tüm CPU'lar InnoDB için tüm silindirlere ateş edecektir. İster inanın ister inanmayın, InnoDB'yi yapılandırmazsanız, InnoDB'nin eski sürümlerinin yeni sürümlere göre daha hızlı olacağı durumlar vardır.

Moderatörlere Not

Çok fazla bağlantı varsa, lütfen indirmeyin. Sadece beni uyar ve bu bağlantıların alıntılarından paraphrse yapabilirim.


Bunu bilmek güzel. Tabloların birçoğu MyISAM, ancak çoğu değilse de zaten yapmayı düşündüğüm InnoDB olarak değiştirilebilir. Ben 5.1'e (4.1'den) yükselteceğim
Echo diyor Reinstate Monica

5.5 sürümüne geçmeniz gerekiyor. MySQL 5.1 eklenti gerektirir. 5.5'e gitmek daha kolay.
RolandoMySQLDBA

InnoDB Eklentisi 5.1'de kolayca kurulabilir. Ayrıca, Percona Server 5.1 InnoDB eklentisine dayanmaktadır.
Aaron Brown

@AaronBrown: Echo MySQL 4.1'e sahip olduğundan, Percona 5.1 veya MySQL 5.5 bunu yapardı. Daha önce semisync 5.5 eklentilerini kurduğum halde, eklentiler üzerinde biraz tembelim.
RolandoMySQLDBA

0

Zaten söylendi ve DB sunucularından ne görünüyor: "16GB 1333 ile 2 hex çekirdek xeon 2620" bana ilk seçim gibi görünüyor.

1333 MHz hızında RDIMM3 kullanın - 12 veya 15 GB, 16 GB'den daha hızlıdır, çünkü DIMM sayısını 3'e bölebilirsiniz.

DB ağır yazıyorsa iyi disk IO performansı için de arayın.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.