คุณช่วยฉันวางแผนกำลังการผลิตได้ไหม


132

นี่เป็นคำถามที่ยอมรับได้เกี่ยวกับการวางแผนกำลังการผลิต

ที่เกี่ยวข้อง:

ฉันมีคำถามเกี่ยวกับการวางแผนกำลังการผลิต ชุมชน Server Fault สามารถช่วยด้วย:


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

คำตอบ:


97

โดยทั่วไปชุมชน Server Fault ไม่สามารถช่วยคุณในการวางแผนความจุได้คำตอบที่ดีที่สุดที่เราสามารถนำเสนอคือ"ทำเครื่องหมายโค้ดของคุณบนฮาร์ดแวร์คล้ายกับที่คุณใช้ในการผลิตระบุคอขวดใด ๆ จากนั้นกำหนดปริมาณงานของคุณ ฮาร์ดแวร์ปัจจุบันสามารถจัดการและ / หรือวิธีแรงม้าฮาร์ดแวร์มากที่คุณต้องจัดการภาระงานเป้าหมายของคุณ"


มีหลายปัจจัยที่ใช้ในการวางแผนกำลังการผลิตซึ่งเราไม่สามารถประเมินได้อย่างเพียงพอในเว็บไซต์คำถามและคำตอบ:

  • ข้อกำหนดของรหัส / ซอฟต์แวร์เฉพาะของคุณ
  • ทรัพยากรภายนอก (ฐานข้อมูลซอฟต์แวร์ / ไซต์ / เซิร์ฟเวอร์อื่น ๆ )
  • ปริมาณงานของคุณ (สูงสุด, เฉลี่ย, การเข้าคิว)
  • มูลค่าทางธุรกิจของประสิทธิภาพ (การวิเคราะห์ต้นทุน / ผลประโยชน์)
  • ความคาดหวังด้านประสิทธิภาพของผู้ใช้ของคุณ
  • ข้อตกลงระดับบริการใด ๆ / ภาระผูกพันตามสัญญาที่คุณอาจมี

ทำการวิเคราะห์ที่เหมาะสมกับปัจจัยเหล่านี้และอื่น ๆ อยู่นอกเหนือขอบเขตของไซต์คำถามและคำตอบที่ง่าย ๆ : พวกเขาต้องการความรู้โดยละเอียดเกี่ยวกับสภาพแวดล้อมและข้อกำหนดของคุณซึ่งมีเพียงทีมของคุณ (หรือที่ปรึกษาที่ได้รับการชดเชยอย่างเพียงพอ) เท่านั้น


สัจพจน์การวางแผนกำลังการผลิตบางอย่าง

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

1
คุณควรปล่อยสิ่งนั้นและใช้การรวมเป็นส่วน ๆ !
Gilles

+1 และ RAM ตามที่คุณแนะนำในสัจพจน์ # 1 นั้นเป็นหนึ่งในสิ่งที่มีประโยชน์มหาศาล ตัวอย่างเช่นมันเพิ่มความสามารถของคุณในการใช้การแคชให้ดีขึ้นซึ่งจะช่วยให้คุณสามารถสืบค้นฐานข้อมูลได้น้อยลงซึ่งจะช่วยเพิ่มภาระให้กับดิสก์และ CPU ฉันมักจะผิดหวังกับผู้ให้บริการโฮสติ้งที่ให้ CPU ที่รวดเร็วกับเซิร์ฟเวอร์และ RAM จำนวนน้อยที่สุด
Steve Wortham

31
ฉันต้องการเพิ่มในนี้: ความจุของดิสก์ราคาถูก ประสิทธิภาพของดิสก์มีราคาแพง โดยเฉพาะอย่างยิ่งเมื่อเราเห็นการเติบโตของขนาดดิสก์ในช่วง 10 ปีที่ผ่านมา แต่กฎของฟิสิกส์ยังไม่เปลี่ยน กฎของหัวแม่มือที่ฉันใช้ (ณ วันนี้; มิถุนายน 2014) คือเพื่อประสิทธิภาพที่ดีที่สุด: 75 IOPs ต่อแกนบน SATA, 200 IOPs ต่อแกนบน FC และ 1500 IOPs ต่อ SSD ไดรฟ์ SATA ขนาดใหญ่นั้นให้ IO ค่อนข้างแย่ต่ออัตราส่วนกิกะไบต์
Sobrique

