การประมาณการทรัพยากรเพื่อเพิ่มประสิทธิภาพและความเหมาะสมในการประมวลผลสำหรับระบบการจัดการล็อก


Share this article

ในปัจจุบันระบบประมวลผลที่ใช้ในการทำงานประเภทต่าง ๆ มีอยู่มากมาย โดยโปรแกรมที่กำลังทำงานอยู่ในแต่ละระบบจำเป็นต้องใช้ทรัพยากรของระบบเพื่อให้งานสำเร็จ ซึ่งทรัพยากรของระบบที่ได้กล่าวถึงนี้ ได้แก่ ขนาดของซีพียู (CPU) หรือพลังงานที่ใช้ในการประมวลผล พื้นที่จัดเก็บ รวมถึงแรมหรือหน่วยความจำที่สามารถเข้าถึงข้อมูลได้ทันที เมื่อเรามีทรัพยากรที่ใช้ในการประมวลผลที่ดีจะทำให้การทำงานของระบบง่ายขึ้น เวลาที่ใช้ในการทำงานก็จะรวดเร็วขึ้น แต่ในอีกแง่หนึ่งการที่เราเลือกทรัพยากรที่ดีเกินความจำเป็นก็จะทำให้เราเสียค่าใช้จ่ายมากเกินความจำเป็น ทำให้การประมาณการทรัพยากรเป็นอีกหลักการหนึ่งที่ถูกนำมาใช้ โดยจุดประสงค์ของการประมาณการทรัพยากรคือเพื่อหาทรัพยากรที่เหมาะสมกับระบบของเราโดยที่ไม่น้อยหรือมากเกินความจำเป็น อีกจุดประสงค์หนึ่งคือประมาณการใช้งานซีพียูยังสามารถลดการใช้พลังงาน ลดค่าใช้จ่ายด้านพลังงานและลดการละเมิดข้อตกลงระดับบริการ (SLA) ด้วยเช่นกัน

การประมาณการทรัพยากรในบทความนี้จะเกี่ยวข้องกับข้อมูลการบันทึกเหตุการณ์ต่าง ๆ ในระบบคอมพิวเตอร์ หรือล็อกของระบบ (Logging System) ซึ่งเป็นแหล่งรวมข้อมูลการทำงานของระบบทั้งหมด ซึ่งเมื่อมีเครื่องคอมพิวเตอร์ที่ใช้ในการทำงานมากขึ้นหรืออาจเรียกว่ามีหลายโหนด (Node) ของการทำงานมากขึ้น วิธีในการเข้าถึงแต่ละรายการและจัดการเนื้อหาอาจซับซ้อน ยิ่งกว่านั้นเมื่อเราต้องค้นหาข้อผิดพลาดที่เฉพาะเจาะจงสำหรับล็อกของระบบกว่าหลายพันไฟล์บนโฮสต์ (Host) หลาย ๆ แห่งเป็นสิ่งที่ท้าทาย วิธีทั่วไปในการแก้ปัญหานี้คือการใช้การบันทึกแบบส่วนกลาง (Centralized logging) โดยรูปที่ 1 ได้แสดงตัวอย่างของระบบการบันทึกแบบส่วนกลางไว้พอสังเขป การบันทึกจากส่วนกลางสามารถรวมการบันทึกหลายพันรายการในตำแหน่งส่วนกลาง หลังจากรวบรวมแล้วจะง่ายต่อการรวบรวมจัดเก็บและวิเคราะห์ข้อมูลทั้งหมด จากที่กล่าวมานี้ทำให้เครื่องที่ต้องรองรับกระบวนการต่าง ๆ ในการรวบรวมล็อคไว้ที่เดียวทำงานอย่างหนักหรืออาจจะทำให้เครื่องทำงานไม่ไหว

รูปที่ 1 ตัวอย่างของสถาปัตยกรรมการบันทึกจากส่วนกลาง [2]

วิธีที่ถูกใช้ในการประมาณการทรัพยากรมีอยู่หลายวิธี ยกตัวอย่างเช่น การวิเคราะห์การถดถอย (Regression Based Analysis) โดยเป็นการศึกษาความสัมพันธ์ระหว่างตัวแปรอิสระ (Independent Variable) กับตัวแปรตาม (Dependent Variable)  โดยในที่นี้ตัวแปรอิสระอาจจะเป็นข้อมูลการใช้งานคอมพิวเตอร์ เช่น ข้อมูลพื้นที่จัดเก็บที่มีอยู่ ข้อมูลจัดเก็บที่ถูกใช้ไป ข้อมูลซีพียูที่มีอยู่ ข้อมูลซีพียูที่ถูกใช้ไป จำนวนโหนดหรือคอมพิวเตอร์ที่มีการใช้งานทั้งหมด เป็นต้น ในส่วนของตัวแปรตามที่จะวิเคราะห์ออกมา เช่น จำนวนซีพียู (CPU) จำนวนพื้นที่จัดเก็บ (memory) และจำนวนแรม (RAM) ที่เหมาะกับระบบของเรา ถ้าตัวแปรอิสระมีมากกว่าหนึ่งตัวและตัวแปรตามหนึ่งตัว เรียกว่า การวิเคราะห์การถดถอยเชิงเส้นพหุคูณ (Multiple Linear Regression) โดยการถดถอยเชิงเส้นพหุคูณจะเขียนความสัมพันธ์ในรูปแบบของสมการได้ดังสมการ  Y = b + b1x1 + b2x2 + … + bkxk ซึ่ง xi คือค่าของตัวแปรอิสระแต่ละตัว Y คือ ค่าของตัวแปรตามหรือค่าประมาณนั้นเอง k คือจำนวนตัวแปรอิสระในสมการถดถอยและ bi จะแสดงอัตราการเปลี่ยนแปลงของค่า xi ต่อค่า Y นั้นเอง [4]

อีกวิธีหนึ่งที่ถูกนำมาใช้ในการหาทรัพยากร เช่น ซีพียู หน่วยความจำ ดิสก์และการใช้งานเครือข่ายคือการใช้หลักการพีชคณิตเชิงเส้น (Linear Algebra) [1] กับข้อมูลการใช้งานล็อกหลาย ๆ รูปแบบ นอกจากนั้นยังมีการนำแบบจำลองการเรียนรู้ของเครื่อง (Machine Learning) มาใช้ในการประมาณค่าของทรัพยากรอีกหลายโมเดล ได้แก่ Support Vector Regression ซึ่งวิธีนี้จะอาศัยหลักการพื้นฐานเดียวกับ Support Vector Machine แต่นำมาประยุกต์ใช้กับปัญหาประเภทการถดถอย (Regression) แทน โดยหลักการปกติของการถดถอยจะขึ้นกับการขีดเส้น 1 เส้น แต่ในที่นี้จะวาดแถบให้ครอบคลุมจำนวนจุดให้มากที่สุดและคำนวณค่าความผิดพลาด (error) จากจุดที่ไม่อยู่ในแถบ เป้าหมายของวิธีนี้คือจะพยายามหาแถบที่ผ่านจุดให้มากที่สุดในขณะที่มีค่าความผิดพลาดน้อยที่สุด ตัวอย่างการวาดแถบจะเป็นดังรูปที่  2

รูปที่ 2 ตัวอย่างการวาดแถบให้ครอบคลุมจำนวนจุดให้มากที่สุด โดยความกว้างของแถบจะเป็น (2 x ε) [5]
อีกตัวอย่างหนึ่งของแบบจำลองการเรียนรู้ของเครื่องคือ แบบจำลองการถดถอยป่าแบบสุ่ม (Random Forest Regression) โดยวิธีนี้จะคล้ายกับ แบบจำลองการจำแนกป่าแบบสุ่ม (Random Forest Classification) แต่สิ่งที่แตกต่างคือ หลังจากที่สร้างแบบจำลองต้นไม้ตัดสินใจ (Decision Tree) หลาย ๆ ต้นเราจะได้รับชุดข้อมูลที่ถูกแบ่งออกมาโดยในการทำนายผลแบบจำลองการจำแนกป่าแบบสุ่มจะทำนายด้วยการโหวตคำตอบที่ซ้ำกันมากที่สุด แต่ในกรณีของแบบจำลองการถดถอยป่าแบบสุ่มจะทำนายโดยหาค่าเฉลี่ยของคำตอบที่ออกมาจากต้นไม้แต่ละต้นแทน [6] ซึ่งตัวอย่างการสร้างและคำนวณแบบจำลองการถดถอยป่าแบบสุ่มจะเป็นดังรูปที่ 3

รูปที่ 3 ตัวอย่างการสร้างแบบจำลองการถดถอยป่าแบบสุ่ม [7]
ในปัจจุบันแบบจำลองเครือข่ายประสาท (Neural Network) ก็ถือเป็นวิธีที่นิยมในการแก้ปัญหาประเภทนี้เช่นกัน จากงานวิจัยของ Kundjanasith และคณะในปี 2019 [3] ได้มีการใช้โครงข่ายประสาทเทียมแบบหน่วยความจำระยะสั้น (Long Short-Term Memory) เพื่อเรียนรู้แนวโน้มการใช้งานทรัพยากรประมวลผล แบบจำลองนี้มีเซลล์หน่วยความจำ (Memory Cell) เป็นพารามิเตอร์ที่สำคัญที่ใช้กำหนดจำนวนข้อมูลก่อนหน้าที่จะเก็บไว้ในแบบจำลอง ในงานวิจัยนี้ได้นำข้อมูลทรัพยากรซีพียูที่ต้องการ ทรัพยากรหน่วยความจำที่ต้องการ ทรัพยากรซีพียูที่ถูกใช้ ทรัพยากรหน่วยความจำที่ถูกใช้มาเป็นข้อมูลอินพุต หลักจากนั้นก็จะผ่านชั้นของการคำนวณมากมายดังรูปที่ 4 และให้ผลในชั้นสุดท้ายออกมาเป็นทรัพยากรซีพียูและหน่วยความจำที่เหมาะสม

