ว่าด้วยเรื่องของ Azure App Service ที่มีความสามารถในการทำ Auto-scale แล้ว มันก็จะมีตัววัด (Metric) ที่เราสามารถกำหนดให้เป็นเงื่อนไขในการทำงานของ Auto-scale แบบต่างๆ
ในวันนี้เราจะมาดูว่ามีอะไรบ้าง และมันคืออะไรครับ
Metric ต่างๆ ในการกำหนดให้ Auto-scale ทำงาน
โดยปกติเมื่อเรากำหนด metric ขึ้นมาใน Auto-scale rule แล้ว กลไกของ Auto Scale จะคอยตามดูค่าพวกนี้ และทำการเพิ่ม instance ของ App Service ของเราเมื่อการใช้งานตาม metric วิ่งไปถึงค่าที่กำหนดนั่นเอง
แบบที่ใช้กันบ่อยๆ มีดังนี้
- CPU Percentage
- ปริมาณการใช้งาน CPU จาก instance ต่างๆ
- ค่าที่สูงขึ้นบ่งบอกถึงการประมวลผลของ instance สูงขึ้น
- มีผลทำให้การประมวลผล request จาก client เกิดความล่าช้าได้
- Memory Percentage
- จำนวน memory ที่มีการจองใช้งานใน instance ต่างๆ
- ค่าที่สูงขึ้น หมายความว่าแรมที่พร้อมให้เอาไปใช้เหลือน้อยลง
- อาจทำให้ instance 1 ตัว หรือมากกว่าล่มได้
- Disk Queue Length
- จำนวน request ในการอ่านเขียนพื้นที่เก็บข้อมูลใน instance ต่างๆ
- ปริมาณที่สูงเกินไป อาจนำไปสู่สถานการณ์ที่แอพต้องแย่งกันเพื่อใช้พื้นที่หน่วยความจำเหล่านี้ และเกิดการรอกันได้ (อีกชื่อคือ disk contention)
- Http Queue Length
- จำนวน request จาก client ที่รอการประมวลผลของ Web App
- ถ้ามีปริมาณสูงเกิดไป อาจทำไปสู่ Client Request หาย หรือเกิด Timeout (HTTP 408)
- Data In
- จำนวนข้อมูล (นับเป็นหน่วย byte) ที่ส่งเข้ามาที่ instance ทุกตัว (นับรวมทั้งหมด)
- Data Out
- จำนวนข้อมูล (นับเป็นหน่วย byte) นับรวมที่ส่งออกจาก instance ทุกตัว
สามารถตั้ง Metric ให้อิงกับ Azure service อื่นๆ ได้ด้วยนะ
ซึ่ง metric ที่กำหนดขึ้นมานี้ ไม่จำเป็นต้องอิงกับการทำงานของตัว App Service อย่างเดียวนะ เราสามารถตั้งให้อิงกับ service ตัวอื่นๆ ได้
เช่นถ้า Azure App Service มีการทำงานกับ request ที่มาจาก Service Bus Queue เราสามารถตั้งให้ App Service ทำการ scale เมื่อมีจำนวนข้อมูลใน Service Bus Queue พุ่งสูงจนถึงปริมาณที่กำหนดได้
ติดตามเรื่องที่เกี่ยวข้องได้ด้านล่างจ้า