ในกลางปี ​​2019 ไม่มีใครควรซื้อไดรฟ์สปินเดิลอีกต่อไป
Robert Harvey

@RobertHarvey ไม่มีใครควรซื้อไดรฟ์ปินเดิลของSASอีกต่อไป การรับความจุสำหรับเซิร์ฟเวอร์ระดับ Petabox ยังคงต้องการไดรฟ์ SATA จำนวนมากหรือคุณต้องจ่ายมาก
Mikko Rantalainen

44

การวางแผนการนับเครื่องเสมือน

เมื่อพูดถึงการหาจำนวน VMs ที่คุณควรวางแผนไว้สำหรับโฮสต์เดียวจริงๆแล้วมันไม่มีกฎง่ายๆ อันที่จริงมีเพียงอันเดียวเท่านั้นและมันก็เป็นสิ่งที่ดีเท่านั้น:

จำนวนเครื่องเสมือนมักจะถูก จำกัด โดย RAM ยกเว้นเมื่อไม่ได้

ซึ่งไม่เป็นประโยชน์อย่างมาก หาก VMs เหล่านั้นกำลังใช้งานแอปพลิเคชั่นที่มี CPU ต่ำตัว จำกัด ของคุณจะขึ้นอยู่กับ RAM แต่ละแพลตฟอร์ม VM มีความสามารถของตนเองในการยกเลิกการสมัคร RAM ดังนั้นจึงไม่ใช่เรื่องง่ายเหมือนกับ TOTAL_RAM / Per-VM-RAM = MachineCount แต่หมายเลขนั้นเป็นรายการการวางแผนที่ดี

แต่ถ้า VMs ของคุณกำลังทำสิ่งต่าง ๆ นอกเหนือจากแพ็คเก็ตสลิงอ่อน


จำนวนเครื่องเสมือนถูกล้อมรอบด้วยเจ็ดทรัพยากรที่ไม่ต่อเนื่องที่มีอยู่ในเครื่องโฮสต์:

  • Hypervisor VMware, Xen, HyperV, KVM อะไรก็ตาม แต่ละคนมีคุณสมบัติที่ส่งผลกระทบต่อการนับของตัวเอง บางอย่างดีในการขจัดข้อมูลซ้ำซ้อนในหน้าหน่วยความจำส่วนมากไม่ค่อยดีนัก บางคนไม่อนุญาตการบอกรับสมาชิกเกินความจุของ CPU บางคนทำ
  • CPU Core Speedสิ่งนี้ จำกัด ประสิทธิภาพเธรดเดี่ยวสูงสุดที่ VM จะสามารถเรียกใช้ได้ 36 คอร์ของ CPU 1.8 GHz อาจเป็น CPU 64.8 GHz บนโฮสต์ แต่ไม่มีเธรดเดี่ยวใด ๆ ที่ทำงานได้เร็วกว่า 1.8 GHz
  • CPU Core Countสิ่งนี้พร้อมด้วยความเร็วคอร์อธิบายถึงเพดานประสิทธิภาพ CPU สูงสุดที่คุณสามารถสัมผัสได้
  • System RAMตามที่อธิบายไว้ข้างต้นสิ่งนี้ จำกัด จำนวนของ VM ที่คุณสามารถเรียกใช้ได้ Hypervisor บางตัวดีกว่าสิ่งอื่นเช่นการทำซ้ำหน้าหน่วยความจำดังนั้นหากคุณใช้ VMs เหมือนกัน 100 ชุดคุณสามารถแพ็คเหล่านี้ได้มากขึ้นในระบบที่ซ้ำซ้อนกันมากกว่าที่คุณใช้ 100 VM ที่แตกต่างกันโดยสิ้นเชิง
  • ขนาดดิสก์แต่ละอิมเมจระบบปฏิบัติการใช้พื้นที่ในปริมาณที่แน่นอน คุณต้องการพื้นที่เพียงพอในการจัดเก็บทั้งหมด ดังนั้นขนาดดิสก์ทำให้มีขีด จำกัด สูงสุดเกี่ยวกับจำนวน VM ที่คุณสามารถโฮสต์ได้
  • I / O Bandwidthดิสก์ที่รองรับ VMs มีจำนวนสูงสุดต่อจำนวน I / O ต่อวินาทีที่สามารถรองรับได้ หากคุณขว้างมันมากเกินไประบบจะชะงักงันเพื่อรอ I / O ให้เสร็จสมบูรณ์ สิ่งนี้ทำให้ขีด จำกัด บนจำนวน I / O ที่ใช้ VMs ที่คุณสามารถเรียกใช้ได้
  • แบนด์วิดท์เครือข่ายสำหรับ VM ที่ใช้เครือข่ายแบนด์วิดท์เครือข่ายที่มีอยู่จะทำให้เพดานว่า VM ดังกล่าวจำนวนเท่าใดที่คุณสามารถเรียกใช้บนโฮสต์ที่กำหนด