รูปที่ 4 ตัวอย่างโครงข่ายประสาทเทียมแบบหน่วยความจำระยะสั้น [3]
จากรายละเอียดที่กล่าวมาข้างต้น การจัดการทรัพยากรประมวลผลเป็นปัญหาที่ค่อนข้างแพร่หลาย วิธีที่นำมาใช้แก้ปัญหามีอยู่หลายวิธี ยกตัวอย่างเช่น การวิเคราะห์การถดถอยเชิงเส้นพหุคูณ (Multiple Linear Regression) การใช้หลักการพีชคณิตเชิงเส้น (Linear Algebra) แบบจำลองการถดถอยป่าแบบสุ่ม (Random Forest Regression) รวมถึงวิธีสมัยใหม่อย่างโครงข่ายประสาทเทียมแบบหน่วยความจำระยะสั้น (Long Short-Term Memory) เป็นต้น แต่ทั้งนี้ก็ขึ้นอยู่กับข้อมูลที่จะนำมาใช้ในการวิเคราะห์ด้วยเช่นกันว่าข้อมูลจะอยู่ในรูปแบบไหนและเราควรจะจัดการกับข้อมูลเหล่านั้นก่อนนำมาใช้จริงได้อย่างไร หรือถ้ามีตัวแปรหลายตัวที่จะนำมาใช้เป็นข้อมูลอินพุตอาจจะเป็นเรื่องที่ดีถ้าเรานำวิธีการคัดเลือกตัวแปร (Feature Selection) มาใช้เพื่อให้เราสามารถเลือกและใช้ตัวแปรที่เหมาะสมกับแบบจำลองของเรามากที่สุด

References
[1] Nalin Vora, M., 2014, “Predicting Utilization of Server Resources from Log Data”, International Journal of Computer Theory and Engineering, Vol. 6, No. 2, April 2014.

[2] Wilder, J., Centralized Logging [Online] Available: http://jasonwilder.com/blog/2012/01/03/centralized-logging/ [2012, January 3].

[3] Thonglek, K., Ichikawa, K., Takahashi, K., Iida H., Nakasan, C., 2019, “Improving Resource Utilization in Data Centers using an LSTM-based Prediction Model,” 2019 IEEE International Conference on Cluster Computing (CLUSTER), Albuquerque, NM, USA, 2019, pp. 1-8.

[4] ดร.สุทิน ชนะบุญ. “สถิติและการวิเคราะห์ข้อมูลในงานวิจัยเบื้องต้น.” [ระบบออนไลน์]. http://www.kkpho.go.th/i/index.php/component/attachments/download/1933 (29 มีนาคม 2563).

[5] Teerakanok, S., [ML-03] Support Vector Regression (SVR) [Online] Available: https://medium.com/@s_teerakanok/ml-03-support-vector-regression-svr-10f2713f7c0d [2019, December 9].

[6] Witchapong Daroontham. “เจาะลึก Random Forest — Part 2 of รู้จัก Decision Tree, Random Forest, และ​ XGBoost.” [ระบบออนไลน์]. https://medium.com/@witchapongdaroontham/%E0%B9%80%E0%B8%88%E0%B8%B2%E0%B8%B0%E0%B8%A5%E0%B8%B6%E0%B8%81-random-forest-part-2-of-%E0%B8%A3%E0%B8%B9%E0%B9%89%E0%B8%88%E0%B8%B1%E0%B8%81-decision-tree-random-forest-%E0%B9%81%E0%B8%A5%E0%B8%B0-xgboost-79b9f41a1c1c (29 มีนาคม 2563).

[7] Chakure, A., Random Forest Regression [Online] Available: https://towardsdatascience.com/random-forest-and-its-implementation-71824ced454f [2019, June 29].

READ  ภาพถ่ายแรกของ “Supermassive Black Hole” และบทบาทสำคัญของ AI ในการเติมเต็มข้อมูลที่หายไป

ลงทะเบียนรับข่าวสาร

ไม่พลาดทุกการอัพเดทจาก Big Data Experience Center

Big Data Experience Center (BX)

ชั้น 14 อาคาร Knowledge Exchange Center (KX)
110/1 ถนนกรุงธนบุรี, แขวงบางลำภูล่าง เขตคลองสาน กรุงเทพฯ 10600
อีเมล์: [email protected]
Tel: 097-941-9889

ABOUT

SERVICES