เลือกหน่วยความจำสำหรับระบบปฏิบัติการ บริการที่ทำงานต่อเนื่อง และการทำงานพร้อมกันจริงโดยมีพื้นที่เหลือ เลือก CPU หลังจากวัดว่างานใดทำงานหนัก งานเหล่านั้นทำงานขนานกันหรือไม่ และผู้ใช้ประสบความล่าช้าอะไรจริง
อธิบายงานปกติและงานหนักแยกจากกัน
จำนวนผู้เข้าชมเพียงอย่างเดียวเป็นข้อมูลตั้งต้นที่อ่อนสำหรับการกำหนดขนาด คำขอหนึ่งอาจให้บริการไฟล์แคช ขณะที่อีกคำขอสร้างรายงานหรือคิวรีหลายตาราง ให้ระบุเว็บเวิร์กเกอร์ ฐานข้อมูล แคช ผู้บริโภคคิว และงานบำรุงรักษาที่จะใช้ VPS ร่วมกัน อธิบายการทำงานพร้อมกันตามปกติและการดำเนินการที่คาดว่าจะยุ่งที่สุด รวมถึงการส่งออกตามกำหนด การอัปเดตแพ็กเกจ และการดีพลอย แทนที่จะมองว่าเป็นกิจกรรมเบื้องหลังที่มองไม่เห็น
สำหรับโปรเจกต์ที่มีอยู่แล้ว ให้รวบรวมช่วงเวลาที่เป็นตัวแทนซึ่งรวมช่วงเวลาที่ยุ่ง บันทึกเวลาตอบสนองและข้อผิดพลาดควบคู่กับการใช้ทรัพยากร สำหรับโปรเจกต์ใหม่ ให้สร้างการทดสอบเล็กๆ ด้วยรูปแบบคำขอและขนาดข้อมูลที่สมจริง การประเมินเริ่มต้นของคุณจะไม่สมบูรณ์แบบ เป้าหมายที่มีประโยชน์คือจุดเริ่มต้นที่บันทึกไว้ซึ่งคุณสามารถเปรียบเทียบกับพฤติกรรมที่วัดได้หลังการส่งมอบ
สร้างงบประมาณหน่วยความจำก่อนเพิ่มกระบวนการ
ความต้องการหน่วยความจำมาจากระบบ บริการแอปพลิเคชันที่ทำงานต่อเนื่อง การใช้งานต่อเวิร์กเกอร์ และการดำเนินการชั่วคราว การคูณขนาดหน่วยความจำของเวิร์กเกอร์ด้วยจำนวนการทำงานพร้อมกันที่วางแผนไว้เป็นเครื่องมือวางแผนแบบคร่าวๆ ไม่ใช่การรับประกัน เพราะหน่วยความจำที่ใช้ร่วมกันและแคชทำให้ยอดรวมซับซ้อน ให้สังเกตกระบวนการจริงภายใต้โหลด เว้นที่ว่างพอที่งานบำรุงรักษาจะไม่บังคับให้แอปพลิเคชันแย่งทุกหน้าหน่วยความจำที่เหลือ
การตั้งค่าฐานข้อมูลสามารถเพิ่มการใช้หน่วยความจำได้อย่างไม่คาดคิด PostgreSQL ระบุว่า work_mem มีผลกับการดำเนินการคิวรี และการดำเนินการหรือเซสชันหลายรายการสามารถทำงานพร้อมกันได้ ดังนั้นการตั้งค่าที่ดูพอเหมาะเมื่อมองแยกเดี่ยวอาจมีผลต่อระบบโดยรวมมากกว่า ให้อ่านคำแนะนำของฐานข้อมูลเอง ทดสอบการทำงานพร้อมกันที่สมจริง และหลีกเลี่ยงการจัดสรรทุกกิกะไบต์ที่โฆษณาไว้ให้แคชเดียว
แยกการใช้ CPU ออกจากความขนานที่มีประโยชน์
จำนวนโปรเซสเซอร์บอกคุณว่ามีทรัพยากรการประมวลผลจำนวนเท่าใดที่นำเสนอต่อเกสต์ ไม่ได้บอกว่าซอฟต์แวร์ของคุณใช้ทรัพยากรเหล่านั้นได้อย่างมีประสิทธิภาพเพียงใด เธรดที่ทำงานหนักหนึ่งเธรดอาจจำกัดแอปพลิเคชันในขณะที่คอร์อื่นยังว่าง การเพิ่มเวิร์กเกอร์ช่วยคำขอที่เป็นอิสระได้ แต่ก็อาจเพิ่มการแย่งชิงฐานข้อมูลและความต้องการหน่วยความจำได้เช่นกัน ตรวจสอบรูปแบบการทำงานพร้อมกันของแอปพลิเคชันก่อนสันนิษฐานว่าจำนวนคอร์สองเท่าจะให้ปริมาณงานสองเท่า
KVM ให้บริการเครื่องเสมือนที่มีฮาร์ดแวร์เสมือนของตนเอง ไม่ได้เปลี่ยนป้าย vCPU ทุกป้ายให้เป็นผลการวัดมาตรฐานที่เหมือนกันในทุกโฮสต์และทุกเจเนอเรชันโปรเซสเซอร์ ให้เปรียบเทียบรุ่น CPU ที่ระบุไว้และเงื่อนไขการจัดสรรเมื่อมีข้อมูล แล้วประเมินบริการด้วยปริมาณงานของคุณเอง หลีกเลี่ยงการสรุปเพื่อการซื้อจากคะแนนสังเคราะห์ระยะสั้นที่ไม่คล้ายกับแอปพลิเคชัน
มองหาความกดดันและการรอ ไม่ใช่แค่ค่าเฉลี่ย
ระบบอาจรู้สึกช้าโดยที่ค่าเปอร์เซ็นต์ CPU เฉลี่ยไม่สูง กระบวนการอาจรอที่พื้นที่จัดเก็บ การคืนหน่วยความจำ หรือบริการอื่น ข้อมูล Pressure Stall Information ของเคอร์เนล Linux เปิดเผยข้อมูลการหยุดชะงักของ CPU หน่วยความจำ และ I/O บนระบบที่รองรับ สัญญาณเหล่านี้อาจช่วยระบุการแย่งชิงทรัพยากรควบคู่กับตัวชี้วัดการใช้งานปกติและเวลาของแอปพลิเคชัน
อ่านตัวชี้วัดร่วมกัน แรงกดดันหน่วยความจำต่อเนื่อง การสลับหน่วยความจำ การจัดสรรล้มเหลว และคำขอที่ช้า ชี้ไปที่การแก้ไขที่แตกต่างจากการมีเวิร์กเกอร์ประมวลผลที่ทำงานหนักเพียงตัวเดียว การรอพื้นที่จัดเก็บอาจสมเหตุสมผลต่อการเปลี่ยนคิวรีหรือโปรไฟล์ดิสก์ที่ต่างออกไป ความล่าช้าจาก API ภายนอกจะไม่ได้รับการแก้ไขด้วยการเพิ่ม RAM ภายใน ให้อธิบายข้อจำกัดที่สังเกตได้ก่อนเลือกว่าจะเพิ่มทรัพยากรใด
| พฤติกรรมที่สังเกตได้ | คำถามที่ต้องตรวจสอบ | ขั้นตอนถัดไปที่เป็นไปได้ |
|---|---|---|
| เธรดหนึ่งทำงานหนัก คอร์ที่ว่างยังเงียบ | งานนี้ทำงานขนานกันได้หรือไม่ | ปรับปรุงงานหรือเปลี่ยนการออกแบบเวิร์กเกอร์ |
| แรงกดดันหน่วยความจำระหว่างสร้างรายงาน | มีการดำเนินการทับซ้อนกันกี่รายการ | จำกัดการทำงานพร้อมกันหรือเพิ่มพื้นที่เหลือที่ทดสอบแล้ว |
| คำขอช้าพร้อมการรอ I/O | การอ่านหรือเขียนใดล่าช้า | ตรวจสอบคิวรีและพฤติกรรมพื้นที่จัดเก็บ |
| CPU และหน่วยความจำต่ำ คำขอช้า | มี dependency ใดทำให้การตอบสนองล่าช้าหรือไม่ | วัดการเรียกไปยังปลายทาง |
ตัวอย่างการวางแผนพร้อมสมมติฐานที่ชัดเจน
ลองจินตนาการถึงแอปพลิเคชันเล็กๆ ที่มีเว็บเวิร์กเกอร์สองตัว ฐานข้อมูลหนึ่งตัว และผู้บริโภคคิวหนึ่งตัว ทีมวัดบริการเหล่านั้นระหว่างคำขอปกติและงานสร้างรายงาน พบว่าการอนุญาตให้สร้างรายงานสี่รายการพร้อมกันเพิ่มความต้องการหน่วยความจำอย่างรวดเร็วพร้อมกับทำให้ทราฟฟิกปกติล่าช้า แทนที่จะซื้อแผนใหญ่ที่สุดทันที ทีมจำกัดการทำงานพร้อมกันของรายงานและวัดผลอีกครั้ง
หากปริมาณงานที่ปรับแล้วยังต้องการหน่วยความจำมากขึ้น การอัปเกรดตอนนี้ตอบสนองความต้องการที่สังเกตได้ หากคิวยังคงจำกัดด้วย CPU และงานอิสระสามารถทำงานพร้อมกันได้ ทรัพยากรการประมวลผลที่มากขึ้นอาจเหมาะสม สิ่งเหล่านี้เป็นตัวอย่างการตัดสินใจ ไม่ใช่ตัวเลขประสิทธิภาพสำหรับแผน SwissOctet ให้เก็บการวัดและข้อจำกัดของคุณเองไว้พร้อมกับการกำหนดค่าที่เลือก
เว้นเส้นทางที่ชัดเจนสำหรับการวัดครั้งถัดไป
กำหนดสัญญาณที่จะกระตุ้นให้ทบทวน: เวลาตอบสนองเสื่อมลง แรงกดดันหน่วยความจำเกิดซ้ำ คิวเพิ่มขึ้น หรือปริมาณงานเปลี่ยนไป ให้การตรวจสอบเบาพอที่จะไม่กลายเป็นคอขวดใหม่ ประเมินใหม่หลังจากเพิ่มฟีเจอร์หรือชุดข้อมูลขนาดใหญ่ และหลีกเลี่ยงการอัปเกรดซ้ำเมื่อปัญหาจริงคือกระบวนการที่ไม่จำกัดหรือคิวรีที่ช้า
ตระกูล VPS ของ SwissOctet เปิดเผยข้อมูลจำเพาะของ CPU และหน่วยความจำ รวมถึงตัวเลือกทรัพยากรที่เลือก อ่านการกำหนดค่าขั้นสุดท้ายหลังจากเพิ่มส่วนเสริม รวมถึงรอบบิลและยอดรวม ยืนยันเงื่อนไขการอัปเกรดกับผู้ให้บริการจริงก่อนพึ่งพาเงื่อนไขเหล่านั้น ขนาด VPS ที่มีประโยชน์คือขนาดที่รันปริมาณงานที่วัดได้โดยมีพื้นที่เหลือที่สมเหตุสมผลและมีขั้นตอนถัดไปที่เข้าใจได้
รายการตรวจสอบปฏิบัติของคุณ
- สำรวจบริการและงานบำรุงรักษา
- วัดการทำงานพร้อมกันในช่วงปกติและช่วงที่ยุ่ง
- จัดสรรงบหน่วยความจำถาวรและชั่วคราว
- ตรวจสอบว่างาน CPU ทำงานขนานกันได้หรือไม่
- เปรียบเทียบแรงกดดัน การใช้งาน และเวลาของแอปพลิเคชัน
- กำหนดว่าเมื่อใดควรทบทวนการกำหนดค่า
รายละเอียดที่สำคัญ
ควรกำหนดขนาด VPS จากจำนวนผู้เข้าชมต่อเดือนหรือไม่+
ใช้จำนวนผู้เข้าชมเป็นบริบท แล้ววัดความซับซ้อนของคำขอ การทำงานพร้อมกัน ขนาดข้อมูล และงานเบื้องหลัง จำนวนผู้เข้าชมที่เท่ากันอาจสร้างโหลดที่แตกต่างกัน
RAM ที่มากขึ้นทำให้บริการเร็วขึ้นเสมอหรือไม่+
ไม่ใช่ ช่วยเมื่อหน่วยความจำเป็นข้อจำกัดหรือเปิดใช้แคชที่มีประโยชน์ แต่ไม่ได้แก้ความล่าช้าจาก CPU พื้นที่จัดเก็บ หรือ dependency ภายนอกทั้งหมด
จำนวน vCPU สองเท่าทำให้ประสิทธิภาพสองเท่าหรือไม่+
ไม่ใช่ การทำงานขนาน ลักษณะของโปรเซสเซอร์ การแย่งชิง และการออกแบบแอปพลิเคชันเป็นตัวกำหนดว่าความจุเพิ่มเติมมีประโยชน์มากเพียงใด
ไปที่ต้นทาง
แหล่งอ้างอิงเหล่านี้สนับสนุนแนวคิดทางเทคนิคในคู่มือนี้ ปฏิบัติตามเอกสารปัจจุบันก่อนเปลี่ยนระบบโปรดักชัน
- เคอร์เนล Linux: Pressure Stall Information docs.kernel.org
- PostgreSQL: การใช้ทรัพยากร www.postgresql.org
- โครงการ KVM: Kernel Virtual Machine www.linux-kvm.org
คำแนะนำด้านบรรณาธิการโดย SwissOctet ตัวอย่างมีไว้เพื่อประกอบ ข้อมูลจำเพาะของบริการ ตัวเลือกที่มี และเงื่อนไขตามสัญญาต้องได้รับการตรวจสอบแยกต่างหาก