VMCO – Virtual Machine Compute Optimizer

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 ได้หลายรูปแบบ เช่น

VMSocketsVMCoresPerSocketvCPUs
144
414
224

จะเห็นว่าทั้ง 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

  1. เริ่มขั้นตอนแรกให้ ไปทำ การ 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

vROPs Dashboard for VM Right-Sizing and Performance…Part 1

By Lerpong Intaraworrapath | September 28th, 2021

Performance Right Size
Performance Right Size

Part 1 – วิธีการสร้าง vROPs Dashboard สำหรับแสดงค่า Performace และ Right-Sizing ของ Virtual Machine

***ทำการ download Views และ Dashboards จาก link ด้านล่างมาเตรียมไว้ก่อนนะครับ

https://code.vmware.com/samples/7624/vrops-dashboard-for-vm-right-sizing-and-performance-?h=vrops%20dashboard#code

Dashboard ที่เราจะ create ขึ้นมาจะแสดงค่าที่ถูกต้องของ CPU และ Memory ในการทำงาน ของ virtual Machine จากการ monitor history การทำงาน รวมถึงแสดงค่าปัจจุบันของ CPU และ Memory ของ virtual Machine ที่กำลังใช้งานด้วย รวมทั้งแสดงค่า Metrics ที่จำเป็นในการ monitor virtual machine ด้วย.

เริ่มการติดตั้ง

  1. ทำการ Login ไปที่ vRealize Operations Manager ไปที่ Tab Dashboard -> Views -> Manage Views
Manage Views
Manage Views

2. ทำการ เลือก ปุ่ม 3 จุด แล้ว เลือก Import

Import
Import

3. ทำการ Browse ไปยัง location ที่เราทำการ Download ไฟล์ Views ไว้ตอนแรกต้น แล้ว Click Open

Right Size Views
Right Size Views

4. Views imported successfully แล้วก็ Click DONE

Views Successfully
Views Successfully

5. ไปที่ Tab Dashboard -> Dashboards -> Manage Dashboards

Manage Dashboard
Manage Dashboard

6. ทำการ เลือก ปุ่ม 3 จุด แล้ว เลือก Import

Import Dashboards
Import Dashboards

7. ทำการ Browse ไปยัง location ที่เราทำการ Download ไฟล์ Dashboardsไว้ตอนแรกต้น แล้ว Click Open

Import Dashboards
Import Dashboards

7. Dashboards imported successfully แล้วก็ Click DONE

Dashboards successfully
Dashboards successfully

9. เราก็จะได้ หน้า Dashboards ที่แสดงค่า Performace และ Right-Sizing ของ Virtual Machine “PowerBlock – Performance – Right Sizing

Performance Right Size Dashboards
Performance Right Size Dashboards

***จะสังเกตุว่าค่า Metrics ของ CPU|Ready (ms) จะไม่แสดงใน Dashboards เราจะต้องไปทำการ Enable CPU Ready (ms) metrics ขึ้นมา

Step to enable metrics CPU | Ready(ms)

  1. ไปที่ Tab Administration -> Policies -> vSphere Solution’s Default Policy (Date|Time)
Policies
Policies

2. ทำการ เลือก ปุ่ม 3 จุด แล้ว เลือก Edit

Edit Policies
Edit Policies

3. Click -> Metrics and Properties

Metrics and Properties
Metrics and Properties

4. ทำการ พิมพ์ “Virtual Machine” ในช่อง Select Object Type แล้ว Enter

Select Object Type
Select Object Type

5. ในช่องด้านซ้ายมือ All FILTERS ให้พิมพ์ “Ready” แล้ว Enter

All Filters
All Filters

6. ทำการขยาย Metrics -> CPU แล้วจะพบคำว่า “Ready (ms)” โดย State จะเป็น Disabled

Ready (ms) - Disabled
Ready (ms) – Disabled

7.ทำการ “Enabled” ค่า CPU Ready (ms) ทั้งในส่วนของ State และ Instanced State ทำการ Click SAVE

Dropdown
Dropdown
Instanced State
Instanced State
Enabled CPU Ready (ms)
Enabled CPU Ready (ms)

8. กลับที่หน้า Dashboards -> PowerBlock – Performance – Right Sizing ก็จะแสดงค่า CPU | Ready(ms)

CPU Ready(ms) Dashboards
CPU Ready(ms) Dashboards

โดยค่า CPU | Ready (ms) จะบอก อะไรกับเราได้บ้าง และมีประโยชน์ อย่างไร
Performance Values:

  • CPU|Ready (ms) should be 1000 or less for best performance.
  • CPU|Remove – I like to keep this at 2 or less. For some applications this can be trial and error.
  • CPU|Add – I like to keep this at 0. Make sure the VM is sized with enough resources. Don’t under size VMs. This will keep the APP Owners Happy!

Part 2 – Report

-ใน Part 2 เราจะมาทำการสร้าง Report จาก Dashboard ที่เราสร้างขึ้นมา
https://ilerpong.com/vrops-dashboard-for-vm-right-sizing-and-performance-part-2/

Reference: