เซิร์ฟเวอร์ประเภทใดที่ฉันต้องใช้ในการจัดการ 10 ล้านคำขอและแบบสอบถาม mySQL ต่อวัน [ปิด]


23

ฉันเป็นมือใหม่ในการดูแลเซิร์ฟเวอร์และฉันกำลังมองหาบริการโฮสติ้งที่ทรงพลังเพื่อโฮสต์เว็บไซต์ใหม่ของฉัน เว็บไซต์นี้เป็นแบ็คเอนด์ของเกมออนไลน์บนมือถือและมันจะ:

  • จัดการกับคำขอ HTTPS ได้สูงสุด 10 ล้านคำขอและแบบสอบถาม mySQL ต่อวัน
  • เก็บไฟล์ได้สูงสุด 2000 GB บนฮาร์ดดิสก์
  • อาจถ่ายโอนข้อมูล 5000 GB ทั้งในและนอกต่อเดือน
  • มันทำงานบน PHP และ mySQL
  • มี 10 ล้านเร็กคอร์ดในฐานข้อมูล mySQL สำหรับแต่ละเร็กคอร์ดมีฟิลด์ 5-10 ฟิลด์แต่ละ 100 ไบต์

ฉันไม่รู้จริงๆว่าฉันต้องใช้เซิร์ฟเวอร์ประเภทใดเพื่อรองรับข้อกำหนดเหล่านี้คำถามของฉันคือ:

  1. CPU / RAM ใดที่ฉันต้องการสำหรับเซิร์ฟเวอร์เฉพาะหรือ VPS
  2. บริษัท โฮสติ้งใดที่สามารถให้บริการเซิร์ฟเวอร์เฉพาะหรือ VPS ประเภทนี้ได้?
  3. แล้วคอมพิวเตอร์คลาวด์ล่ะ ฉันค้นคว้า Amazon EC2 แล้ว แต่ดูเหมือนว่าซับซ้อนสำหรับฉัน และฉันได้ติดต่อ Rackspace แต่พวกเขาบอกว่า Cloudsites ไม่เหมาะกับความต้องการของฉัน ฉันสงสัยว่ามี บริษัท โฮสติ้งคลาวด์อื่นหรือไม่
  4. วิธีอื่นใดบ้าง

เราได้สิ่งนี้มาพร้อมกับเซิร์ฟเวอร์ลินุกซ์ 2 ตัวพร้อม RAM ขนาด 8 กิ๊กก์ mysql เป็นคลัสเตอร์ mysql และฐานข้อมูลถูกเก็บไว้ในหน่วยความจำอย่างรวดเร็ว cpu ไม่เคยมีมากถ้าคุณใช้ distro ที่ดีและดิสก์จะต้องใช้เท่านั้น การถ่ายภาพต่อชั่วโมงจะช่วยให้คุณมีความซ้ำซ้อนในกรณีที่เกิดข้อผิดพลาด นอกจากนี้คุณอาจต้องการติดตั้ง mysqltuner เพื่อให้คุณสามารถจับตาดูดัชนี ฯลฯ และใช้ประโยชน์จากทุกสิ่งได้อย่างดีที่สุดและยังเพิ่มดัชนีจำนวนมากและเก็บบันทึกการสืบค้นที่ช้าเช่นเว็บนี้อาจถูกจริงๆเพียงแค่เพิ่มภาระ balancer ด้านหน้าเพื่อแยกการจราจร
ลบ 4

ทำไมไม่ใช้บริการคลาวด์ สีฟ้า, Amazon, RackSpace, GoGrid, Heroku?
bbqchickenrobot

คำตอบ:


33

เดสก์ท็อปราคาถูก

มาเรียนคณิตศาสตร์กันดีกว่า

  • 10 ล้านคำขอ
  • มีการร้องขอ 416667 คำขอต่อชั่วโมง
  • นั่นทำลายลงถึง 6944 คำขอต่อนาที
  • นั่นแบ่งเป็น 116 คำขอต่อวินาที

