Điều chỉnh tài nguyên tự động dựa vào tham số chất lượng dịch vụ trong Cloud Computing
Tóm tắt: Việc cung cấp tính năng điều chỉnh tài
nguyên tự động (auto scaling) trên hạ tầng IaaS của nhà
cung cấp dịch vụ điện toán đám mây đã giúp thuê bao tránh
được tình trạng suy thoái dịch vụ và tiết kiệm chi phí. Cùng
với đó là sự xuất hiện các thuật toán auto scaling để tự động
hóa việc cung ứng cũng như thu hồi tài nguyên một cách
kịp thời. Phương pháp auto scaling dựa vào luật đối sánh
giá trị tham số hiện hành với ngưỡng được sử dụng phổ
biến trong môi trường công nghiệp. Tính hiệu quả của auto
scaling dạng này tùy thuộc vào cách chọn tham số. Trong
bài báo này đề xuất sử dụng tham số chất lượng dịch vụ
thay cho cách dùng tham số mức độ sử dụng CPU đang
dùng phổ biến hiện nay. Bài báo cũng đưa ra mô hình đánh
giá tính hiệu quả của auto scaling dạng này và dựa vào đó
để kiểm tra tính hiệu quả của phương pháp. Mô hình đã
được cài đặt và đã xác định được tính hiệu quả theo cách
chọn các tham số dịch vụ.

Trang 1

Trang 2

Trang 3

Trang 4

Trang 5

