ฉันพบปัญหาด้านประสิทธิภาพกับเซิร์ฟเวอร์ Mumble ซึ่งฉันอธิบายไว้ในคำถามก่อนหน้านี้เกิดจากปัญหาเวลาแฝงของ I/O ที่ไม่ทราบที่มา เนื่องจากฉันไม่รู้ว่าอะไรทำให้เกิดสิ่งนี้และจะแก้ไขข้อบกพร่องเพิ่มเติมได้อย่างไร ฉันจึงขอความคิดเห็นจากคุณในหัวข้อนี้
ฉันใช้เซิร์ฟเวอร์รูท Hetzner EX4Sเป็นไฮเปอร์ไวเซอร์ KVM เซิร์ฟเวอร์กำลังเรียกใช้ Debian Wheezy Beta 4 และการจำลองเสมือนของ KVM ใช้งานผ่าน LibVirt
เซิร์ฟเวอร์มีฮาร์ดไดรฟ์ 3TB ที่แตกต่างกันสองตัว เนื่องจากฮาร์ดไดรฟ์ตัวใดตัวหนึ่งถูกแทนที่หลังจากรายงานข้อผิดพลาด SMART ฮาร์ดดิสก์ตัวแรกคือ Seagate Barracuda XT ST33000651AS (ตรรกะ 512 ไบต์ ขนาดเซกเตอร์กายภาพ 4096 ไบต์) อีกอันหนึ่งคือ Seagate Barracuda 7200.14 (AF) ST3000DM001-9YN166 (ขนาดเซกเตอร์แบบลอจิคัลและฟิสิคัล 512 ไบต์) มีอุปกรณ์ RAID1 ซอฟต์แวร์ Linux สองเครื่อง อันหนึ่งสำหรับพาร์ติชั่นสำหรับเริ่มระบบที่ไม่ได้เข้ารหัส และอีกอันหนึ่งเป็นคอนเทนเนอร์สำหรับส่วนที่เหลือที่เข้ารหัส โดยใช้ฮาร์ดไดรฟ์ทั้งสอง
ภายในอุปกรณ์ RAID รุ่นหลังจะมีคอนเทนเนอร์ LUKS ที่เข้ารหัส AES ภายในคอนเทนเนอร์ LUKS มีฟิสิคัลวอลุ่ม LVM VFS ของไฮเปอร์ไวเซอร์ถูกแบ่งออกเป็นสามโลจิคัลวอลุ่มบนฟิสิคัลวอลุ่ม LVM ที่อธิบายไว้: หนึ่งสำหรับ / หนึ่งรายการสำหรับ /home และอีกหนึ่งรายการสำหรับการแลกเปลี่ยน
นี่คือไดอะแกรมของสแต็คการกำหนดค่าอุปกรณ์บล็อก:
sda (Physical HDD)
- md0 (RAID1)
- md1 (RAID1)
sdb (Physical HDD)
- md0 (RAID1)
- md1 (RAID1)
md0 (Boot RAID)
- ext4 (/boot)
md1 (Data RAID)
- LUKS container
- LVM Physical volume
- LVM volume hypervisor-root
- LVM volume hypervisor-home
- LVM volume hypervisor-swap
- … (Virtual machine volumes)
ระบบแขก (เครื่องเสมือน) ส่วนใหญ่ใช้งาน Debian Wheezy Beta 4 ด้วย เรามี Ubuntu Precise อีกหนึ่งตัวอย่าง พวกเขาได้รับอุปกรณ์บล็อกจากฟิสิคัลวอลุ่ม LVM ด้วย ไดรฟ์ข้อมูลสามารถเข้าถึงได้ผ่านไดรเวอร์ Virtio ในโหมดเขียนผ่านเนทีฟ ตัวกำหนดตารางเวลา IO (ลิฟต์) ทั้งบนไฮเปอร์ไวเซอร์และระบบแขกถูกตั้งค่าเป็นค่าdeadline
เริ่มต้นแทนที่จะเป็นการตั้งค่าcfs
ที่มีประสิทธิภาพสูงสุดตามชุดการทดสอบ bonnie++ ของเรา
ปัญหาเวลาแฝงของ I/O ไม่เพียงพบในระบบแขกเท่านั้น แต่ยังส่งผลกระทบต่อบริการที่ทำงานบนระบบไฮเปอร์ไวเซอร์ด้วย การติดตั้งดูซับซ้อน แต่ฉันแน่ใจว่าไม่ใช่โครงสร้างพื้นฐานที่ทำให้เกิดปัญหาเวลาแฝง เนื่องจากเซิร์ฟเวอร์ก่อนหน้าของฉันใช้เวลาสี่ปีด้วยการตั้งค่าพื้นฐานที่เกือบจะเหมือนกัน โดยไม่มีปัญหาด้านประสิทธิภาพใดๆ
ในการตั้งค่าแบบเก่า สิ่งต่อไปนี้แตกต่างออกไป:
- Debian Lenny เป็นระบบปฏิบัติการสำหรับทั้งไฮเปอร์ไวเซอร์และแขกเกือบทั้งหมด
- การจำลองเสมือนซอฟต์แวร์ Xen (ดังนั้นจึงไม่มี Virtio ด้วย)
- ไม่มีการจัดการ LibVirt
- ฮาร์ดไดรฟ์ที่แตกต่างกัน แต่ละขนาด 1.5TB (หนึ่งในนั้นคือ Seagate Barracuda 7200.11 ST31500341AS อีกตัวที่ฉันไม่สามารถบอกได้อีกต่อไป)
- เราไม่มีการเชื่อมต่อ IPv6
- ไม่ว่าในไฮเปอร์ไวเซอร์หรือแขก เราไม่มีปัญหาเวลาแฝง I/O ที่เห็นได้ชัดเจน
ตามเอกสารข้อมูล ฮาร์ดไดรฟ์ปัจจุบันและหนึ่งในเครื่องเก่ามีเวลาแฝงเฉลี่ย 4.12 มิลลิวินาที