เพิ่มเป็นสองเท่า (โหลดสูงสุด) และเราพูดถึงโหลดเดสก์ท็อปคอร์คอร์ราคาถูกสามารถจัดการหากคำสั่งนั้นง่ายพอและคุณไม่ได้บอกว่าซับซ้อนแค่ไหน

  • 5,000 GB ต่อเดือนนั้นไม่สำคัญ - จริงจังใช้คณิตศาสตร์แบบเดียวกัน
  • นั่นแบ่งลงเป็น 208GB / วัน
  • ที่แบ่งลงถึง 8GB / ชั่วโมง
  • นั่นแบ่งลงเป็น 148MB / นาที
  • ที่แบ่งลงไปที่ 2,5MB / วินาที 25Mbit สองเท่าสำหรับยอด - 50Mbit, ไม่สำคัญสำหรับศูนย์โฮสติ้งใด ๆ คุณจะเสียค่าใช้จ่าย

  • เก็บ 2000 GB บนฮาร์ดดิสก์ นั่นคือฮาร์ดดิสก์ขนาด 2x2000 GB ใน RAID หรือไม่ ยกเว้นว่า: สำหรับฐานข้อมูลนั้นจะมี IO ที่ซับซ้อนจำนวนมากจากนั้นจะเป็นอะไรก็ได้ระหว่างแผ่นดิสก์บางโหลและดิสก์ 73 แผ่น 15.000RPM SAS จำนวนมากใน RAID 10 (ประมาณ 60 แผ่น) เพื่อให้ได้ I / O ที่จำเป็น คำถามไม่สามารถตอบได้หากไม่มีข้อมูลเพิ่มเติมมากมายเกี่ยวกับรูปแบบการเข้าถึงข้อมูล

  • รัน PHP และ MySQL - โทรศัพท์มือถือของฉันสามารถทำได้;) คำถามคือความซับซ้อนของแอปพลิเคชัน MySQL อาจหรืออาจไม่ใช่วิธีที่ยอมรับได้ที่นี่ BTW l - ที่จะต้องมีการทดสอบเพิ่มเติม มีเหตุผลบางคนยังคงใช้ฐานข้อมูลเชิงพาณิชย์ขนาดใหญ่อื่น ๆ

  • CPU / Ram ใดที่ฉันต้องการสำหรับ Dedicated Server หรือ VPS

