อะไรที่สำคัญกว่าสำหรับเซิร์ฟเวอร์ฐานข้อมูล Mem? ความเร็ว Mem คอร์?


11

ฉันกำลังจะย้ายเซิร์ฟเวอร์ฐานข้อมูลของฉันไปยังฮาร์ดแวร์ใหม่ที่ค่อนข้างดีกว่า เซิร์ฟเวอร์ฐานข้อมูลปัจจุบันไม่มีปัญหาใด ๆ ยกเว้นว่ากำลังเรียกใช้ Centos 4 ฮาร์ดแวร์ปัจจุบันคือ 2 quad core xeon 5335, 4 15K RPM ใน RAID 10 และ 4GB (ใช่จริงๆมันเป็นเพียง 4GB) ของหน่วยความจำ

ตัวเลือกฮาร์ดแวร์ในงบประมาณของฉันแทบไม่มีความแตกต่างด้านราคาและจะมีฮาร์ดไดรฟ์ 4 15K RPM เดียวกันใน RAID 10 พวกเขาคือ:

  • xeon 53 quad core 2 รุ่นพร้อม 8GB 533/667
  • 2 hex core xeon 2620 พร้อม 16GB 1333
  • 4 dual core opteron 8212 พร้อม 8GB 667
  • 1 octo core xeon 2650 พร้อม 8GB 1333
  • 1 quad core xeon 3460 พร้อม 16GB 1333

ไม่รวมฮาร์ดไดรฟ์ลำดับของส่วนสำคัญของเซิร์ฟเวอร์ฐานข้อมูลคืออะไร มันเป็นเช่นขนาดหน่วยความจำความเร็วหน่วยความจำแกนแล้วขนาดแคช?