สิ่งเหล่านี้อาจเป็นสิ่งที่คุณเดินทางไปทุกอย่างขึ้นอยู่กับสิ่งที่คุณทำกับ VMs ของคุณ สิ่งที่ต้องจำ:

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

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


เหนือสิ่งอื่นใดให้ใช้ระบบที่ใช้ vm บนเซิร์ฟเวอร์สองตัวที่แยกกันด้วย vm ที่ไม่ถูกผูกไว้ สิ่งนี้ทำให้เกิดความล้มเหลวของฮาร์ดแวร์โดยไม่สูญเสียทั้งระบบ vm สามารถย้ายไปมาระหว่างเซิร์ฟเวอร์ที่เหมือนกันได้โดยไม่สูญเสียข้อมูล แค่เซสชั่นหลงทางจากนั้นสร้างใหม่ ส่วนตัวฉันจะ outsource ให้กับ บริษัท โฮสติ้งที่ให้บริการเหล่านี้ (google หรือ amazon) พวกเขามีราคาแพง แต่มีจำนวนน้อยกว่าที่คุณเป็นเจ้าของ
Random-IT

2
สิ่งที่ฉันเห็นขีดล่างบ่อยที่สุดในการใช้งาน VM คือ disk I / O คนส่วนใหญ่เข้าใจพื้นที่ดิสก์ความเร็วของ CPU และหน่วยความจำ พวกเขาลืมเกี่ยวกับประสิทธิภาพของดิสก์นั้น
Dan Pritts

6

ตรวจสอบให้แน่ใจว่าคุณกำลังถามคำถามที่ถูกต้อง

  • คอมพิวเตอร์ราคาถูก
  • ความต้องการในอนาคตนั้นยากที่จะคาดเดาได้
  • วางแผนว่าจะขยายขนาดไม่ใช่สิ่งที่จะซื้อล่วงหน้า

หากคุณไม่รู้ว่าคุณต้องการอะไรนั่นหมายความว่าคุณไม่ต้องการอะไรมาก หากคุณมีเว็บไซต์ที่น่าสนใจคุณอาจมีทีมปฏิบัติการที่รู้ว่า RAM, ดิสก์, io, เครือข่าย ฯลฯ ... แอปของคุณต้องการ หากคุณอยู่ในช่วงที่กำลังฝันคุณควรเริ่มต้นด้วยเดสก์ท็อปและหาทาง

ตรวจสอบให้แน่ใจว่าคุณมีความคิดว่าคุณจะขยายขนาดเมื่อสิ่งต่าง ๆ มีขนาดใหญ่ขึ้น คุณสามารถเพิ่มเซิร์ฟเวอร์เพิ่มเติมหลังตัวโหลดบาลานซ์ได้หรือไม่ คุณสามารถแชร์เซิร์ฟเวอร์ Redis ได้หรือไม่

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

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