By Lerpong Intaraworrapath | November 1st ,2021
Virtual Machine Compute Optimizer
เราจะรู้ได้อย่างไรว่า vCPU ที่เรา assign ให้กับ Virtual machine นั้น ตัว Virtual machine จะสามารถใช้งาน CPU ได้เต็มประสิทธิภาพ และได้ประสิทธิภาพที่ดีที่สุด Optimized Performance.
ยกตัวอย่าง ในการ assign vCPU ให้กับ Virtual machine เราต้องการ 4vCPUs เราสามารถ assign ได้หลายรูปแบบ เช่น
VMSockets | VMCoresPerSocket | vCPUs |
1 | 4 | 4 |
4 | 1 | 4 |
2 | 2 | 4 |
จะเห็นว่าทั้ง 3 แบบเราจะได้ 4 vCPUs เหมือนกัน !!!แต่ แบบไหนจะให้ ประสิทธิภาพ และใช้งาน vCPU จาก Physical CPU ได้เต็มประสิทธิภาพมากที่สุด
จะมี Tool หนึ่งตัวมาแนะนำ ใช้สำหรับตรวจสอบดูว่า vCPU ที่เรา assign ให้กับ Virtual machine ใน environment ของเรามีการ assign vCPU ได้ถูกต้อง และใช้งาน ได้เต็มประสิทธิภาพไหม.
VMCO – Virtual Machine Compute Optimizer
The Virtual Machine Computer Optimizer (VMCO) เป็น Powershell script และ PowerCLI module ซึ่งจะ capture ดาต้าเกี่ยวกับ vSphere ESXi host และ VMs ที่ใช้งานใน environment ซึ่งจะทำการ ส่ง report รายงานการ configured virtual machine based on การใช้งาน Host CPU และ Memory.
โดยค่าที่แสดงผลจะมี “TRUE” กับ “FALSE“
- TRUE จะ Optimized
- FALSE จะไม่ Optimized
How to install
- เริ่มขั้นตอนแรกให้ ไปทำ การ download file VMCO จาก link ด้านล่าง
https://flings.vmware.com/virtual-machine-compute-optimizer
จากนั้นเราก็จะได้ไฟล์ “VirtualMachineComputeOptimizer-master-3.0.0.0.zip”
2. ให้เราทำการ unzip ไฟล์ออกมา ภายใน Folder จะทั้งหมด 4 ไฟล์
3. วิธีการ ใช้งาน และ การดู report จะอยู่ในไฟล์ “Documentation – Virtual Machine Compute Optimizer.pdf” (แนะนำให้อ่าน เพื่อทำความเข้าใจเพิ่มเติม)
4. ให้เราทำการ Right-click ไฟล์ “Virtual_Machine_Compute_Optimizer_v3.0.0.ps1” แล้วทำการ เลือก “Run with PowerShell“.
5. หน้าต่าง PowerShell ก็จะปรากฏขึ้นมา โดยก็จะมีคำถาม trust script policy ของ script ที่เรา run ก็ให้เราตอบ Y หรือ A แล้วกด “Enter“
6. ต่อมาก็จะเป็นแสดง path ที่เราจะทำการเก็บไฟล์ CSV location จะให้เก็บไว้ที่ไหน ถ้าไม่เป็นแปลง ก็จะเป็น path default ที่เรา run ไฟล์ PowerShell ถ้าเราไม่ต้องการเปลี่ยน ก็ให้กด “Enter“
7. ตัว VMCO ก็อาจจะ require ให้เรา install module เพิ่ม
8. เมื่อทำการ Install module จนเสร็จเรียบร้อย ตัว VMCO จะให้เราใส่ vCenter server name (เราสามารถ ใส่ได้มากกว่า 1 vCenter server โดยใช้ comma หลัง vCenter server แต่ละตัว).
9. ในตัวอย่างนี้ผมจะใส่ 2 vCenter servers แล้วให้ “Enter“
10. จะมีหน้าต่างให้เราใส่ credential ของ vCenter server แล้ว click “OK“.
11. VMCO ก็จะทำการ Retrieving data ของ virtual machine และ vSphere ESXi host
12. เมื่อทำการ เก็บข้อมูลเสร็จเรียบร้อย ก็จะมีข้อความ Analysis complete ตัว report ก็จะไปเก็บไว้ใน path ที่เราเลือกในข้อ 6. ให้ “Enter“.
13. ให้เราทำการ browse ไปยัง Folder ที่เก็บไฟล์ เราจะเจอไฟล์ “VMCO_Reports.csv”
14. เมื่อเราเปิดไฟล์ขึ้นมาก็จะมีรายละเอียดของ vCenter server ต่างเช่น vCenter server name, Cluster name, Hostname, etc.
15. แต่สิ่งที่เราสนใจจะเป็น Column “V” คือ “VMOptimized“
16. โดยค่าใน “VMOptimized” จะมีคือ TRUE และ FALSE
- TRUE จะค่าที่บอกว่า Virtual machine ที่เราใช้งานอยู่มีการ configured vCPU ที่ Optimized แล้ว
- FALSE จะค่าที่บอกว่า Virtual machine ที่เราใช้งานอยู่มีการ configured vCPU ที่ยังไม่ Optimized แนะนำให้ทำการ re-configure
ยกตัวอย่าง จากรูปด้านล่าง
จากบรรทัดที่สอง ค่า vCPU ที่เราต้องการสำหรับ virtual machine คือ 2 vCPU และค่า “VMOptimized” คือ FALSE
- Column U จะเป็นค่า vCPU ที่เราต้องการ
- Column S, T คือค่า vCPU ที่เรา configured ไว้่
- Column V คือค่า VMOptimized (TRUE, FALSE) ในที่นี้แสดงค่า FALSE
- Column W, X คือค่า vCPU ที่เราจะต้อง re-configure ใหม่ให้ค่า Optimized
- Column Y จะเป็นค่า Priority (LOW, MEDIUM, HIGH) สำหรับดูลำดับความสำคุญในการจะ re-configure virtual machine
- Colum Z จะบอก detail ว่าทำไม vCPU ถึงไม่ Optimized Performance สาเหตุเพราะอะไร
Conclusion
VMCO จะเป็น Tool อีกหนึ่งตัวที่จะช่วยให้เราทำทราบว่า มี virtual machine ตัวไหน ใน vSphere environment ที่เราใช้งาน ที่ Optimized performance บ้าง ตัวไหนที่เราต้องทำการ ปรับ แก้ไข ให้ มี Performance ที่ดีขึ้นเพื่อให้ vCPU จากการใช้งาน Physical CPU จาก Physical server ได้เต็มประสิทธิภาพ ได้ดีที่สุด.
Reference:
Credit: ขอขอบคุณน้อง Nat (Napongtorn) สำหรับขั้นตอนการ run VMCO