Trang 6
Tóm tắt nội dung tài liệu: Điều chỉnh tài nguyên tự động dựa vào tham số chất lượng dịch vụ trong Cloud Computing
ủa tải theo mùa để đưa ra các quyết định auto
scaling trước thời hạn. Giải pháp đã khai thác các thuộc
tính của công nghệ ảo hóa nhằm chi phối chất lượng dịch
vụ và tiết kiệm chi phí. Tuy nhiên hiệu quả của giải pháp
phụ thuộc nhiều vào tập dữ liệu ban đầu và các chi tiết
Nguyễn Hồng Sơn
SỐ 02 (CS.01) 2020 TẠP CHÍ KHOA HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG 81
trong kỹ thuật xử lý trong mô hình học giám sát này.
III. MÔ HÌNH ĐÁNH GIÁ
Để đánh giá hiệu quả sử dụng lượng tài nguyên thuê bao
gồm cả tài nguyên máy ảo được bổ sung tự động thông qua
dịch vụ auto scaling, trong bài báo này định nghĩa một đại
lượng được gọi là máy ảo thời gian VMxTime. Nếu thời
gian được tính theo giờ thì gọi là máy ảo giờ (VMxHour),
1 VMxHour có nghĩa là 1 máy ảo được mở trong thời gian
1 giờ. Chi phí tiêu thụ tài nguyên thuê được qui về VM
hour bằng cách lấy tích số giữa số máy ảo và thời gian mở
tương ứng tính theo giờ. Gọi VM Usage là lượng tiêu thụ
máy ảo theo đại lượng VMxTime trong thời gian T, tham
số này được tính theo công thức (1) như sau:
VM Usage = ∫ NumOfVMs(t)dt
T
0
(1)
NumOfVMs(t) là số máy ảo (VM) được mở tại thời
điểm t và được tính bởi công thức (2) như sau:
NumOfVMs(t)=currentNumofVMs(t)
+ numOfVMsScale(t) (2)
Dễ dàng nhận thấy nếu VM Usage càng lớn thì tài
nguyên của nhà cung cấp dịch vụ bị chiếm dụng càng lớn
và chi phí phải trả của người dùng sẽ lớn.
Các thuê bao được bổ sung và thu hồi mỗi một lần là N
máy ảo một cách tự động, ta có:
numOfVMScale(t)=N x scaleEvent(t) (3)
trong đó numOfVMScale(t) là số máy ảo được bổ sung
hay thu hồi vào thời điểm t, scaleEvent(t) lấy giá trị 1, 0
hay -1 tùy vào hàm quyết định, được gọi là D(). Trong
trường hợp thuật toán auto scaling được thực hiện theo
kiểu giám sát tích cực các đại lượng trạng thái thì
autoscaler sẽ theo dõi các tài nguyên còn lại tại thời điểm
lấy mẫu, ký hiệu là remainResource(t) và hàm xác định tài
nguyên còn lại sẽ được đưa vào như là tham số của hàm
quyết định D() cùng với một giá trị ngưỡng được xác lập
trước. Như vậy sự kiện điều chỉnh tự động lấy giá trị từ
hàm quyết định D() như công thức (4):
scaleEvent(t)=D(controlValue(t),Threshold) (4)
controlValue(t)= F(QoS pamameter(t)) (5)
Với F() là phương pháp tính toán tham số chất lượng
dịch vụ. Trong bài báo này sẽ cụ thể bằng tham số tỉ lệ các
yêu cầu lần đầu đệ trình vào máy ảo bị từ chối và phải đợi,
được giải thích chi tiết trong phần IV.
IV. THUẬT TOÁN AUTO SCALING SỬ DỤNG
THAM SỐ CHẤT LƯỢNG DỊCH VỤ
Tham số chất lượng dịch vụ thứ nhất được chọn là thời
gian hoàn thành một yêu cầu trên hệ thống. Đây là tham số
phản ánh tốc độ đáp ứng dịch vụ của hệ thống, xét một
cách định tính thì thời gian này sẽ càng nhỏ khi năng lực
tài nguyên của hệ thống càng lớn. Tuy nhiên tham số này
không dùng để điều khiển trực tiếp hoạt động auto scaling
nhưng sẽ dùng để kiểm tra hiệu quả của thuật toán auto
scaling. Tham số thứ hai được chọn làm tham số điều khiển
trực tiếp liên quan đến hiện tượng thực tế là khi các yêu
cầu gửi đến vào những thời điểm mà năng lực của hệ thống
không đáp ứng được sẽ phải vào trạng thái đợi.Tỉ lệ các
yêu cầu không được đáp ứng lần đầu là tham số lựa chọn
thứ hai. Tham số này được chọn dựa trên phát hiện có
những yêu cầu không được đáp ứng ở lần đệ trình đầu tiên
trên các hệ thống auto scaling dựa vào mức sử dụng CPU,
khi mà mức độ sử dụng này vẫn còn dưới ngưỡng.Thông
thường các yêu cầu không được đáp ứng không bị hủy luôn
mà được đưa vào hàng đợi của hệ thống để tiếp tục được
đệ trình nếu khoảng thời gian timeout vẫn còn. Hệ thống
dịch vụ không đáp ứng một yêu cầu nào đó không chỉ vì
năng lực CPU bị thiếu, mà còn bởi nhiều tài nguyên khác
bị thiếu như bộ nhớ thực thi, bộ nhớ lưu trữ, băng thông
của các cổng xuất nhập (I/O) và ngay cả nguyên nhân
không từ tài nguyên vật lý mà đến từ tắc nghẽn do lỗi logic
của phần mềm ứng dụng. Lợi ích của việc chọn tham số
này là bao hàm được nhiều yếu tố, phản ảnh đầy đủ hơn
về tình trạng của hệ thống dịch vụ so với trường hợp dùng
tham số mức độ sử dụng CPU. Thuật toán auto scaling thay
vì sử dụng ngưỡng tỉ lệ sử dụng CPU trong máy ảo sẽ dùng
ngưỡng tỉ lệ yêu cầu không được phục vụ ở lần đầu đệ
trình vào máy ảo và phải đợi, ở đây gọi vắn tắt là tỉ lệ đợi
Waiting rate. Tham số Waiting rate được tính như sau:
Waiting rate =
Nw
NT
× 100% (6)
Nw là số yêu cầu đệ trình lần đầu bị từ chối phải đợi
trong khoảng thời gian lấy mẫu.
NT là tổng số yêu cầu đệ trình vào máy ảo trong khoảng
thời gian lấy mẫu.
Thuật toán auto scaling:
______________________________________
1.//Gán ngưỡng a% cho Vth (threshold value);
Vth = a%;
2. //Gán giá trị b giây cho T1 là thời gian nhàn rỗi của
máy ảo trước khi máy ảo bị hủy
T1= b;
3.//Gán giá trị c giây cho T2 là khoảng thời gian lấy mẫu
để thống kê và tính toán giá trị tham số điều khiển
T2 = c;
4.//Thực hiện đồng thời trên các máy ảo được đăng ký
auto scaling
Parallel:
//Với mỗi máy ảo được thuê VM thu thập và tính tỉ lệ
waiting rate trong khoảng thời gian T2
timeout =T2;
Timerstart(timeout);
if (timeoutevent) then {
Nw=count(waitingList);
NT=count(submitRequestList);
wRate=Nw/NT*100%;
ĐIỀU CHỈNH TÀI NGUYÊN TỰ ĐỘNG DỰA VÀO THAM SỐ CHẤT LƯỢNG DỊCH VỤ TRONG CLOUD COMPUTING
SỐ 02 (CS.01) 2020 TẠP CHÍ KHOA HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG 82
if (waiting rate > Vth) {
//tạo máy ảo bổ sung vm
vm=createVM();
//đăng ký máy ảo với Loadbalancer
LBRegister(vm);
}
}
5.//Thực hiện song song trên tất cả các máy ảo
Parallel:
//với mỗi máy ảo vm được mở, giám sát thời gian nhàn
rỗi
idletime=count(finishedtime);
if (idletime>T1) {
//xóa máy ảo VM khỏi danh sách của
Loadbalancer;
LBDelete(vm);
//tắt máy ảo VM;
VMDestroy(vm);
}
_________________________________________
V. MÔ PHỎNG GIẢI PHÁP AUTO SCALING DỰA
VÀO TỈ LỆ ĐỆ TRÌNH KHÔNG THÀNH CÔNG
Giải pháp auto scaling dựa vào tỉ lệ đệ trình yêu cầu vào
máy ảo lần đầu không thành công như đã đề xuất ở trên
được kiểm chứng qua mô phỏng máy tính. Chương trình
mô phỏng được xây dựng bằng ngôn ngữ Java sử dụng thư
viện Cloudsim [6] chạy trên máy tính Intel Core 2 Dual
CPU 2GHz, bộ nhớ RAM 4GB. Mô phỏng sử dụng hệ
thống điện toán đám mây có cấu hình như sau:
Data center có 50 host, mỗi host có 32 core, RAM
16GB, Storage 1TB, banwidth 10Gbps. Các host sử dụng
time-shared scheduling cho máy ảo. Các máy ảo có cấu
hình 1core, 1000 MIPS, 4GB RAM, 60GB Storage và
1Gbps banwidth. Các máy ảo sử dụng time-shared
scheduling cho các cloudlet (yêu cầu phục vụ).
Giả sử khách hành sử dụng gói thuê bao gồm 2 máy ảo
VM (virtual machine) và đăng ký sử dụng dịch vụ auto
scaling. Sử dụng bộ cân bằng tải phổ biến là AMLB
(Active Monitroing Load Balancer). Công việc mô phỏng
sẽ dựa vào mô hình đánh giá được trình bày ở phần III, so
sánh tính hiệu quả giữa giải pháp auto scaling theo waiting
rate được đề xuất ở trên với auto scaling theo CPU usage
đang được dùng phổ biến trên các hệ thống điện toán đám
mây hiện nay.
Trước tiên, hệ thống điện toán đám mây được chạy với
thuật toán auto scaling dùng tham số CPU usage. Các
ngưỡng được thay thế lần lượt là 80%, 85%, 90% và 95%.
Ứng với mỗi giá trị ngưỡng chi phí máy ảo trung bình hoàn
thành một yêu cầu và chi phí thời gian trung bình hoàn
thành một yêu cầu được thống kê và tính toán. Kết quả mô
phỏng cho trường hợp này được trình bày tương ứng trên
hình 1 và hình 2.
Hình 1. Chi phí máy ảo trung bình hoàn thành một yêu cầu tính
theo VM.s tương ứng với các mức ngưỡng dùng CPU.
Trên hình 1 cho thấy khi sử dụng mức ngưỡng thấp 80%,
chi phí máy ảo cao hơn 5,5 VM.s/yêu cầu, mức chi phí này
giảm dần khi ngưỡng tăng lên. Khi ngưỡng được đặt ở 95%
thì chi phí máy ảo vào khoảng 3,5 VM.s. Tuy nhiên, trong
khi chi phí máy ảo cao ứng với ngưỡng thấp thì trên hình
2 cho thấy chi phí thời gian trung bình/yêu cầu lại nhỏ hơn,
khoảng 31s/yêu cầu ở ngưỡng 80% so với 37s/yêu cầu ở
ngưỡng 90% và cao hơn 40s khi ngưỡng ở 95%.
Hình 2. Chi phí thời gian trung bình hoàn thành một yêu cầu
tương ứng với các mức ngưỡng dùng CPU.
Tiếp theo hệ thống điện toán đám mây được chạy với
thuật toán auto scaling dùng tham số tỉ lệ yêu cầu không
được tiếp nhận lần đầu và phải đợi waiting rate. Kịch bản
lưu lượng ngõ vào hệ thống điện toán đám mây lần này
hoàn toàn giống như lần chạy trong trường hợp dùng
ngưỡng CPU uasge ở trên. Các ngưỡng tỉ lệ này được thay
đổi lần lượt theo các tỉ lệ 20%, 30%, 40% và 50%. Ứng
với mỗi trường hợp ngưỡng khác nhau chi phí máy ảo
trung bình hoàn thành một yêu cầu và chi phí thời gian
trung bình hoàn thành một yêu cầu được thống kê và tính
toán. Kết quả chạy mô phỏng của trường hợp này được
trình bày trên hình 3 và hình 4. Hình 3 là mô tả chi phí máy
ảo trung bình VM.s/yêu cầu theo các ngưỡng tỉ lệ waiting
rate và hình 4 là chi phí thời gian trung bình/yêu cầu theo
các ngưỡng tỉ lệ waiting rate.
0
1
2
3
4
5
6
80 85 90 95
Chi phí máy
ảo trung bình
theo ngưỡng
CPU Usage
0
10
20
30
40
50
80 85 90 95
Chi phí thời
gian trung
bình theo
ngưỡng CPU
usage
Nguyễn Hồng Sơn
SỐ 02 (CS.01) 2020 TẠP CHÍ KHOA HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG 83
Hình 3. Chi phí máy ảo trung bình hoàn thành một yêu cầu tính
theo VM.s tương ứng với các mức ngưỡng dùng waiting
rate.
Hình 3 cho thấy với ngưỡng tỉ lệ thấp 20% làm chi phí
máy ảo ở mức cao 3.75 VM.s và chi phí giảm dần khi
ngưỡng tỉ lệ tăng lên, mỗi yêu cầu tiêu tốn trung bình là
3.45 VM.s khi ngưỡng tỉ lệ được đặt ở 50%. Tuy nhiên,
trên hình 4 thì chi phí thời gian trung bình/yêu cầu tăng lên
khi ngưỡng tỉ lệ tăng, ở mức 34 s ứng với ngưỡng tỉ lệ 20%
và 40s khi ngưỡng tỉ lệ là 50%.
Hình 4. Chi phí thời gian trung bình hoàn thành một yêu cầu
tương ứng với các mức ngưỡng dùng waiting rate.
Sau cùng, hình 5 là nhằm so sánh giữa auto scaling dựa
vào CPU usage và auto scaling dựa vào waiting rate được
đề xuất. Trục tung biểu thị chi phí máy ảo trung bình/yêu
cầu và trục hoành là chi phí thời gian trung bình/yêu cầu.
Theo đó, với chi phí thời gian trung bình ở mức thấp thì
trường hợp dùng waiting rate có chi phí máy ảo thấp hơn
nhiều, khoảng 3.7 VM.s so với 5.6 VM.s của trường hợp
dùng CPU usage. Chỉ khi chi phí thời gian trung bình/yêu
cầu lớn hơn 38.6s thì mức chi phí máy ảo của cả hai
phương pháp mới xấp xỉ nhau ,vào khoảng 3.5 VM.s. Điều
này chứng tỏ giải pháp auto scaling dùng waiting rate có
thể giảm đồng thời cả hai chí phí so với auto scaling dùng
CPU usage truyền thống.
Hình 5. Quan hệ giữa chi phí máy ảo trung bình (MATB) và chi
phí thời gian trung bình (TGTB) trên một yêu cầu của giải
pháp dùng CPU usage và Waiting rate.
VI. KẾT LUẬN
Phương pháp auto scaling sử dụng tỉ lệ giữa yêu cầu
không được đáp ứng lần đầu và tồng số yêu cầu được đệ
trình đã được trình bày. Phương pháp này được xem như
một trong số các phương pháp theo xu hướng custom-
metric auto scaling. Với cách dùng tỉ lệ này đã bao hàm tất
cả các yếu tố phản ảnh năng lực của máy ảo và của hệ
thống thuê bao trên điện toán đám mây vào thời điểm xem
xét, nhờ đó phản hồi tình trạng máy ảo thực tế hơn, giúp
đưa ra quyết định chính xác cho auto scaling. Kết quả mô
phỏng dựa vào mô hình đánh giá cho thấy phương pháp
auto scaling được đề xuất đã giảm đồng thời cả chi phí máy
ảo và chi phí thời gian so với auto scaling dựa vào mức độ
sử dụng CPU đang được dùng phổ biến trên các hệ thống
điện toán đám mây hiện nay. Điều này đồng nghĩa với chi
phí được giảm thiểu nhưng chất lượng dịch vụ vẫn được
đảm bảo khi thực hiện auto scaling dùng tỉ lệ đặc biệt này.
Nếu các hệ thống giám sát trung tâm của hệ thống điện
toán đám mây có cung cấp tỉ lệ này thì người dùng hoàn
toàn có thể áp dụng phương pháp cho hệ thống thuê bao
của mình một cách nhanh chóng và hiệu quả.
TÀI LIỆU THAM KHẢO
[1] Peter Mell, Timothy Grance, The NIST Definition of Cloud
Computing, NIST Special Publication 800-145, September
2011.
[2] Lorido-Botran, T., Miguel-Alonso, J. & Lozano, J.A. A
Review of Auto-scaling Techniques for Elastic Applications
in Cloud Environments. J Grid Computing 12, 559–592
(2014). https://doi.org/10.1007/s10723-014-9314-7
[3]Dariusz Rafal Augustyn, Lukasz Warchal, Metrics-Based
Auto Scaling Module for Amazon Web Services Cloud
Platform, 2017
[4] Salman Taherizadeh and Vlado Stankovski, Dynamic Multi-
level Auto-scaling Rules for Containerized Applications,
Computer And Communications Networks and Systems
The Computer Journal, Vol. 62 No. 2, 2019
[5] Sabidur Rahman, et al. Auto-Scaling Network Resources
using Machine Learning to Improve QoS and Reduce Cost,
Networking and Internet Architecture,
arXiv:1808.02975v2 [cs.NI], 2019.
[6] CloudSim 3.0 API, The Cloud Computing and Distributed
Systems(CLOUDS) Laboratory, The University of
Melbourne,available:
3.3
3.4
3.5
3.6
3.7
3.8
20 30 40 50
Chi phí máy
ảo trung bình
theo ngưỡng
Waiting Rate
0
10
20
30
40
50
20 30 40 50
Chi phí thời
gian trung
bình theo
ngưỡng
Waiting Rate
0
1
2
3
4
5
6
32.9 35.89 38.61 40.23
Chi phi
MATB-Chi
phí TGTB
(CPU
Usage)
Chi phí
MATB-Chi
phí TGTB
(Waiting
Rate)
ĐIỀU CHỈNH TÀI NGUYÊN TỰ ĐỘNG DỰA VÀO THAM SỐ CHẤT LƯỢNG DỊCH VỤ TRONG CLOUD COMPUTING
SỐ 02 (CS.01) 2020 TẠP CHÍ KHOA HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG 84
[7] https://kubernetes.io/
AUTO SCALING BASED ON QUALITY OF
SERVICE PARAMETERS IN CLOUD
COMPUTING
Abstract: The provision of auto scaling service on the
infrastructure of cloud service providers has helped
subscribers avoid service degradation and save costs.
Along with that is the emergence of auto scaling
algorithms to automate the provision and return resources
in a timely manner.The auto scaling method, which is
based on the rule of matching current parameter values
with thresholds, is commonly used in industrial
environments. The effectiveness of the auto scaling
method depends on how the parameter is selected. In this
paper I propose to use quality of service parameters instead
of a commonly used CPU usage parameter. The paper also
provides a model to evaluate the effectiveness of this type
of auto scaling and based on that to test the effectiveness
of the method. The model has been installed and
effectiveness has been determined according to the choice
of quality of service parameters.
Nguyen Hong Son received his B.Sc.
in Computer Engineering from Ho
Chi Minh City University of
Technology, his M.Sc. and PhD in
Communication Engineering from
the Post and Telecommunication
Institute of Technology Hanoi. His
current research interests include
communication engineering,
machine learning, data science,
network security, and cloud
computing
File đính kèm:
dieu_chinh_tai_nguyen_tu_dong_dua_vao_tham_so_chat_luong_dic.pdf

