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


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  The Approach to Estimating Server Configuration for Data Warehouse (วิธีการโดยสังเขปในการประเมินสเปค Server สำหรับ Data Warehouse)

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

ไม่พลาดทุกการอัพเดทจาก 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