NGHIÊN CỨU THUẬT TOÁN DỰ ĐOÁN ÁP DỤNG CHO VẤN ĐỀ TỰ ĐỘNG CO GIÃN TÀI NGUYÊN TRONG ĐIỆN TOÁN ĐÁM MÂY LUẬN VĂN THẠC SĨ KHOA HỌC Hệ thống thông tin... Tóm tắtVới sự dịch chuyển số, các d
Trang 1NGHIÊN CỨU THUẬT TOÁN DỰ ĐOÁN ÁP DỤNG CHO VẤN
ĐỀ TỰ ĐỘNG CO GIÃN TÀI NGUYÊN TRONG ĐIỆN TOÁN
ĐÁM MÂY
LUẬN VĂN THẠC SĨ KHOA HỌC
Hệ thống thông tin
Trang 2
BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
LUẬN VĂN THẠC SĨ KHOA HỌC
NGƯỜI HƯỚNG DẪN KHOA HỌC:
TS Nguyễn Bình Minh
Hà Nội – Năm 2019
Trang 3Lời cảm ơnTôi xin gửi lời cảm ơn chân thành đến các thầy cô giáo thuộc Trường đại họcBách Khoa Hà Nội, đặc biệt là các thầy cô giáo thuộc Viện công nghệ thôngtin và truyền thông vì đã chia sẻ kiến thức và kinh nghiệm cho tôi trong nhữngnăm đại học và cao học.
Tôi xin gửi lời cảm ơn đặc biệt đến TS Nguyễn Bình Minh, các bạn sinhviên Trương Bình Khang, Nguyễn Minh Phú và các bạn trong Trung tâmCông nghệ dữ liệu và Tính toán trực thuộc trường đại học Bách Khoa Hà Nội.Thầy và các bạn đã cùng nghiên cứu và giúp tôi hoàn thành luận văn này.Cuối cùng, tôi xin gửi lời cảm ơn đến gia đình, nơi luôn là chỗ dựa cho tôi
Trang 4Lời cam đoanTôi - Trần Hữu Cường - cam kết luận văn này là nghiên cứu của tôi dưới sựhướng dẫn của TS Nguyễn Bình Minh.
Các kết quả trong luận văn là trung thực và không sao chép của bất cứ côngtrình đã được công bố nào khác Tất cả các trích dẫn đều được tham chiếu rõràng
Hà Nội, ngày 25 tháng 03 năm 2019
Học viên
Trần Hữu CườngXác nhận của người hướng dẫn
Trang 5Tóm tắt
Với sự dịch chuyển số, các doanh nghiệp đều cần hạ tầng về công nghệ thôngtin, và một trong những vấn đề quan trọng là tối ưu tài nguyên sử dụng Trongnhững năm gần đây, với sự phát triển của công nghệ điện toán đám mây, côngnghệ container, việc tối ưu tài nguyên có thể thực hiện dễ dàng hơn bằng cách
tự động co giãn tài nguyên Xuất phát từ thực tế đó, tác giả chọn đề tài:Nghiên cứu thuật toán dự đoán áp dụng cho vấn đề tự động co giãntài nguyên trong điện toán đám mây
Hiện tại, một số nhà cung cấp dịch vụ điện toán đám mây lớn (AWS, GCP)
đã cung cấp tính năng tự động co giãn tài nguyên bằng cách sử dụng ngưỡng(threshold) Nhưng chưa có tính năng tự động co giãn tài nguyên bằng cách sửdụng các thuật toán dự đoán Đồng thời công nghệ về Container, Kubernetes
là các công nghệ mới, đang là xu hướng công nghệ thời gian gần đây, có nhiềuứng dụng trong thực tế Luận văn muốn giải quyết các vấn đề trên bằng cách
đề xuất thuật toán dự đoán, và áp dụng cho vấn đề co giãn tài nguyên trongđiện toán đám mây
Luận văn giải quyết các vấn đề:
Đề xuất thuật toán dự đoán SA-ANFIS áp dụng cho vấn đề co giãn tàinguyên trong điện toán đám mây
Thử nghiệm hệ thống co giãn trên nền tảng Containers Cluster netes)
Trang 6(Kuber-Nội dung của luận văn được chia ra làm 5 chương cụ thể như sau:Chương 1: Giới thiệu bài toán co giãn tài nguyên trong điện toán đám mây1.1 Vấn đề sử dụng tài nguyên của doanh nghiệp và điện toán đám mây1.2 Phát biểu bài toán
Chương 2: Các nghiên cứu và công nghệ liên quan
2.1 Mạng thích nghi dựa trên hệ suy diễn mờ (ANFIS)
2.2 Thuật toán mô phỏng luyện kim (Simulated Annealing)
2.3 Công nghệ Container và Kubernetes
Trang 7With Digital Transformation, businesses need IT infrastructure, and one of thekey issues is optimizing resource usage In recent years, with the development ofCloud Computing and Container technology, resource optimization can be makeeasier by automatically scaling resources From the fact, the author chooses thetopic: Predictive Algorithms applied to automatic resources elasticity
in Cloud Computing
Currently, the large cloud computing service providers (AWS, GCP) haveprovied automatic reosurce scaling by using thresholds But there is no auto-matic scaling feature using predictive algorithms At the same time, the techn-logy of Container, Kubernetes are new technologies which are the technologytrend, there are many practical applications Thesis wants to solve the prob-lems by proposing a predictive algorithm, and applied to the problem of resourceelasticity in cloud computing
The thesis resolves issues:
Proposing the prediction algorithm SA-ANFIS applied to resource ity in cloud computing
elastic- Testing the scaling system on the Containers Cluster (Kubernetes) form
plat-Contents of the thesis is divided into 5 chapters as follows:
Chapter 1: Introducing resource elasticity problem in cloud computing
Trang 81.1 Problems of using resources of enterprises and cloud computing
1.2 State the problem
Chapter 2: Research and related technology
2.1 Adaptive network based on fuzzy rendition (ANFIS)
2.2 Metallurgical simulation algorithm (Simulated Annealing)
2.3 Technology of Containers and Kubernetes
Trang 92.1 Mạng thích nghi dựa trên hệ suy diễn mờ (ANFIS) 162.2 Thuật toán mô phỏng luyện kim (Simulated Annealing) 182.3 Công nghệ Container và Kubernetes 21
Trang 102.3.1 Công nghệ Container 21
2.3.2 Công nghệ Kubernetes 22
3 Đề xuất mô hình SA-ANFIS vào bài toán co giãn tài nguyên 25 3.1 Kiến trúc hệ thống 25
3.2 Resource Collector 26
3.2.1 Dataset Collector 27
3.2.2 Realtime Collector 27
3.3 Forecaster 28
3.3.1 Giai đoạn học 28
3.3.2 Giai đoạn dự đoán 30
3.4 Scaling Maker 30
4 Thử nghiệm và đánh giá 32 4.1 Thử nghiệm 32
4.1.1 Tập dữ liệu thử nghiệm 32
4.1.2 Các thuật toán tham gia thử nghiệm 33
4.1.3 Độ đo 33
4.1.4 Kịch bản thử nghiệm 33
4.2 Kết quả và đánh giá 34
4.2.1 So sánh tốc độ hội tụ 34
4.2.2 So sánh độ chính xác 34
4.2.3 So sánh với các thuật toán khác 36
4.3 Ứng dụng 37
Trang 11A Chi tiết kết quả 40
Trang 12Danh sách thuật ngữ
Cloud Computing Điện toán đám mây
Workload Khối lượng công việc của phần mềm/servers Container Là một cơ chế để cô lập (isolate) phần mềm Docker Phần mềm để chạy và quản lí container Kubernetes Phần mềm quản lí container cluster
Resources Elasticity Co giãn tài nguyên
ANFIS Mạng thích nghi dựa trên hệ suy diễn mờ
SA (Simulated Annealing) Mô phỏng luyện kim
Trang 13Danh sách hình vẽ
2.1 Kiến trúc ANFIS với 2 tham số đầu vào 172.2 So sánh Container và Máy ảo (Virtual Machine) (Nguồn: docker.com) 212.3 Kiến trúc của Kubernetes (Nguồn redmondmag.com) 222.4 Các chức năng chính của Kubernetes (Nguồn ranncher.com) 233.1 Kiến trúc hệ thống co giãn tài nguyên 254.1 So sánh tốc độ hội của SA-ANFIS và ANFIS gốc 344.2 Biểu đồ kết quả dự đoán khi dùng SA2-ANFIS với rule_number=20 35A.1 Kết quả dự báo của Origin-ANFIS với các bộ tham số khác nhau 40A.2 Kết quả dự báo của SA1-ANFIS với các bộ tham số khác nhau 41A.3 Kết quả dự báo của SA2-ANFIS với các bộ tham số khác nhau 42A.4 Kết quả dự báo của SA3-ANFIS với các bộ tham số khác nhau 43
Trang 14Danh sách bảng
2.1 Các thuật toán học của mô hình ANFIS do Jang đề xuất 18
3.1 Các phiên bản SA-ANFIS 28
4.1 Tập dữ liệu thử nghiệm 32
4.2 Các thuật toán tham gia thử nghiệm 33
4.3 So sánh độ chính xác của SA-ANFIS và ANFIS gốc 35
4.4 So sánh độ chính xác của SA2-ANFIS và ARIMA, LSTM 36
Trang 15Vấn đề đối với các doanh nghiệp tự quản lí hệ thống phần cứng đó là: cầnbao nhiêu servers thì đủ?
Nếu doanh nghiệp dùng nhiều servers: sẽ tốn nhiều chi phí Trong khi thực
tế, workload của hệ thống không cao, dẫn đến việc lãng phí tài nguyên
Nếu doanh nghiệp dùng ít servers: trong thực tế sẽ có những thời điểmworkload cao hơn bình thường (ví dụ 8h sáng đọc báo, khi đấy workloadcủa trang tin điện tử sẽ tăng cao), dẫn đến việc hệ thống bị quá tải, khôngđáng ứng được yêu cầu của người dùng
Vấn đề của các doanh nghiệp tự quản lí hệ thống phần cứng đó là: vừa thừa,vừa thiếu tài nguyên
Trang 16Theo NIST [6], Điện toán đám mây là mô hình trong đó có:
Các nhà cung cấp dịch vụ: quản lí phần cứng và cung cấp tài nguyêncho khách hàng
Khách hàng: có thể dễ dàng mua thêm tài nguyên (CPU, RAM, ổ cứng,băng thông) để sử dụng khi cần thiết, và có thể giảm tài nguyên khi khôngcần dùng nữa
Từ đó, phát sinh bài toán: Tối ưu hoá chi phí bằng cách co giãn tàinguyên trong điện toán đám mây
1.2 Phát biểu bài toán
Bài toán: Tối ưu chi phí bằng cách co giãn tài nguyên trong điện toán đámmây
Đầu vào: Lịch sử sử dụng tài nguyên của hệ thống
Đầu ra: Các tài nguyên sử dụng thực tế của hệ thống
Để giải quyết bài toán trên, có thể chia thành 2 bài toán con:
Bài toán 1: Dự đoán tài nguyên sử dụng của hệ thống từ lịch sử sử dụng.(Forecaster)
Bài toán 2: Ra quyết định tăng/giảm tài nguyên dựa trên kết quả dự báo.(Decision Maker)
Trong luận văn này, tác giả sẽ đề xuất cách giải quyết các bài toán trên
Trang 17 Mạng thích nghi dựa trên cơ sở hệ suy diễn mờ (ANFIS).
Thuật toán mô phỏng luyện kim (Simulated Annealing)
2.1 Mạng thích nghi dựa trên hệ suy diễn mờ (ANFIS)
Hệ thống suy diễn thích nghi neuron mờ (ANFIS) được đề xuất bởi Jang [2],bằng cách kết hợp logic mờ và mạng neuron nhân tạo ANFIS đã được áp dụnghiệu quả trong nhiều lĩnh vực
Trong lĩnh vực tự động hoá, ANFIS được dùng để chuẩn đoán lỗi của động
cơ quay (rotating machinery) trong nghiên cứu của Lei, Yaguo và đồng sự [4]
Họ đã dùng nhiều bộ ANFIS để xử lí các nhóm tín hiệu khác nhau, sau đókết hợp lại bằng GA để đưa ra kết quả dự đoán Qua thử nghiệm cho thấyviệc kết hợp nhiều ANFIS có thể giúp nhận ra nhiều loại lỗi và mức độ nghiêm
Trang 18trọng khác nhau, cho hiệu suất phân loại tốt hơn so với chỉ sử dụng một mạngANFIS.
Trong lĩnh vực tài chính, Boyacioglu, Melek and Avci, Derya [1] đã sử dụngANFIS để dự đoán lợi nhuận của thị trường chứng khoán Istanbul (Thủ đôThổ Nhĩ Kì) với độ chính xác 98.3
Hình (2.1) Kiến trúc ANFIS với 2 tham số đầu vào
Luật mờ có dạng: if x = A1, y = B1 then out = A1∗ B1
Giá trị đầu ra của mỗi nút bằng tích các tín hiệu đầu vào w = µA(x) ∗ µB(y)
Trang 19Thuật toán học được Jang [2] đề xuất gồm các pha như sau:
Pha tiến Pha lùi Tham số giả thiết Cố định Phương pháp giảm Gradient Tham số kết luận LSE Cố định
Bảng (2.1) Các thuật toán học của mô hình ANFIS do Jang đề xuất
2.2 Thuật toán mô phỏng luyện kim (Simulated Annealing)
Thuật toán mô phỏng luyện kim (SA) là một phương pháp tối ưu hoá, có thểtránh được tối ưu hoá cục bộ bằng cách chấp nhận một lời giải tồi hơn vớimột xác suất phụ thuộc nhiệt độ T Phương pháp trên được đề xuất bởi S.Kirkpatrick và đồng sự vào năm 1983 [3]
Ý tưởng của SA xuất phát từ cơ học Cụ thể như trong luyện kim, kim loạiđược đốt nóng đến nhiệt độ cao, sau đó được làm lạnh từ từ để kết tinh ởtrạng thái năng lượng thấp Nếu quá trình làm lạnh xảy ra đột ngột, kim loại
Trang 20sẽ không kết tinh ở trạng thái năng lượng thấp nhất và có cấu trúc không ổnđịnh (tối ưu cục bộ).
Nguyên lí bên trong nằm ở việc thay đổi trạng thái năng lượng Gọi E lànăng lượng của trạng thái s và E0 là năng lượng của trạng thái s0
Gọi: ∆E = E0− E
Nếu ∆E < 0: thì trạng thái s sẽ chuyển thành s0
Nếu ∆E >= 0: thì trạng thái s có thể chuyển thành s0 với một xác suất tỉ
lệ thuận với nhiệt độ T
Điều này có nghĩa là: trong quá trình chạy thuật toán, lời giải có thểchuyển từ lời giải tốt hơn sang lời giải tồi hơn với một xác suất tỉ lệ thuận với
T Việc này sẽ giúp lời giải có khả năng thoát khỏi các tối ưu cục bộ Sau đó,khi T giảm dần, xác suất để chuyển sang lời giải tồi hơn giảm dần, và lời giải
sẽ dần hội tụ đến kết quả nhiều khả năng là tốt nhất
Trang 21Listing 1 Thuật toán SA
Trang 222.3 Công nghệ Container và Kubernetes
Container là một công nghệ giúp đóng gói và chạy phần mềm trong một môitrường cô lập, nhưng dùng chung Kernel và một số bin/thư viện thích hợp.Điều này giúp container triển khai nhanh hơn, ít tốn kém hơn (overhead), dichuyển (migration) dễ dàng và khởi động lại nhanh hơn
Docker là một phần mềm giúp tạo, chạy và quản lí container Docker đónggói phần mềm trong một hệ thống tập tin (file system) hoàn chỉnh, có chứamọi thứ cần thiết để chạy, bao gồm:
Mã (Code)
Runtime
Các công cụ hệ thống (System Tools)
Các thư viện hệ thống (System Libraries)
Hình (2.2) So sánh Container và Máy ảo (Virtual Machine) (Nguồn: docker.com)
Bằng cách sử dụng container, chúng ta có thể dễ dàng triển khai phần mềm,
dễ dàng tăng/giảm số lượng cài đặt (instances) của phần mềm để đáp ứng nhucầu
Trang 232.3.2 Công nghệ Kubernetes
Kubernetes là một phần mềm quản lí container cluster, giúp cấp phát/quản
lí tài nguyên, triển khai/điều phối containers trên nhiều servers khác nhau.Các thành phần của Kubernetes
Master Node: Là node chạy các chương trình liên quan đến việc quản líKubernetes cluster, bao gồm API Server, Controller Manager, Scheduler
Worker Node: Là node chạy các chương trình dùng để giao tiếp và thựchiện các yêu cầu từ Master Node, bao gồm kubelet, kube-proxy
Hình (2.3) Kiến trúc của Kubernetes (Nguồn redmondmag.com)
Các chức năng chính của Kubernetes:
Quản lí tài nguyên (Resource Management): Quản lí các tài nguyên vềCPU, RAM của cluster
Lập lịch (Scheduling): Triển khai các container trên các servers thích hợp,dựa trên các thông tin về mức độ sử dụng tài nguyên của container và tàinguyên còn trống của servers
Trang 24 Cân bằng tải (Load Balancing): Thực hiện routing các requests đến cácapps thích hợp Chúng ta có thể tăng số lượng instances của một app lênkhi có nhiều requests.
Hình (2.4) Các chức năng chính của Kubernetes (Nguồn ranncher.com)
Trang 25Cơ chế quản lí tài nguyên của Kubernetes:
CPU Request ⇔ CPU Shares của Docker: Dùng cho việc lập lịch củaKubernetes
Áp dụng vào việc cấp phát tài nguyên:
CPU Request: luôn set giá trị phù hợp, để bộ lập lịch hoạt động phù hợp
CPU Limit: Có thể set hoặc không Nếu phần mềm dùng nhiều CPU thì
có thể đặt một giới hạn cứng Còn lại thì có thể bỏ qua giá trị này, để chocác containers tự share CPU cho nhau
Kubernetes cung cấp API có thể dễ dàng lập trình, giao tiếp Chúng ta cóthể sử dụng Kubernetes API để tăng/giảm số lượng cài đặt (instances) của mộtphần mềm
Trang 27Hệ thống co giãn tài nguyên trên điện toán đám mây gồm 3 thành phầnchính.
Resource Collector (Collector): Đóng vai trò thu thập thông tin vềviệc sử dụng tài nguyên của hệ thống Dữ liệu thu thập được sẽ đượcchuyển đến cho Forecaster
Forecaster (Model): Đóng vai trò xây dựng mô hình dự báo, và thựchiện dự báo việc sử dụng tài nguyên dựa trên dữ liệu từ Resource Collector
Scaling Maker (Decision Maker): Từ kết quả dự báo tài nguyên sửdụng, module này sẽ xác định số lượng tài nguyên thực tế cần thiết, vàthực hiện giao tiếp với hệ thống điện toán đám mấy để yêu cầu tài nguyênthích hợp
Realtime Collector: Thu thập dữ liệu thời gian thực, đóng vai trò là đầuvào của model dự đoán
Dữ liệu thu thập được từ Resource Monitoring được chuyển thành dạng timeseries:
Trang 28 c(t): là tài nguyên sử dụng ở thời điểm t.
N τ: số lần thu thập dữ liệu c(t) trong khoảng thời gian τ
Việc tính trung bình dữ liệu trong khoảng thời gian τ có tác dụng:
Giảm số lượng điểm dữ liệu cần phải xử lí
ws: kích thước cửa sổ trượt (window size)
k: thời gian dự đoán trễ
Dữ liệu sau đó sẽ được lưu vào dataset dùng cho việc huấn luyện chươngtrình dự đoán
Module Realtime Collector được thiết kế để xử lí dữ liệu thời gian thực Modulenày sẽ thực hiện tiền xử lí (tính trung bình dữ liệu theo khoảng thời gian τ).Kết quả thu được sẽ chuyển đến module Forecaster để tiến hành dự đoán
Trang 293.3 Forecaster
Như đã để cập ở chương 2, thuật toán ANFIS do Jang đề xuất sử dụng phươngpháp giảm gradient để học và có nhiều khả năng rơi vào tối ưu cục bộ, trongkhi phương pháp tối ưu SA có thể tránh được việc này
Chúng tôi đề xuất một thuật toán mới kết hợp ANFIS và phương pháp tối
ưu SA, và đặt tên là thuật toán lai SA-ANFIS Cụ thể, thuật toán ANFIS
có 2 bộ tham số cần tối ưu là tham số giả thiết (premise) và tham số kết luận(consequence) Thuật toán SA-ANFIS được thực hiện như sau:
Với mỗi vòng lặp:
1 Tối ưu premise, consequence như thuật toán ANFIS gốc
2 Sử dụng SA để tối ưu một trong hai bộ tham số này
Từ cách trên, chúng tôi có một số phiên bản của SA-ANFIS như sau:
Tên Pha Tham số giả thiết Tham số kết luận