หนึ่งอาจกล่าวได้ว่าขึ้นอยู่กับตรรกะ (การคำนวณเท่าใดในส่วน PHP, ความฉลาดหรือขาดโปรแกรมเมอร์และคำถามอื่น ๆ อีกมากมาย

อย่างจริงจังนี่คือการติดตั้งที่ไม่สำคัญ รับผู้เชี่ยวชาญมาตรวจดู

โดยทั่วไปคุณต้องลงและทำการบ้านให้เสร็จ คำถามจำนวนมากไม่สามารถตอบได้ในแบบฟอร์มนี้ โดยเฉพาะอย่างยิ่งเพราะคุณดูเหมือนจะไม่สนใจข้อมูลของคุณ ...

  • การสำรองข้อมูล?
  • ไม่มีแผนฉุกเฉิน ฉันหมายความว่าเซิร์ฟเวอร์ตาย - ดังนั้นคุณจึงตกลงกับเว็บไซต์ที่หยุดทำงานนานหลายวันในขณะที่มีการเปลี่ยนทดแทนหรือไม่

ขอบคุณสำหรับการตอบกลับของคุณ. php นั้นง่ายฉันเดาว่าภาระหลักอยู่บน mySQL ฉันทดสอบการค้นหา mySQL บนแล็ปท็อปของฉัน (Core2 Duo) ด้วย WAMP บน Windows ด้วย 10 mllions records ใน mySQL โดยเฉลี่ยแต่ละแบบสอบถามมีค่าใช้จ่าย 0.1 วินาที Quad Core แข็งแกร่งแค่ไหนที่จะจัดการกับคิวรี่ mySQL
Calvin

2
ลืมควอดคอร์ SUCKS แล็ปท็อปของคุณใน IO - และ IO เป็นที่ที่ฐานข้อมูลไม่ จำกัด คุณมีหนึ่งฮาร์ดดิสก์นั่นคือช้าและ ROBUST (latop) เซิร์ฟเวอร์ใช้ฮาร์ดดิสก์หลายตัวที่รวดเร็ว (แต่ไม่แข็งแกร่ง) ฉันใช้ quad core SQL Server fron MS และสามารถจัดการมากกว่า 500 แบตช์ต่อวินาทีในการเลือกอย่างง่าย (หนึ่งแบตช์เป็นหนึ่งในการเลือก) โดยไม่ต้องใช้ซีพียูสูงสุด - แต่ฉันได้รับจำนวนมากของกิจกรรมดิสก์บนดิสก์ย่อยที่อาจเป็นไปได้ เร็วกว่าของคุณมากกว่า 30 เท่า (และยังไม่เป็นที่น่าประทับใจ) แผ่นดิสก์มีขีด จำกัด บวกการเขียนโปรแกรมที่เหมาะสม
TomTom

1
ทราฟฟิก ssl ของคุณจะต้องมีการเข้ารหัส / ถอดรหัสคุณอาจต้องการที่จะถ่ายโอนข้อมูลบน balancer และทำ reverse proxy ไปยังเซิร์ฟเวอร์ http ปกติ สิ่งนี้จะทำให้เวลาในการตอบสนองช้าลง คุณยังสามารถเข้ารหัสในฮาร์ดแวร์ได้อีกด้วย ....... en.wikipedia.org/wiki/SSL_acceleration หากงบประมาณไม่เกี่ยวข้องกับฐานข้อมูลของคุณให้ใช้ramsan.com/success/ccpgames.htm
The Unix Janitor

7

หากต้องการเพิ่มประสบการณ์ของฉันซึ่งอาจเป็นประโยชน์:

  • ดังที่ TomTom พูดถึงมันเป็นเรื่องยาก / เป็นไปไม่ได้ที่จะให้รายละเอียดที่แน่นอนเนื่องจากหลายอย่างขึ้นอยู่กับการออกแบบและการใช้งานแอปพลิเคชันของคุณ ฮาร์ดแวร์ที่ให้ฉันหรือคนอื่น ๆ X ร้องขอ / วินาทีอาจทำงานได้ไม่ดีสำหรับคุณ
  • ฉันมีเซิร์ฟเวอร์ MySQL เฉพาะต่ำ (Intel Core2 Duo E4600 2.40 GHz, RAM 4 GB) ที่ให้บริการโดยเฉลี่ย 100 คำร้องขอ / วินาที (ใกล้ถึง 10 ล้านต่อวัน) ด้วยอัตราการใช้งาน CPU 90% นอกเหนือจากการปรับแต่งพื้นฐานบางอย่างไปยังการกำหนดค่ามันทำงานได้ดีเนื่องจากอ่านหนัก (+ 95% อ่าน) และชุดบันทึกที่ใช้งานอยู่ได้อย่างง่ายดายในหน่วยความจำ พิจารณาขนาดของชุดที่ใช้งานของคุณเมื่อเลือกจำนวน RAM ของเซิร์ฟเวอร์เนื่องจากสามารถสร้างความแตกต่างได้มาก ตรวจสอบให้แน่ใจว่าคุณเข้าใจความแตกต่างระหว่างขนาดฐานข้อมูลและขนาดชุดบันทึกที่ใช้งานอยู่ ตัวอย่างเช่นฐานข้อมูลของฉันรวม ~ 7GB แต่ชุดที่ใช้งานมีแนวโน้มเพียงไม่กี่ 100MB
  • ในทำนองเดียวกันฉันมีเซิร์ฟเวอร์ Apache ที่มีสเปคที่คล้ายกันที่ให้บริการ ~ 1 ล้านคำขอต่อวันซึ่งมีอัตราการใช้งาน CPU เฉลี่ย ~ 95% คำขอคือการผสมผสานข้อมูลแผนที่ AJAX ที่ง่ายมากและหน้า MediaWiki ที่ซับซ้อนยิ่งขึ้น
  • การเปรียบเทียบแอปพลิเคชันเฉพาะของคุณเป็นการเริ่มต้นที่ดีในการพยายามกำหนดสิ่งที่คุณต้องการอย่างแท้จริง คุณไม่ต้องการที่จะอยู่ภายใต้การประมาณ แต่การประเมินที่มากกว่านั้นอาจไม่ดีเท่าที่ควรเนื่องจากเสียเงินและความพยายาม
  • พิจารณาไม่เพียง แต่อัตราคำขอเฉลี่ย แต่เป็นอัตราสูงสุด คุณไม่ต้องการให้เซิร์ฟเวอร์ที่เพิ่งจะสามารถจัดการกับอัตราเฉลี่ยเนื่องจากอัตราการร้องขออาจแตกต่างกันไปในแต่ละวันสัปดาห์และเดือน ตัวอย่างเช่นฉันสามารถได้รับปริมาณการเข้าชม 3-4 เท่าในช่วงชั่วโมงเร่งด่วนในวันหยุดสุดสัปดาห์เนื่องจากฉันทำในชั่วโมงต่ำสุดในช่วงสัปดาห์ จำนวนขึ้นอยู่กับแอปพลิเคชันและฐานผู้ใช้ของคุณ
  • คุณสามารถแคชคำขอฐานข้อมูล / HTTP ใด ๆ ของคุณหรือไม่ สิ่งนี้สามารถเพิ่มอัตราการร้องขอของคุณได้อย่างมากด้วยฮาร์ดแวร์ราคาถูก / น้อยกว่าทั้งนี้ขึ้นอยู่กับจำนวนแคชที่คุณสามารถทำได้
  • พิจารณาตัวเลือกการปรับขนาดของคุณสำหรับการเติบโตในอนาคตตอนนี้แทนที่จะเป็นภายหลัง ตัวเลือกที่ดีอาจใช้การปรับสเกลแนวนอนซึ่งจะช่วยให้คุณเริ่มต้นด้วยฮาร์ดแวร์น้อยที่สุดและเติบโตได้ง่ายตามต้องการ
  • การออกแบบชั้นแอปพลิเคชันของคุณอย่างเหมาะสมอาจมีผลอย่างมากต่อประสิทธิภาพการทำงานขั้นสูงสุด แบบสอบถาม SQL ที่ไม่ถูกต้องบนตารางที่ไม่มีดัชนีสามารถเรียงลำดับขนาดได้ช้ากว่าแบบสอบถามที่ออกแบบมาอย่างเหมาะสม ในทำนองเดียวกันเซิร์ฟเวอร์ Apache / MySQL ที่กำหนดค่าไม่ดีอาจช้ากว่าการตั้งค่าอย่างถูกต้องหลายครั้ง
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.