3
การใช้งานปัจจุบันของคุณบน CPU คืออะไร คุณทำงานที่ 10% หรือไม่ 50%? หากคุณเป็น ~ 30-40% เป็นประจำแล้วมันดูเหมือนว่า 2620 กับ RAM 16GB คือสิ่งที่คุณต้องการ (ชิป hexacore Q1`12 กับ 16GB FAST RAM ใช่ไหม?)
jcolebrand

@ jcolebrand นั่นคือสิ่งที่ฉันคิดว่าดีที่สุด อัตราการใช้ประโยชน์เฉลี่ย 10-20% โดยมีหนามแหลมบางครั้งถึง 30-40%
Echo พูดว่า Reinstate Monica

XEON 2620 ที่ 2 GHz, XEON 3460 ที่ 2,8 GHz?
นิลส์

คำตอบ:


21

จากประสบการณ์ของฉันสิ่งที่คุณกำลังมองหาอยู่ในลำดับความสำคัญนี้:

  1. ความเร็วระบบย่อยของดิสก์ RAID10 ในประสบการณ์ของฉันดีที่สุด คะแนนโบนัสสำหรับ SSD
  2. จำนวน RAM ทั้งหมด RAMยิ่งมากเซิร์ฟเวอร์ของคุณก็จะมีแคชมากขึ้นเท่านั้น
  3. ความเร็วหน่วยความจำ แรมเร็วกว่าดีกว่าแรมช้ากว่า แต่ RAM เร็วกว่าดิสก์เสมอดังนั้น RAM ที่ช้ากว่าจึงดีกว่าแรมเร็วกว่า
  4. จำนวนแกน CPU
  5. ความเร็วของ CPU

เห็นได้ชัดว่าขึ้นอยู่กับแอปพลิเคชัน แต่โดยทั่วไปแล้วหน้าที่ของเซิร์ฟเวอร์ฐานข้อมูลคือให้การเข้าถึงข้อมูลที่รวดเร็วดังนั้นความเร็วของ CPU จึงมีความสำคัญน้อยกว่าความเร็วในการเข้าถึงข้อมูล (ดิสก์และ RAM) แต่ถ้าคุณใช้คณิตศาสตร์ / การคำนวณจำนวนมากในการสืบค้นของคุณคุณต้องใช้ทรัพยากรของ CPU มากขึ้น


2
ขึ้นอยู่กับสถาปัตยกรรม db ฉันจะบอกว่าแกนประมวลผลจะดีกว่าโดยรวมมากกว่าความเร็วซีพียูมากขึ้นเนื่องจาก clockrate ที่สูงขึ้น! = ไพพ์ไลน์ที่สั้นกว่าและมีหลายสิ่งที่ต้องพิจารณาที่นั่น แต่ด้วยแกนประมวลผลที่มากขึ้น ทำกระบวนการด้านข้างและเครื่องยนต์มักฉลาดพอที่จะแพร่กระจายตัวเองผ่านแกนกลางมากขึ้น
jcolebrand

@ jcolebrand ชี้ให้เห็นและตอบปรับปรุง!
Josh

2
เนื่องจาก MySQL ถูกกล่าวถึงโดยเฉพาะตัวประมวลผลที่เร็วขึ้นมักจะเป็นตัวเลือกที่ดีกว่า (สมมติว่าคุณไม่ได้พูดถึงเพียง 1 หรือ 2) เนื่องจากความเร็วของการสืบค้นเดียวถูก จำกัด ด้วยความเร็วของโปรเซสเซอร์เพียงตัวเดียว แม้แต่เวอร์ชัน MySQL ล่าสุดก็ไม่ได้ปรับขนาดเช่นเดียวกับ RDBMS อื่น ๆ ในหลายคอร์เนื่องจากการแย่งชิง mutex และเซมาฟอร์ภายใน ฉันเรียกใช้เซิร์ฟเวอร์ 24 หลักหลายแห่งและฉันจะให้แขนซ้ายของฉันแลกเปลี่ยนกับพวกเขาในอัตราครึ่งเท่าของแกนประมวลผลที่เร็วกว่า 1.5 เท่า
Aaron Brown

7

เมื่อพูดถึง MySQL คุณต้องพิจารณาค่าเริ่มต้นของ Storage Engine ของข้อมูลด้วย

หากใช้ข้อมูล MyISAM คุณจะต้องพิจารณาสิ่งต่อไปนี้เท่านั้น

ความเร็วดิสก์, ความเร็วหน่วยความจำ, RAM ทั้งหมด, CPU

Number of Cores เป็น nonfactor ขนาดใหญ่เพราะ MyISAM (อันที่จริงแล้ว mysqld) ไม่ได้ใช้หลายคอร์

หากใช้ข้อมูล InnoDB เท่านั้นตอนนี้คุณมีสิ่งที่จะพูดคุยเกี่ยวกับแกน

ขณะนี้ MySQL 5.5 มาพร้อมกับการสนับสนุนมัลติคอร์สำหรับ InnoDB

ซีพียูทั้งหมดจะถูกเผาในกระบอกสูบทั้งหมดสำหรับ InnoDB ตราบใดที่คุณกำหนดค่า InnoDB ให้เหมาะสม เชื่อหรือไม่ว่าหากคุณไม่ได้กำหนดค่า InnoDB มีอินสแตนซ์ที่ InnoDB รุ่นเก่าจะเร็วกว่ารุ่นที่ใหม่กว่า

หมายเหตุถึงผู้ดูแล

หากมีลิงค์มากเกินไปโปรดอย่าลงคะแนน เพียงแจ้งเตือนฉันและฉันสามารถถอดความจากข้อความที่ตัดตอนมาจากลิงก์เหล่านั้น


นั่นเป็นเรื่องดีที่จะรู้ ตารางจำนวนมากคือ MyISAM แต่ส่วนใหญ่ถ้าไม่ใช่ทั้งหมดสามารถเปลี่ยนเป็น InnoDB ซึ่งฉันคิดว่าจะทำอะไรต่อไป ฉันกำลังจะอัพเกรดเป็น 5.1 (จาก 4.1)
Echo พูดว่า Reinstate Monica

คุณต้องอัปเกรดเป็น 5.5 MySQL 5.1 ต้องใช้ปลั๊กอิน มันง่ายกว่าที่จะไป 5.5
RolandoMySQLDBA

ปลั๊กอิน InnoDB สามารถติดตั้งได้ง่ายใน 5.1 นอกจากนี้ Percona Server 5.1 ยังใช้ปลั๊กอิน InnoDB อีกด้วย
Aaron Brown

@AaronBrown: เนื่องจาก Echo มี MySQL 4.1 ทั้ง Percona 5.1 หรือ MySQL 5.5 จะทำเช่นนั้น แม้ว่าฉันจะเคยติดตั้งปลั๊กอิน semisync 5.5 มาก่อน แต่ฉันก็ขี้เกียจนิดหน่อยกับปลั๊กอิน
RolandoMySQLDBA

0

จากทั้งหมดที่กล่าวไปแล้วและสิ่งที่ฉันได้รับจาก DB-servers: "2 hex core xeon 2620 กับ 16GB 1333" ดูเหมือนว่าฉันจะชอบตัวเลือกแรก

ใช้ RDIMM3 ที่ความเร็ว 1333 MHz - 12 หรือ 15 GB นั้นเร็วกว่า 16 GB เนื่องจากคุณสามารถหารจำนวน DIMM ได้ถึง 3

ถ้าฐานข้อมูลของคุณหนักในการเขียนให้มองหาประสิทธิภาพของดิสก์ IO ที่ดีเช่นกัน

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.