การเติมเงินในบัญชี Tencent Cloud: ความสามารถในการประมวลผลพร้อมกันหลายงานของเซิร์ฟเวอร์ที่ใช้คอมพิวเตอร์การวัดฮาร์ดคอร์ในเชิงลึก
ในตลาดการเลือกคลาวด์คอมพิวติ้งมี "ปัญหาสามศตวรรษ" แบบคลาสสิก:
วิธีการเลือกประเภทสากลหน่วยความจำและการคำนวณ? การเติมเงินบัญชีเทนเซ็นต์คลาวด์
หัวหน้างานหลายคนที่เพิ่งเข้าสู่อุตสาหกรรมในฐานะสถาปัตยกรรมหรือเป็นผู้นำทีมมักจะตกอยู่ในความเข้าใจผิด: "อย่างไรก็ตามมันคือเซิร์ฟเวอร์คลาวด์ทั้งหมดฉันไม่สามารถซื้อประเภทสากลที่มีคอลเล็กชันจำนวนมากและหน่วยความจำขนาดใหญ่ได้หรือไม่? เซิร์ฟเวอร์คอมพิวเตอร์ไม่ได้หมายความว่าความถี่ CPU สูงและหายไปสำหรับการจัดหมวดหมู่แยกต่างหากจะมีความมั่นใจมากขึ้นหรือไม่"
เพื่อให้เข้าใจถึงประสิทธิภาพที่แท้จริงของ "เซิร์ฟเวอร์คอมพิวเตอร์" ภายใต้การทำงานพร้อมกันแบบมัลติทาสกิ้งและการทดสอบแรงดันโหลดสูงทีมของเราเพิ่งทำเกือบบ้า
การทดสอบความดันพร้อมกันหลายงานระดับนรก
。เราพบหนึ่ง
Tencent Cloud รุ่นล่าสุดของเซิร์ฟเวอร์คอมพิวเตอร์ (16คอร์32G)
งานที่ใช้พลังงานสูงสามงานโดยตรงในการแปลงรหัสวิดีโอการให้เหตุผล AI และการประมวลผลการเข้ารหัสที่ซับซ้อน
วิ่งพร้อมกัน
。
บทความของวันนี้โดยไม่ต้องใช้สำนวนอย่างเป็นทางการใดๆจะใช้มุมมองแบบเรียลไทม์ที่มีเหตุผลที่สุดและข้อมูลที่วัดได้โดยตรงเพื่อแสดงให้คุณเห็น "พลังเอวที่น่ากลัว" ของเซิร์ฟเวอร์คอมพิวเตอร์ในระหว่างการทำงานหลายอย่างพร้อมกัน
1.เหตุใดเราจึงต้องหา "ประเภทการคำนวณ" สำหรับการทำงานหลายอย่างพร้อมกัน?
ก่อนที่จะเข้าสู่หัวข้อเรามาพูดถึงภาษาพื้นถิ่นก่อน:
การประมวลผลการทำงานหลายอย่างพร้อมกัน (การประมวลผลการทำงานหลายอย่างพร้อมกัน) การทดสอบระดับล่างสุดของเซิร์ฟเวอร์คืออะไร?
หลายคนคิดว่าการทำงานหลายอย่างพร้อมกันหมายความว่า "1แกน CPU ไม่เพียงพอดังนั้นให้10คอร์ทำงานร่วมกัน" แม้ว่าจะถูกต้องแต่ในเซิร์ฟเวอร์ทั่วไปเมื่องานคอมพิวเตอร์จำนวนมากแตกออกในเวลาเดียวกันระบบมักจะพบปัญหาคอขวดร้ายแรงสองประการต่อไปนี้:
Pseudo-multi-core และการคำนวณ (CPU Churning): ความถี่หลักพื้นฐานของ CPU ของเซิร์ฟเวอร์ทั่วไปอาจอยู่ที่ $2.5 \ text{ GHz}$ และอาจมี "การแบ่งปันทรัพยากร" ของไฮเปอร์เธรดเสมือนที่ชั้นล่างสุดเมื่องานหลายอย่างต้องใช้พลังในการคำนวณในเวลาเดียวกันบริบทจะถูกสลับไปมาระหว่างแกน CPU บ่อยครั้งทำให้สูญเสียพลังในการประมวลผลจำนวนมากไปกับ "การเข้าคิวเพื่อเปลี่ยนที่นั่ง"
Cache Starvation: การทำงานหลายอย่างพร้อมกันส่วนใหญ่กลัวว่าแคช L3 (แคชสามระดับ) ใน CPU จะไม่ใหญ่พอหากข้อมูลของงาน A ถูกใส่ลงในแคชและงาน B ถูกบีบออกไปก่อนที่การคำนวณจะเสร็จสิ้น CPU จะต้องดึงข้อมูลลงในหน่วยความจำบ่อยครั้งส่งผลให้ประสิทธิภาพลดลงเหมือนหน้าผา
เซิร์ฟเวอร์คอมพิวเตอร์ (Compute-Optimized Instance) เกิดมาเพื่อทำลายความตายนี้คุณสมบัติหลักของมันคือ:
อัตราส่วนของ CPU ต่อหน่วยความจำหยุดชะงักอยู่ที่ $1:2 $ (เช่น4-core 8G,16-core 32G) ทำให้งบประมาณทุกเปอร์เซ็นต์ลดลงในประสิทธิภาพของ CPU
โปรเซสเซอร์ความถี่สูงพิเศษโดยปกติจะมาพร้อมกับชิประดับไฮเอนด์ที่มีความถี่เทอร์โบสูงสุดที่สามารถพุ่งไปที่ $3.5 \ text{ GHz}$
มีแคช L3ขนาดใหญ่ต่อคอร์เพื่อให้แน่ใจว่าเมื่อมีงานหลายงานพร้อมกันจำนวนของแต่ละงาน
สามารถอยู่ในแคชที่ใกล้กับ CPU มากที่สุด
2.การผจญภัยที่วัดได้: ภารกิจ "เสือไฟฟ้า" ทั้งสามถูกทิ้งระเบิดในเวลาเดียวกัน
เพื่อทดสอบขีดจำกัดเราได้สร้างความสุดขั้ว
หลายงานและฉากผสมพร้อมกัน
。หากเซิร์ฟเวอร์ธรรมดาทำงานเช่นนี้ระบบปฏิบัติการอาจหยุดงานหรือขัดข้องโดยตรง
📊สภาพแวดล้อมการวัดของเรา
รุ่นทดสอบ: เซิร์ฟเวอร์คอมพิวเตอร์ (16คอร์32G, แกนทางกายภาพพิเศษ)
ระบบปฏิบัติการ: CentOS Stream 9
การรวมงานพร้อมกัน: งาน A (กลุ่มวิดีโอ): ใช้ FFmpeg เพื่อทำการแปลงรหัส H.265บน4 $4 \ text{K}$ Ultra-Clear Video พร้อมกัน (หน่วยลอจิกเลขคณิต ALU ที่บีบ CPU มาก) งาน B (กลุ่มความปลอดภัย): เรียกใช้สคริปต์ Python ความถี่สูงสำหรับการสร้างคีย์ RSA-4096อย่างต่อเนื่องและการถอดรหัสไฟล์ขนาดใหญ่ (บีบการดำเนินการบิตของ CPU และความสามารถในการดำเนินการจำนวนเต็ม) งาน C (กลุ่มการให้เหตุผล AI): เรียกใช้รูปแบบการจำแนกข้อความ BERT ที่มีน้ำหนักเบาและทำการวิเคราะห์อารมณ์ข้อความพร้อมกันอย่างต่อเนื่อง (บีบการคูณเมทริกซ์ของ CPU และการขยายชุดคำสั่งเช่น AVX-512)
3.ประสิทธิภาพการทำงานพร้อมกัน: ข้อมูลจะไม่โกหก
เมื่องานทั้งสามนี้กลับมาที่รถและเริ่มทำงานในพื้นหลังในเวลาเดียวกันเราจ้องไปที่ป้ายโฆษณาเฝ้าระวัง
1."เส้นโค้งที่มั่นคง" ภายใต้น้ำหนักบรรทุกเต็ม100%
การเติมเงินบัญชีเทนเซ็นต์คลาวด์
ภายใต้การโจมตีของ "พลังคอมพิวเตอร์" สามคอร์ซีพียูทั้ง16คอร์ของเซิร์ฟเวอร์พุ่งสูงขึ้นในเวลาไม่ถึง2วินาที
100% โหลดเต็มสถานะ
。
หากคุณเคยใช้เซิร์ฟเวอร์ที่ใช้งานทั่วไปมาก่อนหากคุณดึงคำสั่งอินพุตเทอร์มินัล SSH ในเวลานี้มักจะมีความล่าช้าอย่างเห็นได้ชัดการตัดการเชื่อมต่อหรือแม้แต่การปฏิเสธการเชื่อมต่อแต่บนเซิร์ฟเวอร์คอมพิวเตอร์เราพยายามดำเนินการ
ด้านบน
คำสั่งและดูบันทึกระบบข้อเสนอแนะของเทอร์มินัลจริง
เนียนมากไม่มีความล่าช้า
。สิ่งนี้แสดงให้เห็นว่าเลเยอร์ด้านล่างยังคงรักษาช่องทางการตอบสนองที่ทรงพลังอย่างยิ่งสำหรับการตั้งเวลาเคอร์เนลและงานที่มีลำดับความสำคัญสูง (เช่นการโต้ตอบของระบบ)
2.การเปรียบเทียบการวัดจริงของตัวบ่งชี้หลัก
เราทำให้การทำงานพร้อมกันแบบมัลติทาสกิ้งแบบไฮบริดนี้ดำเนินต่อไปเป็นเวลา30นาทีและเปรียบเทียบในแนวนอนกับอินสแตนซ์สากลของข้อกำหนดเดียวกัน (16คอร์64G):
ตัวบ่งชี้การทดสอบและประสิทธิภาพของงาน
ตัวอย่างทั่วไป (16แกน64G)
ตัวอย่างการคำนวณ (16แกน32G)
ช่องว่างของประสิทธิภาพและ somatosensory
อัตราเฟรม FFmpeg 4K (รวม)
เฉลี่ย42เฟรม/วินาที
เฉลี่ย78เฟรม/วินาที
เพิ่มขึ้นประมาณ85% ความเร็วในการแปลงรหัสเร็วขึ้นเกือบสองเท่า
ปริมาณงานถอดรหัส RSA
2,100ครั้ง/วินาที
3,950ครั้ง/วินาที
พลังการคำนวณมีความบริสุทธิ์สูงขึ้นและการดำเนินการจำนวนเต็มก็ก้าวไปไกล
AI ข้อความเหตุผลล่าช้า (P99)
142ms (ผันผวน)
38ms (เสถียรมาก)
ขอบคุณการเพิ่มประสิทธิภาพชุดคำสั่ง AVX-512
อุณหภูมิและความถี่ของ CPU ภายใต้ภาระสูง
อุณหภูมิที่พบ
ผนังความถี่ลดลงถึง2.6G
เสถียรเสมอที่3.4G เทอร์โบ
การกระจายความร้อนและแหล่งจ่ายไฟของโฮสต์มีประสิทธิภาพมาก
3.ประสบการณ์ "ความลุ่มหลง" ของการทำงานหลายอย่างโดยไม่รบกวนซึ่งกันและกัน
ในการทดสอบเราได้ดำเนินการเล็กน้อย: ในนาทีที่15จำนวนงานในการแปลงวิดีโออย่างกะทันหัน
เพิ่มเป็นสองเท่า
(จาก4วิธีบวก8วิธี)
บนเซิร์ฟเวอร์ที่ใช้งานทั่วไปความพยายามในการคำนวณอย่างกะทันหันนี้จะทำให้ "ความล่าช้าในการให้เหตุผล AI" ที่อยู่ติดกันพุ่งสูงขึ้นถึงหลายร้อยมิลลิวินาทีอย่างไรก็ตามบนเซิร์ฟเวอร์คอมพิวเตอร์ความล่าช้าของการให้เหตุผล AI จะสั่นเพียงเล็กน้อย (จาก38ms เป็น45ms) จากนั้นก็กลับสู่สภาวะปกติทันที
สิ่งนี้สะท้อนให้เห็นถึงเซิร์ฟเวอร์คอมพิวเตอร์ที่มีประสิทธิภาพ
การแยกฮาร์ดแวร์แบบมัลติเธรดและข้อดีของแคชขนาดใหญ่
。แต่ละคอร์กำลังทำงานที่สกปรกของตัวเองและสายการประกอบระดับฮาร์ดแวร์ได้รับการจัดเรียงอย่างเป็นระเบียบไม่มีโศกนาฏกรรมของ "คนคนหนึ่งครอบครองถนนและทั้งเส้นถูกปิดกั้น"
ประการที่สี่ความลึก: เหตุใดจึงมีการทำงานหลายอย่างพร้อมกัน?
ในการลบข้อมูลพื้นผิวเราต้องดูจากด้านล่างของเทคโนโลยีความลับหลักสามประการของความสามารถในการทำงานหลายอย่างที่มีประสิทธิภาพของเซิร์ฟเวอร์คอมพิวเตอร์:
ความลับที่1: พรของฮาร์ดแวร์ระดับชุดคำสั่ง (AVX-512 / AMX)
ซีพียูที่ใช้โดยเซิร์ฟเวอร์คอมพิวเตอร์สมัยใหม่รวม "ชุดคำสั่งขยายเวกเตอร์ขั้นสูง" จำนวนมาก (เช่น AVX-512ของ Intel)
เซิร์ฟเวอร์ธรรมดาจะนับเมทริกซ์ทางคณิตศาสตร์ที่ซับซ้อนซึ่งต้องใช้ไปป์ไลน์ในหลายขั้นตอนและชุดคำสั่งพื้นฐานของเซิร์ฟเวอร์คอมพิวเตอร์
อนุญาตให้ซีพียูคำนวณข้อมูลแถวใหญ่ในเวลาเดียวกันเช่นการตัดกระเทียม
。เมื่อทำงานหลายอย่างพร้อมกัน "สิ่งประดิษฐ์การโกง" ระดับฮาร์ดแวร์นี้ช่วยให้งานเฉพาะเสร็จสิ้นได้อย่างรวดเร็วและเพิ่มพลังในการคำนวณสำหรับงานอื่นๆ
ความลับที่2: พลังการคำนวณทางกายภาพโดยไม่มี "ความชื้น"
VPS เวอร์ชวลไลเซชันราคาถูกจำนวนมากหรืออินสแตนซ์ระดับล่างทั่วไปแกน CPU ของพวกเขาคือผู้ใช้หลายคนที่ "แชร์คาร์พูล" ที่ด้านล่าง (หรือที่เรียกว่า Oversold)
เซิร์ฟเวอร์คอมพิวเตอร์ของผู้ผลิตรายใหญ่มักจะสัญญา
การผูกแกนทางกายภาพ1:1
。16คอร์คือ16หน่วยพลังการคำนวณทางกายภาพที่แท้จริงเป็นของคุณโดยเฉพาะเมื่อมีการทำงานหลายอย่างพร้อมกันแต่ละงานจะถูกจัดสรรให้กับ "บอดี้การ์ดส่วนตัว" ที่แท้จริงและโดยธรรมชาติแล้วจะไม่มีการฉีกขาดของทรัพยากรที่ร้ายแรง
ความลับที่3: อัตราส่วนหน่วยความจำทองคำ (1:2) ลดค่าใช้จ่าย
มีคนถามว่า: "ทำไมเซิร์ฟเวอร์คอมพิวเตอร์16คอร์จึงติดตั้งหน่วยความจำ32G เท่านั้นและแอปพลิเคชันทั่วไปที่มี64G ไม่ดีกว่าหรือ"
นี่คือที่ที่ Dachang ฉลาดบริการคอมพิวเตอร์ (เช่นการคอมไพล์การเรนเดอร์การเข้ารหัส) ข้อมูลส่วนใหญ่จะหมุนด้วยความถี่สูงในแคชของ CPU ซึ่งไม่ต้องการความจุหน่วยความจำมากนัก
ตัดความจุหน่วยความจำส่วนเกินเพื่อแลกกับหน่วยความจำชั้นยอดที่มีความถี่สูงขึ้นและเวลาแฝงต่ำลง
。ซึ่งจะช่วยลดค่าใช้จ่ายของระบบของ CPU ที่รอให้หน่วยความจำขนาดใหญ่ล้างข้อมูล
5.การเลือกและการต่อสู้จริง: ธุรกิจมัลติทาสกิ้งของคุณควรได้รับการตรวจสอบอย่างไร?
หลังจากอ่านการทดสอบความดันจำกัดของเราแล้วคุณอาจถูกย้ายไปแล้วแต่โปรดใจเย็นๆแม้ว่าเซิร์ฟเวอร์คอมพิวเตอร์จะดีแต่ก็ไม่ได้มีอำนาจทุกอย่าง
ของ. ฉันได้สรุปชุดสูตรการเลือกเชิงปฏิบัติสำหรับคุณ:
การเติมเงินบัญชีเทนเซ็นต์คลาวด์
🚀โดยไม่ลังเลโปรดล็อกสถานการณ์ของ [เซิร์ฟเวอร์คอมพิวเตอร์] โดยตรง:
เว็บแบ็กเอนด์พร้อมกันสูงและเกตเวย์ API: ตัวอย่างเช่นแบ็กเอนด์ของคุณมีการตัดสินตรรกะทางธุรกิจจำนวนมากการตรวจสอบข้อมูลและการเข้ารหัสสิทธิ์ (บริการแบบเร่งรัด Java / Go/Node.js)
การประมวลผลเสียงและวิดีโอและการทำความสะอาดมัลติมีเดีย: เรียกใช้ชิ้นส่วนวิดีโอ FFmpeg ทุกวันการแปลงรหัสการเพิ่มลายน้ำการบีบอัดรูปภาพ
การคำนวณทางวิทยาศาสตร์ของการรับส่งข้อมูลจำนวนมากและการเรียกใช้แบทช์: ตัวอย่างเช่นจำเป็นต้องมีการคำนวณงบการเงินพร้อมกันสูงและแบบจำลองคณิตศาสตร์ประกันภัยของผู้ใช้หลายพันคนทุกคืน
การปรับใช้แมชชีนเลิร์นนิงที่มีน้ำหนักเบา: ไม่คุ้มกับ GPU ที่มีราคาแพงจำเป็นต้องใช้ CPU สำหรับการคาดการณ์ AI ออนไลน์ที่มีประสิทธิภาพและพร้อมกันและการแบ่งส่วนข้อความ NLP
🛑ฟังคำแนะนำของฉันโปรดอ้อมและเลือกฉาก [ประเภทสากลหรือประเภทหน่วยความจำ]:
ฐานข้อมูลที่ไม่ใช่เชิงสัมพันธ์พร้อมกันสูง (เช่น Redis): แกน Redis มองไปที่แบนด์วิดท์และความจุของหน่วยความจำเซิร์ฟเวอร์คอมพิวเตอร์16คอร์32G คือ "CPU ไม่ได้ใช้งานและหน่วยความจำถูกบีบ"
ฐานข้อมูลอีคอมเมิร์ซเดียวขนาดใหญ่ (เช่น MySQL / Oracle): ฐานข้อมูลต้องการหน่วยความจำขนาดใหญ่เพื่อสร้าง Buffer Pool หน่วยความจำของเซิร์ฟเวอร์คอมพิวเตอร์มีขนาดเล็กเกินไปซึ่งจะทำให้เกิดการเรียกใช้ดิสก์ I/O บ่อยครั้ง
การจัดเก็บและแจกจ่ายไฟล์ที่บริสุทธิ์: ใช้เพื่อดาวน์โหลดไฟล์ขนาดใหญ่สำหรับไคลเอนต์เท่านั้น CPU ไม่ได้ใช้งานทุกวันคุณควรเพิ่มเงินเพื่อซื้อแบนด์วิดท์เครือข่ายสาธารณะและดิสก์คลาวด์ที่มีปริมาณงานสูง
หก. สรุป
หากคุณเปรียบเทียบเซิร์ฟเวอร์ที่ใช้งานทั่วไปกับ "ช่างซ่อมบำรุงรอบด้าน" ที่สามารถทำทุกอย่างได้แต่ไม่แม่นยำอะไรเลย
เซิร์ฟเวอร์คอมพิวเตอร์คือ "กองกำลังพิเศษชั้นยอด" สำหรับการคำนวณที่มีความเข้มสูงและมีความซับซ้อนสูง
。
ภายใต้การโจมตีสามครั้งของการแปลงรหัสวิดีโอการให้เหตุผล AI และการเข้ารหัสที่มีความแข็งแรงสูงเซิร์ฟเวอร์คอมพิวเตอร์จะใช้มัน
เทอร์โบที่เสถียรสูงสุด3.4G พลังการประมวลผลทางกายภาพพิเศษ1:1และชุดคำสั่งการขยายฮาร์ดแวร์ที่ทรงพลัง
, ส่งกระดาษคำตอบใกล้คะแนนเต็ม. มันบอกเราว่า: ในสนามรบของการทำงานหลายอย่างพร้อมกันผลลัพธ์มักไม่ใช่ปริมาณหน่วยความจำที่คุณมีแต่พลังการประมวลผล CPU ของคุณบริสุทธิ์เพียงใด!
การเติมเงินบัญชีเทนเซ็นต์คลาวด์
