TỔNG QUAN
Giới thiệu
Ngày nay, sự gia tăng nhanh chóng nhu cầu sử dụng internet của người dùng dẫn đến một khối lượng khổng lồ dữ liệu được sinh ra và truyền tải hằng ngày Đặc biệt sự ra đời và phát triển mạnh mẽ của các dịch vụ live-streaming, Video-on- Demand (VoD) và Over-The-Top (OTT) Các mô hình truyền thống một máy chủ phục vụ cho nhiều người dùng không thể đáp ứng được các ràng buộc về chất lượng cho các dịch vụ này Các hệ thống CDN ra đời nhằm cải thiện trải nghiệm của người dùng thông qua việc làm giảm độ trễ dịch vụ
Hệ thống CDN sử dụng nhiều máy chủ phân tán địa lý để sao chép và phân tán nội dung gốc cho người dùng gần hơn, nhằm tiết kiệm tài nguyên và tối ưu hóa chi phí đầu tư Tuy nhiên, để xác định số lượng máy chủ và tài nguyên cần thiết, các bài toán test-bed tốn kém và công cụ simulation chỉ đánh giá được các chỉ số luận lý Nghiên cứu này giới thiệu một công cụ emulation CDN dựa trên Containernet mở rộng từ Mininet, kết hợp với Docker để giả lập các ứng dụng thực như ứng dụng web và dịch vụ HTTP Công cụ này được đánh giá độ tin cậy bằng tập dữ liệu log từ hệ thống CDN thực tại Việt Nam.
Ngoài ra, đề tài này sẽ mô hình hóa hai ví dụ thực tiễn về cấp phát tài nguyên CDN là: bài toán cấp phát bộ nhớ và bài toán phân bố replica servers của CDN Trong đề tài này, bài toán cấp phát tài nguyên cho CDN được nhận định và giải quyết như một bài toán tối ưu rời rạc đa mục tiêu Cụ thể hơn, bài toán nhầm chọn bộ thiết lập tối ưu cho hệ thống CDN để giảm chi phí đầu tư đồng thời tăng chất lượng dịch vụ Chất lượng dịch vụ với một bộ số thiết lập tương ứng được đánh giá dựa trên công cụ giả lập đã phát triển Vì sử dụng một công cụ giả lập để đánh giá hàm mục tiêu là việc tiêu tốn thời gian, luận văn lựa chọn các phương pháp Bayesian như hướng tiếp cận để giải quyết bài toán tối ưu trên Các giải thuật Bayesian thường được biết đến với khả năng tối ưu tốt bằng một số lượng ít lần chạy đánh giá hàm mục tiêu Các giải thuật
Luận văn này đề xuất một phương pháp để cải thiện hiệu suất của các thuật toán Bayesian trong các không gian rời rạc Phương pháp này dựa trên ý tưởng sử dụng các hàm phân phối rời rạc thay vì các hàm phân phối liên tục thường được sử dụng trong các thuật toán Bayesian Các hàm phân phối rời rạc này được thiết kế để phù hợp với các đặc điểm của các bài toán rời rạc, do đó giúp cải thiện đáng kể hiệu suất của các thuật toán Bayesian trong những bối cảnh như vậy.
Phát triển công cụ giả lập hệ thống CDN với khả năng thiếp lập linh động, ít tốn chi phí, có độ tin cậy cao.
Mô hình hóa bài toán cấp phát tài nguyên cho hệ thống CDN Đồng thời, đề xuất giải thuật để giải quyết bài toán này.
Ý nghĩa đề tài
Công cụ giả lập CDN do Luận văn phát triển cung cấp môi trường thử nghiệm đáng tin cậy và linh hoạt cho các nhà cung cấp dịch vụ CDN cùng các nhà nghiên cứu Người dùng có thể mô phỏng hệ thống và ứng dụng của họ để thử nghiệm các chiến lược triển khai và cải thiện hệ thống trước khi đưa vào môi trường thực tế Với nhiều bộ tham số cấu hình có thể, công cụ giả lập hỗ trợ tìm ra thiết lập tối ưu Luận văn đề xuất phương pháp tiếp cận tự động hóa việc tìm kiếm thông qua tối ưu hóa bài toán đa mục tiêu.
Mô hình hóa bài toán tìm bộ số thiết lập cho hệ thống CDN: Luận văn xét bài toán này như một bài toán đa mục tiêu rời rạc Ngoài ra, luận văn cũng mô hình hóa và giải quyết hai ví dụ thực tiễn của bài toán này
Đề xuất cải tiến giải thuật tối ưu hóa đa mục tiêu dựa trên Bayesian trong không gian rời rạc: Luận văn cũng đề xuất một cách tiếp cận để cải thiện tốc độ hội tụ của các phương pháp Bayesian cho bài toán đa mục tiêu rời rạc.
Phạm vi đề tài
Phạm vi bài toán tối ưu: Phương pháp đề xuất trong luận văn đề cải thiện giải thuật tối ưu Bayesian có thể được áp dụng cho bài toán tối ưu đa mục tiêu rời rạc
Môi trường thử nghiệm: Luận văn sử dụng 3 hệ thống mạng thực ở Việt Nam
[4], Pháp [5], và Nhật [6] để chạy thí nghiệm Bên cạnh đó, một tập dữ liệu được trích xuất từ log file thực của hệ thống CDN ở Việt Nam được sử dụng để đánh giá độ tin cậy của công cụ giả lập, cũng như được sử dụng trong một số thí nghiệm liên quan đến ứng dụng thực tiễn của giải thuật tối ưu mà sẽ được đề cập chi tiết ở chương 6 Bên cạnh tập dữ liệu thực, một tập dữ liệu giả lập được tạo ra dựa trên phân phối Gamma cũng được sử dụng để chạy thí nghiệm với các kiến trúc mạng ở Pháp và Nhật
Phương pháp thực hiện: Luận văn sử dụng phương pháp nghiên cứu thực nghiệm để đánh giá về độ tin cậy và mức độ tiêu thụ tài nguyên của công cụ giả lập Bên cạnh đó, đối với giải thuật tối ưu hóa được đề xuất, luận văn phân tích từ lý thuyết rồi mới đến phân tích các kết quả thực nghiệm để kiểm chứng độ hiệu quả và tính đúng đắn.
Bố cục
Trong báo cáo luận văn này có 8 chương Trong đó, chương 2 giới thiệu các công trình liên quan đến đề tài, cũng như các hướng tiếp cận tổng quan để giải quyết vấn đề Chương 3 cung cấp các thông tin chung về thư viện Mininet và cơ sở lý thuyết nền móng cho các ý tưởng đề xuất trong luận văn Chương 4 mô tả thiết kế tổng quan cũng như cách hiện thực công cụ giả lập Chương 5 mô tả vấn đề tổng quát của các nhà đầu tư hệ thống CDN, đồng thời là hai ví dụ bài toán thực tiễn Giải pháp cải tiến cũng được mô tả trong chương này Chương 6 là kết quả thí nghiệm đánh giá công cụ, cũng như các thí nghiệm đánh giá giải pháp đề xuất Chương 7 là kết luận về các ưu điểm, hạn chế cũng như các công việc trong tương lai Cuối cùng là danh sách trích dẫn, tài liệu tham khảo được đề cập trong luận văn.
CÁC CÔNG TRÌNH NGHIÊN CỨU LIÊN QUAN
Tổng quan về các hướng phân tích và mô hình hóa hệ thống CDN
Trong các năm gần đây, CDN đã được giới nghiên cứu và doanh nghiệp chú ý, nghiên cứu và ứng dụng rộng rãi trong thực tế Các nhà nghiên cứu phân tích hành vi, đặc điểm và đề xuất những chiến lược, giải thuật để cải thiện chất lượng dịch vụ, tối ưu hiệu suất của hệ thống và giảm chi phí tài nguyên Những nghiên cứu nảy thường được chia thành hai hướng chính gồm:
Hướng tiếp cận bằng các mô hình lý thuyết: Trong cách tiếp cận này, các nhà nghiên cứu sử dụng các mô hình toán học để mô hình hóa và phân tích hành vi của các hệ thống CDN Các công trình nghiên cứu theo hướng tiếp cận này thường dựa trên lý thuyết hàng đợi Một công trình nghiên cứu nổi tiếng và là nền tảng của hướng tiếp cận này là bài báo của Che [7] Trong bài báo này, tác giả đã mô hình hóa hành vi của hệ thống CDN trong trường hợp đơn giản với nhiều ràng buộc phi thực tế Cụ thể hơn hành vi một yêu cầu của người dùng gửi tới hệ thống CDN được mô hình hóa như một Poisson arrival process Bài báo này đã đưa ra một công thức lý thuyết để tính xấp xỉ số lượng miss và hit của hệ thống CDN trong trường hợp sử dụng giải thuật caching eviction LRU với nhiều ràng buộc để đơn giản hóa bài toán Các mô hình mở rộng hơn cho các giải thuật eviction khác được đề xuất trong [8][9] Trong những năm gần đây, nhiều mô hình kế thừa, mở rộng và loại bỏ dần nhiều ràng buộc thực tế từ mô hình của Che đã được công bố Tuy nhiên, cách tiếp cận này thường sẽ đặt ra những ràng buộc để đơn giản hóa mô hình Những ràng buộc lý thuyết này thường sẽ gây ra tính phi thực tế của hướng tiếp cận bằng cách mô hình hóa này Nhiều yếu tố có thể ảnh hưởng đến hành vi và hiệu suất của cả hệ thống nhưng không được xét đến
Hướng tiếp cận bằng sử dụng các công cụ mô phỏng: Một cách tiếp cận khác có thể khắc phục được những khuyết điểm của cách tiếp cận lý thuyết là sử dụng các công cụ giả lập Các công cụ giả lập, mô phỏng được xây dựng để bắt chước hành vi của hệ thống CDN Các công cụ này có thể là những testbeds được triển khai trên hệ thống phần cứng thực với những hạn chế về tính linh động và có thể tốn nhiều thời gian cho một lần chạy mô phỏng Một cách tiếp cận khác là những bộ công cụ simulation giả lập về mặt luận lý hành vi của hệ thống Các công cụ này thường sẽ cho kết quả nhanh hơn, nhưng thường chỉ đánh giá được một vài độ đo của hệ thống CDN như hit rate, traffic, Những độ đo nhạy cảm hơn như độ trễ, độ ổn định của dịch vụ hay chất lượng dịch vụ thường không thể được đánh giá bởi những công cụ này hoặc kết quả đánh giá là không đáng tin cậy Cụ thể hơn, một hệ thống mô phỏng CDN nổi tiếng được phát triển từ những năm đầu 2000 như CoDeeN [10] CoDeeN là một hệ thống giả lập CDN chạy trên nhiều máy thực dựa trên nền tảng PlanetLab [11] của đại học Princeton Tuy nhiên, những năm gần đây việc truy cập của hệ thống PlanetLab đã bị giới hạn, vậy nên việc sử dụng CoDeeN cũng bị hạn chế theo Bên cạnh CoDeeN, một công cụ simulators mô phỏng CDN có tên là CDNSim được công bố trong [12] CDNSim chạy trên một thư viện mô phỏng mạng được viết bằng C++ có tên là OMNeT++ [9] OMNeT++ được phát triển dựa trên mô hình discrete event model CDNSim cung cấp các tính năng như linh động trong thiết lập và ít tốn chi phí khi chạy Tuy nhiên, công cụ này lại không đảm bảo tính đúng đắn về mặt chức năng của các ứng dụng khi mô phỏng các hệ thống thực Cụ thể hơn, những ứng dụng của hệ thống thực như ứng dụng web, HTTP server, dịch vụ streaming, không thể được mô phỏng lại trên công cụ này Do đó, người dùng khó có thể đánh giá được các tiêu chí như độ ổn định và chất lượng của dịch vụ Để vượt qua được những khuyết điểm đó, luận văn này sẽ phát triển một công cụ emulator, cố gắng mô phỏng cả về những ràng buộc về môi trường mạng và cung cấp khả năng triển khai linh động những ứng dụng thực của hệ thống CDN.
Một số nghiên cứu liên quan đến bài toán cấp phát tài nguyên cho hệ thống CDN
hệ thống CDN Để tối ưu hóa được chi phí đầu tư và tối đa hóa hiệu năng của hệ thống, nhiều công trình khoa học trước đó đã đề xuất nhiều cách tiếp cận giải quyết bài toán về cấp phát tài nguyên Các loại tài nguyên thường được xét đến như: dung lượng bộ nhớ cấp phát cho mỗi replica servers, vị trí và số lượng của replica servers, tài nguyên mạng của hệ thống CDN, chiến lược lưu nội dung mới và xóa nội dung nội dung dư thừa, Để giải quyết bài toán này hai hướng tiếp cận chính là quy bài toán vệ bài toán tối ưu hóa đơn mục tiêu với hàm mục tiêu mới là tổ hợp tuyến tính của các hàm mục tiêu từ bài toán gốc hoặc giải trực tiếp bài toán đa mục tiêu Tùy thuộc vào loại tài nguyên cần cấp phát cũng như bài toán đặt ra mà nhiều công trình đã đề xuất các giải pháp cấp phát tĩnh hay động Một ví dụ là đối với bài toán cấp phát bộ nhớ cho các replica servers trong môi trường cloud, bài toán này có thể được tối ưu hóa theo cả 2 cách tiếp cận là tĩnh hay sẽ thay đổi định kỳ (động) theo từng khung giờ để phù hợp với lưu lượng traffic Bảng 2-1 liệt kê một số công trình liên quan đến bài toán cấp phát tài nguyên cho hệ thống CDN
Bảng 2-1: Một số công trình liên quan đến bài toán cấp phát tài nguyên CDN
Mục tiêu Các biến đầu vào Cơ chế cấp phát
Công trình Đơn mục tiêu có ràng buộc
Tối thiểu tổng chi phí truyền tải gói tin với ràng buộc về khả năng lưu trữ bị giới hạn của replica server
Nội dung cần cache tại mỗi replica server
Tối ưu hóa chi phí với ràng buộc về chất lượng dịch vụ
Nội dung sẽ được chứa trong data center nào Động [14]
Chi phí bandwidth và lưu trữ cho trường hợp CDN có topology dạng tree 2 tầng (Tác giả chứng minh lý thuyết công thức tính cận dưới của biến chi
Lưu và xóa nội dung ở các replica servers Động [16]
Vị trí đặt máy chủ, cách cache nội dung tại các replica server.
Vị trí đặt máy chủ và số lượng máy.
Tối thiểu chi phí thuê dịch vụ.
Tăng chất lượng dịch vụ.
Số lượng máy ảo tại mỗi data centers.
Nội dung nào sẽ được cách trong các data centers
Tổng quan về bài toán tối ưu hóa đa mục tiêu
2.3.1 Các hướng nghiên cứu chính
Bài toán tối ưu hóa đa mục tiêu thường được giải quyết theo 2 hướng chính là scalarization và hướng tiếp cận Pareto.
Các phương pháp scalar hóa là một cách tiếp cận để chuyển đổi bài toán đa mục tiêu gốc thành bài toán đơn mục tiêu, từ đó dễ dàng giải quyết hơn Các phương pháp này đưa ra giải pháp duy nhất cho bài toán, nhưng yêu cầu phải điều chỉnh trọng số đại diện cho mức độ quan trọng của từng hàm mục tiêu Tuy nhiên, việc lựa chọn trọng số tối ưu và giải pháp cho một bài toán đa mục tiêu thường mang tính chủ quan, phụ thuộc vào hoàn cảnh thực tế và thời điểm của bài toán Do đó, giải pháp duy nhất này có thể hạn chế tính linh hoạt trong việc lựa chọn phương án tối ưu.
Các phương pháp theo hướng tiếp cận Pareto : Một cách tiếp cận khác là sẽ tiêu nhưng không làm tệ hơn ở một hay nhiều mục tiêu khác Một cách tiếp cận cổ điển và thường đc sử dụng là giải thuật di truyền Giải thuật di truyền mô phỏng, sử dụng các phép di truyền để tối ưu hóa hàm mục tiêu Một giải thuật nổi tiếng của hướng tiếp cận này là giải thuật NSGA-II [22] Luận văn này sẽ sử dụng giải thuật NSGA-II như một trong các baseline để so sánh với các giải thuật được đề xuất Một hướng tiếp cận khác là sử dụng ý tưởng từ giải thuật
Trong bài toán tối ưu đa mục tiêu, thuật toán Bayesian thường được tin dùng vì khả năng hội tụ nhanh chóng với số lượng phép tính đánh giá hàm mục tiêu ít Nghiên cứu này đề xuất một thuật toán theo phương pháp Bayesian cải tiến dành riêng cho bài toán tối ưu đa mục tiêu rời rạc.
2.3.2 Giải thuật Bayesian cho bài toán đa mục tiêu
Giải thuật Bayesian là một giải thuật lặp, dựa trên việc xây dựng một mô hình surrogate model để tìm phân bố hàm mục tiêu và một acquisition function để lựa chọn điểm tối ưu tiềm năng Có nhiều hướng tiếp cận cho mô hình surrogate model, luận văn này sử dụng một trong những hướng tiếp cận phổ biến nhất là Gaussian Process [23] (GP) Bên cạnh GP, phụ thuộc vào bài toán áp dụng mà nhiều công trình đã đề xuất sử dụng các giải thuật như Random Forest [24], Decision Tree [25], T-Student process [26], Acquisition function kết hợp với các tiêu chí heuristic được sử dụng để lựa chọn các nghiệm tối ưu tiềm năng Một số acquistion function thường được sử dụng như Expected Improvement (EI) [28], Upper Confidence Bound (UCB) [28],… Các tiêu chí heuristic để lựa chọn điểm kế tiếp thường được chia thành 2 hướng chính là lựa chọn đơn và lựa chọn bó Lựa chọn đơn (single selection hay single evaluation) chỉ chọn một nghiệm tiềm năng tại mỗi vòng lặp của giải thuật Bayesian Đây là hướng tiếp cận truyền thống và đã có nhiều công trình trước đó như [28, 29, 30] Mặt khác, lựa chọn bó (batch selection hay batch evaluation) sẽ hy sinh độ chính xác nhưng sẽ tận dụng được cơ chế song song hóa nhờ cơ chế đánh giá bó cho mỗi vòng lặp [31, 32, 33, 34, 35] Hướng tiếp cận bó này sẽ mang lại nhiều lợi ích về tiết kiệm thời gian, và phổ biến hơn trong môi trường ứng dụng Các giải thuật trong luận văn sẽ sử dụng hướng tiếp cận bó này. Để áp dụng giải thuật Bayesian cho bài toán đa mục tiêu, một giải pháp tự nhiên nhất là quy về bài toán đơn mục tiêu như hướng tiếp cận scalarization như trong giải thuật ParEGO [36] Tuy nhiên, giải thuật này cũng gặp một số vấn đề của hướng tiếp cận scalarization như đã đề cập ở trên Gần đây, một hướng nghiên cứu khác đề xuất giải thuật USeMO [37] sử dụng kết hợp giữa giải thuật NSGA-II và ý tưởng của giải thuật Bayesian để giải quyết bài toán Đề xuất của luận văn này sẽ được xây dựng và cải tiến dựa trên giải thuật USeMO USeMO là một trong các giải thuật state-of- the-art (SOTA) giải quyết bài toán đa mục tiêu hiện nay Một số công trình liên quan đến hướng tiếp cận này như TSEMO[38], DGEMO[39], Cụ thể hơn về các giải thuật này sẽ được mô tả trong chương 3.
2.3.3 Các cách tiếp cận để giải quyết bài toán tối ưu hóa rời rạc sử dụng
Thuật toán Bayesian ban đầu được thiết kế cho không gian liên tục Việc ứng dụng thuật toán Bayesian vào không gian rời rạc ảnh hưởng đến khả năng hội tụ và kết quả cuối cùng Nghiên cứu [40] đã phân tích các hạn chế của tiếp cận Bayesian với không gian liên tục Cải tiến được đề xuất trong bài báo đó giúp tăng khả năng hội tụ của thuật toán Bayesian cho bài toán đơn mục tiêu rời rạc, nhưng vẫn còn hạn chế Để khắc phục, thuật toán tự động điều chỉnh tham số cân bằng giữa khai thác và thăm dò của thuật toán Bayesian cho bài toán đơn mục tiêu được giới thiệu trong [41] Tuy nhiên, khi mở rộng cho bài toán đa mục tiêu, số lượng tham số cần điều chỉnh trở nên rất lớn, gây khó khăn và tốn thời gian để tìm ra bộ tham số tối ưu Luận văn này đề xuất một tiếp cận lấy cảm hứng từ ý tưởng này để cải thiện thuật toán UsEMO nhằm giải quyết bài toán đa mục tiêu.
CƠ SỞ LÝ THUYẾT
Tổng quan về Content Delivery Network
Trong mô hình mạng truyền thống, tất cả yêu cầu từ người dùng sẽ được phục vụ bởi một máy chủ hay một data center của nhà cung cấp nội dung Khi nhu cầu, số lượng người dùng trở nên ngày càng lớn, kiến trúc truyền thống và cơ sở hạ tầng mạng khó có thể đem lại chất lượng dịch vụ tốt và ổn định Mô hình mạng CDN ra đời nhằm phục vụ cho nhu cầu này Doanh nghiệp sử dụng dịch vụ CDN để giảm traffic nội mạng, giảm độ trễ của dịch vụ, tăng tính ổn định và cải thiện trải nghiệm của người dùng Khi người dùng yêu cầu một nội dung, thay vì yêu cầu này sẽ được gửi từ một máy chủ của nhà cung cấp, nó sẽ được gửi từ các replica server của hệ thống
CDN Nội dung sẽ được cache trong một hay nhiều replica servers của CDN
Có 4 đối tượng chính trong một mô hình kinh doanh của hệ thống CDN gồm:
Người dùng cuối: Người sử dụng dịch vụ từ nhà cung cấp nội dung Họ thường sẽ trả tiền theo tháng để truy cập internet hay các dịch vụ OTT, VoD, Một trong những mục tiêu tiên quyết khi nghiên cứu hệ thống CDN là cải thiện trải nghiệm ở người dùng cuối
Nhà cung cấp nội dung: cung cấp dịch vụ cho khách hàng mà không cần phải thông qua các giao dịch, hợp đồng phức tạp với nhà mạng ISP Hơn thế nữa, họ thường không muốn tốn nhiều chi phí cho cơ sở hạ tầng, gia tăng chất lượng dịch vụ và duy trì tính độc quyền với khách hàng
Nhà cung cấp dịch vụ CDN: cung cấp cơ sở hạ tầng CDN (máy chủ và có thể cả hạ tầng mạng) và có những hợp đồng ràng buộc về chất lượng với nhà cung cấp nội dung
Các nhà cung cấp dịch vụ Internet (ISP) chủ yếu thu được doanh thu từ người dùng cuối và có thể cả từ các nhà cung cấp dịch vụ phân phối nội dung (CDN) Mục tiêu của các ISP là cân bằng giữa chi phí cơ sở hạ tầng và chất lượng mạng để duy trì tính cạnh tranh với các nhà cung cấp khác.
Tùy thuộc vào cách triển khai và mô hình kinh doanh, các hệ thống CDN được phân loại thành ba nhóm chính:
Hệ thống CDN truyền thống hoạt động dựa trên mô hình đặt các máy chủ sao chép tại một hoặc nhiều trung tâm dữ liệu (hình 1) Các trung tâm dữ liệu này, được gọi là điểm hiện diện (PoP), kết nối trực tiếp với các bộ định tuyến của nhà cung cấp dịch vụ Internet (ISP) Mỗi PoP phục vụ cho một khu vực nhỏ gồm một nhóm người dùng cuối và chỉ xử lý các yêu cầu đến từ khu vực cụ thể đó Nhờ vậy, nhà cung cấp nội dung có thể thuê dịch vụ CDN để cải thiện chất lượng dịch vụ, thường thông qua các hợp đồng có mức cam kết về chất lượng tối thiểu.
Hình 1: Mô hình CDN truyền thống
Hệ thống cloud CDN: Hiện này, có rất nhiều nền tảng lớn cung cấp dịch vụ cloud CDN nổi tiếng như Akamai, CloudFront, Google Cloud, Amazon AWS, Các nhà cung cấp nội dung sẽ thuê dịch vụ cloud từ các nền tảng này để phục vụ cho nhu cầu của họ Tùy thuộc vào chính sách của các công ty cung cấp nền tảng CDN mà họ sẽ có các cách tính chi phí khác nhau Những mục chi phí thường được tính khi cung cấp dịch vụ CDN của các nền tảng là số lượng máy, dung lượng lưu trữ của mỗi máy, lưu lượng traffic, Cách tính chi phí cho những mục này thường sẽ khác nhau cho từng khu vực Trong mô hình này, mỗi “region” sẽ gồm nhiều “district” Các “region” sẽ được phục vụ bởi các data center trong khu vực của nhà cung cấp dịch vụ cloud Hình 2 minh họa mô hình cloud CDN
Hình 2: Mô hình cloud CDN
Hệ thống Telco CDN: Khi nhà cung cấp dịch vụ CDN sở hữu hoặc có thể chia sẻ cơ sở hạ tầng mạng của nhà mạng ISP, hệ thống CDN có thể được triển khai ngay trên cơ sở hạ tầng này Hình 3 mô tả mô hình Telco CDN Trong mô hình này, các replica server có thể kết nối trực tiếp với các routers của nhà mạng
ISP Việc tận dụng cơ sở hạ tầng của nhà mạng ISP giúp giảm chi phí đầu tư, tăng hiệu quả của hệ thống CDN
3.1.4 Các bài toán con trong chiến lược caching của hệ thống CDN:
Chiến lược caching của một hệ thống CDN có thể được chia thành ba bài toán con nhỏ hơn như sau:
Bài toán eviction: Là bài toán xác định khi nào và nội dung gì trong cache sẽ được xóa
Bài toán admission: Là bài toán xác định nội dung nào sẽ được cache Thông thường nhà cung cấp nội dung nếu muốn hệ thống CDN cache một nội dung, họ sẽ thêm vào 1 trường trong phần header của gói tin chứa nội dung để đánh dấu việc cache gói tin đó Luận văn này không đề cập đến chiến lược admission trong môi trường thí nghiệm nghĩa là các replica servers sẽ cache tất cả nội dung mới
Chiến lược định tuyến gói tin: Là bài toán xác định khi một nội dung không có trong một replica servers thì server đó nên chuyển hướng yêu cầu đó đến server nào kế tiếp.
Thư viện Mininet
Công cụ giả lập trong luận văn này được phát triển dựa trên thự viện Mininet Mininet là một thư viện giả lập mạng có khả năng giả lập các máy ảo chạy code thực Mỗi máy ảo có trong mạng giả lập đều có network stack, Linux kernel riêng và chạy trên một namespace độc lập Các máy ảo giao tiếp với nhau thông qua các đường kết nối ethernet ảo Hơn thế nữa, trong phiên bản cập nhật Mininet HiFi [42] đã cung cấp cơ chế cô lập tài nguyên, đường kết nối ảo khả thiết lập Cụ thể hơn, ta có thể cấp phát phần trăm tài nguyên CPU cố định cho mỗi máy ảo, cũng như các tài nguyên mạng như bandwidth, loss và delay cho mỗi đường ethernet ảo Luận văn này sử dụng Containernet, một phiên bản mở rộng của Mininet Containernet mở rộng khả năng triển khai các ứng dụng thực thông qua cơ chế sử dụng Docker container trên các máy ảo Với phiên bản mở rộng này, luận văn có thể giả lập lại hệ thống thực chi tiết hơn
Độ tin cậy và tính ổn định của thư viện giả lập mạng Mininet đã được đánh giá trong nghiên cứu [43], cho thấy khả năng giả lập các hệ thống mạng truyền thống một cách đáng tin cậy Tuy nhiên, việc sử dụng bộ điều khiển SDN có thể làm tăng mức tiêu thụ tài nguyên phần cứng Để giải quyết vấn đề này, luận văn này đề xuất một công cụ giả lập mới định tuyến gói tin dựa trên các bộ định tuyến giả lập thay vì bộ điều khiển SDN, giảm tải cho phần cứng và cải thiện hiệu suất.
Bài toán tối ưu hóa đa mục tiêu
Một bài toán tối ưu hóa đa mục tiêu thường sẽ bao gồm hai hay nhiều hơn các hàm mục tiêu cần tối ưu Giả sử ta có bài toán tối ưu k mục tiêu, ta kí hiệu hàm mục tiêu thứ i là ( ) với x là là biến số thực đầu vào d chiều Mục tiêu của bài toán này là tối thiểu hóa những mục tiêu này với không gian đầu vào X, tuy nhiên các mục tiêu này thường đối nghịch nhau Trong bài toán đa mục tiêu, khi chỉ tập trung tối ưu một mục tiêu riêng lẻ có thể sẽ ảnh hưởng hay làm tệ đi những mục tiêu khác Để tìm nghiệm tối ưu cho bài toán đa mục tiêu, trước tiên ta phải định nghĩa một lời giải như thế nào thì tốt hơn một lời giải khác Trong trường hợp bài toán đơn mục tiêu, sự “vượt trội” của lời giải được xác định đơn giản bởi sự so sánh giá trị của hàm mục tiêu đơn liên quan Trong bài toán đa mục tiêu, sự vượt trội này được đánh giá qua khái niệm dominanace Một lời giải x 1được gọi là dominate x 2 khi thỏa mãn cả 2 điều kiện sau:
x 1 không tệ hơn x 2 trong tất cả các mục tiêu
x 1tốt hơn x 2trong ít nhất một mục tiêu
Một bài toán đa mục tiêu giải quyết theo cách tiếp cận Pareto sẽ có một tập nghiệm tối ưu được gọi là tập Pareto Những nghiệm trong tập Pareto P (Pareto set) sẽ không bị dominate bởi bất kỳ giá trị nào khác trong tập X Nói cách khác, ta có các phát biểu sau cho bài toán tối thiểu hóa:
Định nghĩa dominanace: x 1 dominate x 2 nếu thỏa cả 2 điều kiện sau: ∀ ,
Hình 4 là ví dụ minh họa cho khái niệm dominate và Pareto front với bài toán có 2 mục tiêu , A và B không dominate nhau, trong khi đó A và B đều dominate
C Đường màu đỏ chứa các điểm là giá trị các hàm mục tiêu của các nghiệm tối ưu còn được gọi là Pareto front Mỗi bài toán tối ưu hóa đa mục tiêu đều có một true Pareto front Đây là Pareto front lý tưởng và không tồn tại một Pareto front nào “tốt” hơn Mục tiêu cao nhất của hướng tiếp cận Pareto này là có thể tìm được true Pareto front của bài toán
Hình 4: Ví dụ về Dominance và Pareto front cho bài toán 2 mục tiêu.
3.3.2 Độ đo Để so sánh giữa các giải thuật tối ưu hóa đa mục tiêu theo cách tiếp cận Pareto, ta cần một độ đo để so sánh giữa các tập nghiệm Pareto Một phép đo phổ biến thường được sử dụng trong mục đích này là Hypervolume Indicator [44] Giả sử, ta có điểm tham khảo ∈ Hypervolume Indicator của tập Pareto P là phép đo khu vực bị dominate bởi tập P và giới hạn bởi điểm tham khảo r Với Λ( ) là phép đo
Lebesgue, ta có công thức tính sau:
Hình 5 mô tả Hypervolume Indicator của 1 tập gồm 4 điểm {p 1 , p 2 , p 3 , p 4} và điểm tham khảo r trong không gian 2 chiều.
Hình 5: Ví dụ Hypervolume trong không gian 2 chiều
(diện tích vùng màu xám)
Giải thuật NSGA-II cho bài toán đa mục tiêu
Giải thuật NSGA-II là một trong những giải thuật cổ điển, phổ biến và điển hình nhất của hướng tiếp cận di truyền để giải quyết bài toán đa mục tiêu Giải thuật này là giải thuật lặp, mỗi vòng lặp tương ứng với một thế hệ Ta có thể tóm tắt vào trong 6 bước sau:
Bước khởi tạo ban đầu của thuật toán là tạo ra quần thể ban đầu P0 Quần thể này được khởi tạo bằng cách sử dụng các chiến lược lấy mẫu, chẳng hạn như lấy mẫu ngẫu nhiên theo phân phối chuẩn (Random Sampling) hoặc phương pháp Latin Hypercube Sampling (LHS).
Bước 2: Thực hiện giải thuật Non-dominated sorting (NDS) Không mất tính tổng quát, xét trong bài toán tối thiểu hóa, giả sử rằng nghiệm của population P t được gán cho N Pareto fronts, ,∀i ∈ [1, N], được gọi là rank của Pareto front Đầu tiên, giải thuật NDS sẽ chọn những nghiệm không bị dominate bởi bất kì nghiệm nào khác từ tập P t và gán chúng thuộc (Pareto front này có rank 1) Tương tự với tập \ để tìm Pareto front Giải thuật NDS sẽ lặp đến khi tất cả các mẫu trong P t đều đã được gắn với một Pareto front
Bước 3: Tính Crowding Distance [22] cho mỗi mẫu của từng Pareto front
Bước 4: Lựa chọn mẫu từ tập P t dựa trên chiến lược Crowded Tournament
Selection Giả sử có hai nghiệm x và x , nếu x có rank thấp hơn x thì ta lựa
Bước 5: Thực hiện các phép toán di truyền: lai tạo và đột biến để tạo ra tập đời con S
Bước 6: Kết hợp giữa tập đời con S t và tập P t ban đầu rồi lựa chọn các mẫu tốt nhất để tạo ra một thế hệ mới P t+1 với cùng kích thước population như tập P t ban đầu Quay lại bước 1.
Giải thuật Bayesian cho bài toán đa mục tiêu
3.5.1 Cơ sở lý thuyết cho giải thuật Bayesian tổng quát
Giải thuật Bayesian là cách tiếp cận phổ biến và hiệu quả nhất để giải quyết các bài toán có hàm mục tiêu “đắt giá” Hàm mục tiêu “đắt giá” nghĩa là việc tính toán, đánh giá mục tiêu cho mỗi điểm đầu vào có thể tốn nhiều thời gian hay các chi phí khác Một trong những ưu điểm của giải thuật Bayesian là giải thuật này chỉ cần tính toán hàm này với một số lượng ít lần nhưng vẫn đạt được một kết quả chấp nhận được Giải thuật Bayesian là một giải thuật lặp Mỗi vòng lặp sẽ xây dựng và huấn luyện một surrogate model để có thể xấp xỉ được phân bố của hàm mục tiêu Từ đó, thay vì tính toán hàm mục tiêu “đắt giá” để đánh giá một điểm dữ liệu mới, ta có thể sử dụng surrogate model Một khác biệt chính giữa surrogate model và hàm mục tiêu là surrogate model trả về một phân bố xác suất cho các giá trị có thể có của hàm mục tiêu cho mỗi giá trị đầu vào, trong khi đó hàm mục tiêu trả về một giá trị hằng Sau khi đã huấn luyện surrogate model, một acquisition function kết hợp với một tiêu chí lựa chọn được sử dụng để tìm điểm dữ liệu có tiềm năng mới Điểm dữ liệu mới này sẽ được thêm vào tập huấn luyện cho surrogate model trong vòng lặp kế Acquisition function sử dụng chính trong luận văn này là EI và UCB Hình 6 mô tả giải thuật tối ưu hóa Bayesian tổng quát cho bài toán đơn mục tiêu.
Hình 6: Mã giả giải thuật tối ưu hóa Bayesian tổng quát.
Phần này sẽ giới thiệu phần nền tảng lý thuyết cho thuật toán Bayesian trong trường hợp bài toán đơn mục tiêu và sẽ được mở rộng cho nhiều hàm mục tiêu trong phần kế tiếp.
Mô hình Gaussian Process (GP) định nghĩa một phân bố xác suất tiên nghiệm cho hàm mục tiêu Cho một hàm mục tiêu f và n điểm dữ liệu quan sát (x1, f1), ,(xn, fn), phân phối GP biểu diễn vector giá trị hàm tương ứng [f(x1), ,f(xn)] như một phân bố chuẩn đa chiều Phân phối này được xác định bởi vector giá trị trung bình và ma trận hiệp phương sai, mô tả mức độ bất định của hàm mục tiêu.
Ta xõy dựng vector trung bỡnh cộng bởi đỏnh giỏ một hàm trung bỡnh cộng à 0 cho mỗi giá trị x i Ma trận hiệp phương sai được tính dựa trên một hàm hiệp phương sai hay còn gọi là kernel K cho mỗi cặp giá trị x i và x j Hàm kernel được chọn sao cho nếu cặp điểm x i , x j càng gần nhau thì hệ số tương quan giữa chúng càng cao Điều này nhằm ngụ ý rằng nếu những điểm càng gần nhau thì càng nên có giá trị hàm mục tiêu giống nhau hơn những điểm ở xa chúng Một đặc trưng cần lưu ý là ma trận hiệp phương sai phải là một ma trận nửa xác định dương và K không phải là một hàm đối xứng Phân phối tiên nghiệm nhận được là:
Trong đó, : là chuỗi giá trị , , … , , ta có:
Giả sử rằng ( : ) không có nhiễu, dựa trên k điểm dữ liệu đã quan sát được, ta cần dự đoán giá trị ( )với điểm dữ liệu tiềm năng mới xk+1.Ta có phân phối tiên nghiệm trên hàm [ ( : ), ( )] được tính như (1), vậy nên ta có thể tính phân phối hậu nghiệm dựa trên quan sát có được theo định lý Bayes như công thức sau:
Trong đú, giỏ trị trung bỡnh hậu nghiệm à ( +1 ) đơn giản là trung bỡnh cộng cú trọng số giữa giỏ trị trung bỡnh tiờn nghiệm à ( +1 ) và dự đoỏn dựa trờn tập dữ liệu đã quan sát ( : ) Phương sai hậu nghiệm ( ) bằng hiệp phương sai tiên nghiệm ( , ) trừ cho một đại lượng liên quan đến phần phương sai bị trừ bởi dữ liệu quan sát cũ ( : ) Đây là cách tính truyền thống để sử dụng GPR.
Luận văn này sử dụng một trong những kernel phổ biến nhất hàm Matèrn [45] Hàm Matérn được tính như sau với Γ(.) là hàm gamma, α là tham số của kernel và là hàm Bessel [46]
( ) (√2 | 2 − 1 | ) (√2 | 2 − 1 |) Đối với hàm tớnh mean à , luận văn sử dụng lựa chọn đơn giản nhất là sử dụng hàm hằng à ( ) = à Một vấn đề cần lưu ý là cỏc tham số của kernel, cụ thể ở đõy là α cần được tối ưu Luận văn sử dụng phương pháp Maximum Likelihood Estimate (MLE) [23] để tìm tham số α tối ưu
Nhân tố chính ảnh hưởng đến hiệu năng và khả năng hội tụ của giải thuật
Hàm thu thập dữ liệu Bayesian sử dụng phân phối xác suất hậu nghiệm từ mô hình đại diện để đánh giá độ "tốt" của hàm mục tiêu tại mỗi điểm giá trị đầu vào Mục tiêu là chọn điểm giá trị có độ "tốt" tối ưu và thêm vào tập dữ liệu cho vòng lặp tiếp theo Sau n vòng lặp Bayesian, điểm dữ liệu được hàm thu thập dữ liệu chọn sẽ được tính theo công thức:
Một điều đáng lưu ý ở đây là hàm ( ) không phụ thuộc trực tiếp vào hàm mục tiêu gốc, thay vào đó nó phụ thuộc vào phân phối hậu nghiệm của hàm này từ surrogate model tại một điểm giá trị tiềm năng Luận văn này sẽ sử dụng 2 acquisition function nổi tiếng là EI và UCB.
Hàm Cải tiến Dự kiến (EI) đo lường độ cải tiến dự kiến của hàm mục tiêu dựa trên phân phối xác suất hậu nghiệm của mô hình thay thế Giá trị dự kiến của hàm tiện ích u(y) = max(0, v - ) được tính toán dưới phân phối xác suất hậu nghiệm, trong đó v = min(0, ) là giá trị quan sát được tốt nhất tại thời điểm hiện tại của hàm mục tiêu (đối với bài toán tối thiểu hóa).
“tốt” hơn so với giải pháp tốt nhất hiện tại bởi việc thực hiện đánh giá cho mỗi điểm giá trị đầu tiềm năng Hàm EI có thể được tính như sau:
( ) , với ϕ (.) và φ(.) lần lượt là hàm mật độ xác suất và hàm phân phối tích lũy của phân phối chuẩn Gaussian Tham số là tham số cân bằng giữa exploration và exploitation Thông thường, tham số này được gán là = 0
Một acquisition function khác được đề xuất dựa trên ý tưởng về cận trên của khoảng tin cậy để cực đại hóa giá trị regret của việc lựa chọn giá trị tiềm năng Cách tính hàm này như sau:
Trong đó, tham số được sử dụng để cân bằng exploitation và exploration của giải thuật Có nhiều hướng tiếp cận heuristic để lựa chọn tham số này Trong đó, lựa chọn phổ biến nhất là = ( ) với là số lượng mẫu trong tập giá trị tiềm năng tại vòng lặp thứ t.
3.5.2 Giải thuật Bayesian cho bài toán đa mục tiêu
Như đã đề cập ở phần phần 2.3.1, để áp dụng giải thuật Bayesian cho bài toán đa mục tiêu có hai hướng tiếp cận chính:
Đưa về bài toán đơn mục tiêu bằng cách trọng số hóa các hàm mục tiêu như giải thuật ParEGO
THIẾT KẾ CỦA BỘ GIẢ LẬP
Các thành phần chính
Thư viện Mininet cung cấp chức năng định tuyến và theo dõi gói tin trong mạng với các bộ SDN controller Tuy nhiên, việc chạy thêm một bộ SDN controller trong ngữ cảnh công cụ giả lập CDN có thể tốn thêm tài nguyên không cần thiết Trong luận văn này, thay vì định tuyến bằng các bộ controllers, tôi phát triển các routers ảo để mô phỏng hành vi của các routers trong môi trường thật Cụ thể hơn, các routers ảo sử dụng giao thức Open Shortest Path First (OSPF) để định tuyến Đồng thời, để giảm thời gian khởi tạo mạng, công cụ sẽ xây dựng trước ở mỗi routers ảo một bảng định tuyến tĩnh Cụ thể hơn, công cụ này có 5 thành phần chính:
Client: Là các máy ảo trong công cụ được sử dụng để mô phỏng người dùng cuối Để có thể minh họa cho việc mô phỏng môi trường thực, luận văn này sử dụng một tập dữ liệu được trích xuất từ hệ thống log file của một hệ thống CDN thực ở Việt Nam [4] Cụ thể hơn, mỗi mẫu dữ liệu là thông tin của một yêu cầu được gửi từ một người dùng tới hệ thống Thông tin thô này bao gồm: thời gian gửi, độ trễ, nội dung, kích thước nội dung, trạng thái cache, địa chỉ IP
Từ thông tin thô, công cụ trừu xuất vị trí địa lý và gom cụm nhiều người dùng thật thành các client ảo đại diện cho hành vi của họ trong cùng khu vực Công cụ còn cung cấp chế độ gửi yêu cầu đồng bộ và bất đồng bộ Chế độ bất đồng bộ mô phỏng tính đồng thời của các yêu cầu người dùng trong thực tế, cho phép client ảo gửi nhiều yêu cầu cùng lúc theo từng khung thời gian Ngược lại, chế độ đồng bộ gửi yêu cầu tuần tự.
Cụ thể hơn của cơ chế này sẽ được mô tả trong phần 4.2.3
Replica Server: Những ứng dụng thực của hệ thống CDN có thể được mô phỏng và triển khai lại trong công cụ thông qua Docker container Đặc biệt là các HTTP framework như Nginx[47], Apache[48], Varnish[49], đều có thể được triển khai trong công cụ mô phỏng này Tuy nhiên, các công cụ này thường bị cố định trong cơ chế cache và định tuyến Để phục vụ cho mục đích nghiên cứu, công cụ cũng hỗ trợ một module HTTP server ảo để có thể triển khai các chiến lược caching mới dễ dàng hơn Về những vấn đề xác thực tính đúng đắn trong chức năng của server ảo này sẽ được thí nghiệm và đánh giá trong phần 6.1.2
Link (Đường dẫn): Thư viện Mininet hỗ trợ Traffic Control (TC) link [50] Điều đó nghĩa rằng ta có thể thiết lập tài nguyên của đường dẫn như banwidth, loss và delay Mức độ tin cậy của chức năng này của Mininet cũng đã được đánh giá trong nghiên cứu [43]
Router: Trước khi công cụ bước vào quá trình mô phỏng hành vi, nó sẽ có một quá trình khởi tạo Trong quá trình khởi tạo này, các tài nguyên mạng, network topology, định tuyến tĩnh, sẽ được thực hiện Bảng định tuyến tĩnh sẽ được khởi tạo trước trong quá trình này Bên cạnh bảng định tuyến tĩnh này, công cụ
Origin Server đảm nhiệm vai trò tạo nội dung và phản hồi yêu cầu từ Client hoặc Replica Server Trong môi trường thực tế, Origin Server thường chứa đựng các ứng dụng video streaming hoặc xử lý đa phương tiện đòi hỏi nhiều tài nguyên Do đó, luận văn sẽ xây dựng một bộ tạo nội dung đơn giản và tốn ít tài nguyên hơn, thay vì triển khai lại các ứng dụng này trong môi trường giả lập Origin Server là HTTP server đa xử lý được phát triển dựa trên FastAPI - một trong những framework dịch vụ web có hiệu suất tốt nhất hiện nay.
Một điểm đáng lưu ý liên quan đến cơ chế cô lập tài nguyên Đây là cơ chế giúp cấp phát tài nguyên CPU cho mỗi máy ảo của hệ thống một cách độc lập Công cụ sử dụng cơ chế này của Mininet để cấp phát tài nguyên CPU cho Client và các Server.
Thiết kế tổng quan
Công cụ giả lập gồm bốn module chính: Main Module, Server Module, Client Module và Content Provider Module Hình 7 minh họa thiết kế tổng quan của hệ thống Về mặt tổng quát, quá trình chạy bộ giả lập có thể chia thành 3 giai đoạn chính: khởi tạo, mô phỏng và đánh giá
Hình 7: Tổng quan thiết kế các module của bộ giả lập
Tại giai đoạn khởi tại, bộ giả lập đọc và trích xuất thông tin như: network topology, các tham số về tài nguyên mạng, chiến lượng caching và các thiết lập khác từ một file thiết lập JavaScript Object Notation (JSON) Main Module sẽ có nhiệm vụ xây dựng mạng ảo, và khởi tạo các replica servers dựa trên thông tin từ file thiết lập Sau khi đã khởi tạo xong hệ thống CDN và các servers, phụ thuộc vào thiết lập mà cơ chế định tuyến tĩnh hay động sẽ được triển khai cho các routers Đối với bảng định tuyến tĩnh, công cụ sẽ xây dựng dựa trên giải thuật Dijkstra có trọng số để tìm đường đi ngắn nhất giữa các routers Trọng số của các đường dẫn được xác định dựa trên bandwidth và delay của nó Chiến lược định tuyến ở đây được triển khai ở các routers và dùng để mô phỏng cách định tuyến gói tin của nhà mạng ISP Module này cũng có trách nhiệm giám sát trạng thái của mạng ảo và tổng hợp, đánh giá kết quả thu được sau khi kết thúc quá trình mô phỏng
Server Module đóng vai trò là các replica server trong mạng ảo Một hệ thống CDN gồm nhiều replica servers Bên cạnh cơ chế định tuyến ở routers như đã đề cập ở phần trước, một cơ chế định tuyến khác nhằm chuyển hướng yêu cầu của người dùng khi một replica server hiện tại không có nội dung được yêu cầu Thư viện Containernet cung cấp interface kết hợp Docker container với máy ảo của Mininet Nhờ vào cơ chế này, bộ giả lập có thể triển khai lại các ứng dụng tương tự như trong hệ thống thực
Tuy nhiên, một điểm cần lưu ý là nếu đây là một ứng dụng CPU-bound và tốn nhiều thời gian để xử lý, nó có thể ảnh hưởng đến khả năng mô phỏng của công cụ
Trên phần cứng giống nhau, nếu nhiều ứng dụng CPU nặng thực hiện đồng thời, nó sẽ hạn chế số lượng máy ảo và kích thước mạng ảo mà công cụ có thể mô phỏng trên phần cứng đó Ngoài ra, các ứng dụng dịch vụ HTTP phổ biến ngày nay như Apache, Nginx và Haproxy có nhu cầu cao.
Apache, Nginx, thường rất hạn chế trong việc tùy chỉnh và cồng kềnh Luận văn này cũng phát triển một chế độ khác cho Server Module là một HTTP server tùy chỉnh và
Hybrid Cache [52] Bên cạnh đó, nó cũng hỗ trợ 2 chiến lược định tuyến cơ bản là: chiến lược đường đi ngắn nhất tới Origin Server và chiến lược color-based [52] Mỗi replica server này sẽ có một bảng đổi hướng gói tin và có thể dễ dàng tùy chỉnh bảng này cho phù hợp chiến lược của hệ thống CDN Hình 8 minh họa hai loại Server Module như đã mô tả ở trên
Hình 8: Hai lựa chon cho Server Module
Client Module được sử dụng để mô phỏng các hoạt động của người dùng thực
Do hạn chế về mặt tài nguyên phần cứng, một số đặc trưng hành vi của hệ thống thực không thể được mô phỏng trong môi trường ảo Một ví dụ điển hình là cường độ yêu cầu gửi từ người dùng Nhiều người dùng có thể đồng thời gửi yêu cầu tới hệ thống CDN tại nhiều replica servers Để có thể xấp xỉ hành vi này, bộ giả lập cung cấp cơ chế bất đồng bộ khi gửi yêu cầu tới hệ thống Cơ chế này được hiện thực với đa luồng nhằm tăng tốc độ chạy quá trình mô phỏng Cơ chế này gồm 4 bước chính sau:
Bước 1: Để mô phỏng hành vi của người dùng, đầu tiên ta cần phải trích xuất thông tin và hoạt động của họ từ log file của hệ thống thực Thông tin địa chỉ IP sẽ được trích xuất thành thông tin địa lý Thông tin về thời gian gửi tin nhắn sẽ được trích xuất theo đơn vị giây
Bước 2: Với log file thực có thể có tới hàng chục nghìn người dùng hoạt động cùng một lúc trong mỗi giờ trong ngày Việc tạo ra hàng chục nghìn Client ảo là không thực tế trong môi trường giả lập hạn chế Do đó, người dùng sẽ được gom cụm dựa vào thông tin về địa chỉ IP và vị trí địa lý của họ và một số lượng
Client ít hơn Sau khi gom cụm người dùng theo địa lý, ta sẽ gom cụm yêu cầu của họ theo thông tin thời gian gửi thành từng nhóm Mỗi nhóm sẽ tương ứng với một khoảng thời gian nhỏ T
Bước 3: Các Client ảo sẽ gửi song song và bất đồng bộ tất cả yêu cầu của một khoảng T và đợi phản hồi từ hệ thống CDN
Bước 4: Sau khi đã nhận đủ phản hồi hoặc hết thời gian timeout, các Client sẽ thực hiện lại bước 3
Các ứng dụng thực của nhà cung cấp nội dung như là ứng dụng xử lý video, hình ảnh, hay các dịch vụ web cồng kềnh không thể được tái triển khai trên môi trường mô phỏng với hạn chế tài nguyên Thay vào đó, luận văn phát triển một module ít tốn tài nguyên và có khả năng mô phỏng những chức năng chính của nhà cung cấp nội dung Cụ thể hơn, những servers của nhà cung cấp nội dung được mô phỏng bởi một Origin Server đa luồng có trách nhiệm tạo nội dung Khi một Client yêu cầu một nội dung, yêu cầu đó sẽ chứa cả thông tin về kích thước và loại nội dung
Origin Server sẽ chịu trách nhiệm tạo nội dung phù hợp dựa trên thông tin mà yêu cầu gửi tới
Một vấn đề khác về sự khác biệt giữa môi trường thực và môi trường mô phỏng là tài nguyên mạng Trong môi trường thực, các đường mạng có thể có bandwidth cao như trong hệ thống CDN của Việt Nam [4] Trong khi đó, môi trường mô phỏng vì sự hạn chế của thư viện Mininet Mỗi đường dẫn chỉ có thể có bandwidth tối đa 1Ghz Vậy nên ta cần có một cơ chế điều chỉnh bandwidth và traffic thích hợp để có thể giảm tài nguyên mạng nhưng vẫn có thể mô phỏng chính xác nhất hành vi của hệ thống
Cụ thể hơn, ta kí hiệu αlà trọng số tỉ lệ giữa bandwidth thực và bandwidth ảo Trọng số này có thể điều chỉnh tùy thuộc vào sức mạnh phần cứng và quy mô của hệ thống cần giả lập RLC i và VLC i lần lượt là bandwidth của đường dẫn i trong môi cầu Các thông tin về kích thước nội dung, tài nguyên mạng trong môi trường thực đã được trích xuất từ log file Để tính kích thước nội dung, tài nguyên mạng trong môi trường ảo ta có công thức sau:
Bộ giả lập này cung cấp một dashboard thời gian thực hỗ trợ cho việc giám sát hệ thống mạng, tài nguyên của các Client hay Server trong hệ thống CDN Dashboard này được phát triển dựa trên công cụ Netdata [53] Trong phiên bản hiện tại, bộ giả lập chỉ hỗ trợ giám sát cho từng máy ảo riêng lẻ và chưa hỗ trợ tính năng giám sát tổng hợp Hình 9 minh họa một ví dụ về việc giám sát traffic tại nút router 1 Phần trên và dưới của hình 9 tuần tự là traffic vào và ra tại interface eth 1 của router 1 Những thông tin này được cập nhật theo thời gian thực.
Hình 9: Ví dụ 1 chart trong dashboard theo dõi tình trạng các máy ảo.
Độ đo đánh giá chất lượng hệ thống CDN
Công cụ giả lập được phát triển trong luận văn này có thể đánh giá một số độ đo về chất lượng dịch vụ và hiệu năng của hệ thống CDN như sau:
Traffic: Khi một gói tin di chuyển trong mạng của hệ thống CDN, nó sẽ đóng góp vào traffic của cả hệ thống Tổng quát hơn, traffic là lượng dữ liệu di chuyển trong mạng trong suốt thời gian xét đến Do traffic có thể ảnh hưởng bởi kích thước gói tin, số lượng gói, để có thể so sánh được đại lượng này với nhiều thiết lập môi trường, chiến lược cache khác nhau, luận văn sử dụng độ đo normalized traffic Normalized traffic đơn giản là tỉ lệ giữa tổng traffic của mạng trong trường hợp sử dụng cache và trong trường hợp không sử dụng cache Chiến lượng cache càng hiệu quả thì độ đo này càng thấp
Hit Ratio: Khi người dùng gửi yêu cầu một nội dung tới một replica server, nếu server đó chứa nội dung này, trạng thái gói tin gửi sẽ là “HIT” Ngược lại, nó sẽ là “MISS”, và server sẽ chuyển yêu cầu này tới một server khác để yêu cầu nội dung Việc lựa chọn server khi chuyển hướng này phụ thuộc vào chiến lược định tuyến của hệ thống
Latency (độ trễ): Độ trễ là khoảng thời gian mà người dùng phải đợi tử lúc họ gửi yêu cầu tới lúc nhận được phản hồi Đối với những dịch vụ như live streaming, VoD, người dùng thường muốn trải nghiệm độ trễ ổn định và thấp
Maximum Link Utilization (MLU): Link Utilization (LU) đơn giản là mức độ hiệu quả của một đường mạng Nó bằng tỉ lệ giữa traffic trung bình đi qua đường mạng trong một đơn vị thời gian chia cho bandwidth của đường mạng đó Để tính MLU, ta tính LU của mọi đường dẫn mạng trong hệ thống CDN và lấy giá trị LU tối đa Độ đo này là một tiêu chí quan trọng để đánh giá khả năng cân bằng và chia tải của hệ thống Nếu khả năng cân bằng tải của hệ thống tốt thì hệ thống sẽ ổn định trong khung giờ cao điểm của traffic Độ đo này cũng được sử dụng để phát hiện những nút tắt nghẽn của hệ thống Ta kí hiệu L là một tập các đường dẫn của hệ thống LU và MLU được tính như sau:
Jitter: Nhà cung cấp dịch vụ giải trí, đa phương tiện luôn muốn dịch vụ của họ có độ trễ ổn định Một dịch vụ VoD nếu có độ trễ không ổn định có thể gây trải nghiệm không tốt ở phía người dùng Độ đo jitter được sử dụng để đánh giá điều này Độ đo này có thể được đánh giá như sau:
Cấu trúc của file cấu hình hệ thống
Hình 10 là ví dụ cấu hình của một môi trường giả lập hệ thống CDN gồm 3 replica servers và 1 origin server Cụ thể môi trường giả lập có thông tin đơn giản như sau:
Nội dung yêu cầu của người dùng gồm 200 nội dung khác nhau với độ phổ biến theo phân phối Gamma
Chiến lược định tuyến gói tin là chiến lược đường đi ngắn nhất tới origin server gần nhất Nghĩa rằng nếu replica server không có một nội dung được yêu cầu thì nó sẽ chuyển hướng yêu cầu tới một replica server khác gần nhất trên đường đi ngắn nhất giữa nó và origin server
Mỗi nội dung có kích thước bằng nhau là 1024 byte
Số lượng yêu cầu người dùng cho quá trình khởi tạo cache là 100
Số lượng yêu cầu người dùng cho quá trình mô phỏng là 100
Mỗi replica server có một LRU cache với kích thước là 2204857600 byte
Tài nguyên đường mạng giữa các node được thiết lập trong mục “Links”
Hình 10: Ví dụ về file thiết lập môi trường cho bộ giả lập.
Kết luận
Phần này đã giới thiệu kiến trúc, thiết kế, cũng như cách hiện thực các module của công cụ giả lập Công cụ này có thể mô phỏng lại các ứng dụng thực của hệ thống thực Đối với những vấn đề liên quan đến sự bất khả thi trong mô phỏng tài nguyên thực như CPU, mạng, bộ nhớ, cũng đã được đề cập và giải quyết trong chương này Độ tin cậy của công cụ này sẽ được đánh giá trong các thí nghiệm ở chương 6 Tóm lại, các tính năng mà công cụ giả lập cung cấp là:
Khả năng thiết lập môi trường linh động với chi phí thấp, độ tin cậy cao
Cung cấp một dashboard thời gian thực để người dùng có thể theo dõi mạng và tình trạng của các node ảo
Người dùng có thể dễ dàng tái triển khai các ứng dụng thực tế từ hệ thống thực của họ
Công cụ cung cấp nhiều độ đo đánh giá hệ thống như: traffic, hit rate, độ trễ, MLU, jitter, …
BÀI TOÁN TỐI ƯU THIẾT LẬP CDN
Bài toán tổng quát
Trong luận văn này, bài toán tối ưu hóa tài nguyên CDN được xét đến như một bài toán tối ưu đa mục tiêu rời rạc Cụ thể hơn có 2 loại hàm mục tiêu được xét đến là tối đa chất lượng dịch vụ cũng như hiệu năng hệ thống và tối thiểu hóa chi phí đầu tư và có thể có những ràng buộc tối thiểu về chất lượng dịch vụ được giao kèo giữa nhà cung cấp dịch vụ CDN và nhà cung cấp nội dung Mỗi loại hàm mục tiêu có thể có một hay nhiều hàm mục tiêu riêng lẻ tùy thuộc vào bài toán cụ thể cần giải quyết Giả sử, ta có n hàm đánh giá hệ thống ( ) , ( ) , … , ( ) và m hàm tính chi phí đầu tư ( ) , ( ) , … , ( ) Cận dưới của chất lượng dịch vụ cho hàm đánh giá hệ thống thứ i được kí hiệu là c i Những hàm này lấy X là vector đầu vào chứa giá trị rời rạc X là rời rạc do các biến đầu vào xét đến ở đây là các thiết lập hệ thống như giải thuật eviction ở từng server trong hệ thống, số lượng memory, phần trăm CPU usage được cấp cho mỗi server hay vị trí đặt replica server trong hệ thống mạng Telco CDN Các biến thiết lập này thường là các số nguyên, nhị phân hay các giá trị rời rạc Bài toán này được định nghĩa như sau: maximize ( ) ( ), ∀ ∈ {1, … , }, minimize ( ) ( ), ∀ ∈ {1, … , },
Hàm đánh giá hệ thống có thể được tính bằng các mô hình toán học, tuy nhiên các mô hình này thường có ràng buộc nghiêm ngặt khó thực tế Nghiên cứu này sử dụng công cụ giả lập để đánh giá hàm (.) theo phương pháp Bayesian để giảm thiểu thời gian tính toán mà vẫn thu được kết quả khả thi.
Bài toán cấp phát bộ nhớ
Trong bài toán này, ta xét đến một hệ thống CDN có N replica servers Có tổng cộng C nội dung khác nhau Bài toán này gồm hai hàm mục tiêu Mục đích chính của bài toán này là tìm bộ thiết lập tối ưu nhất cấp phát bộ nhớ cho mỗi replica server nhằm tối thiểu hóa chi phí đầu tư và tối thiểu hóa traffic nội mạng Việc tối thiểu hóa hàm tương đương với việc tối đa hóa như trong bài toán tổng quát Bên cạnh traffic nội mạng, bài toán này có thể sử dụng bất kì hàm đánh giá hiệu năng CDN Bài toán sử dụng biến đầu vào , ∀ ∈ {1, … , } là biến số nguyên đại diện cho lượng bộ nhớ được cấp phát tại replica server i Miền giá trị khả dĩ của biến đầu vào là D x Hàm chi phí đơn giản là tổng bộ nhớ được cấp phát của toàn hệ thống Do có nhiều yếu tố khác có thể ảnh hưởng đến hàm bên cạnh biến đầu vào, để đơn giản hóa bài toán, ta có một số giả định giới hạn sau:
Giải thuật định tuyến của các replica servers là giải thuật tìm đường đi ngắn
Chỉ có một original server chịu trách nhiệm tạo nội dung Trong môi trường thực tế, nhà cung cấp nội dung có thể có nhiều original servers ở các vị trí khác nhau
Tất cả replica servers sử dụng giải thuật LRU như giải thuật eviction Đây là giải thuật đơn giản, phổ biến và là mặc định của nhiều HTTP framework
Ràng buộc về cận dưới của hàm cũng được loại bỏ và sẽ xét đến sau Việc giải một bài toán có ràng buộc thường sẽ khó hơn một bài toán không có ràng buộc Ràng buộc đơn giản ở hàm có thể được sử dụng để lọc tập nghiệm Pareto set thu được sau khi giải xong bài toán.Gọi s là kích thước trung bình của nội dung được yêu cầu từ người dung Do bộ nhớ cấp phát cho mỗi máy là số nguyên và ta có thể áp đặt cận trên và dưới nên cho biến đầu vào Hay nói cách khác ta có ⊂ {0, … , }
Lưu ý rằng giải bài toán này bằng phương pháp brute-force là không khả thi Ví dụ, với 4 server trong hệ thống CDN, mỗi server có 10 giá trị khả dĩ cho biến xi, thì tập nghiệm khả dĩ có kích thước là 10^4 Nếu vét cạn sẽ cần chạy 10^4 lần bộ giả lập để thu được kết quả tối ưu.
Bài toán phân bố replica server
Bài toán này nhằm tìm vị trí đặt server và số lượng server cần có dựa trên cơ sở hạ tầng mạng của nhà mạng ISP Đây là bài toán đặt ra khi nhà mạng cần xây dựng cho chính họ một hệ thống Telco-CDN Giả sử hệ thống Telco-CDN này có N routers Hàm đánh giá hệ thống trong bài toán này là traffic nội mạng của hệ thống Bài toán sử dụng biến đầu vào , ∀ ∈ {1, … , } là biến nhị phân đại diện cho việc có đặt replica server tại router i Với = 1, nếu có replica server tại router i và = 0 thì ngược lại Hàm chi phí là tổng bộ số lượng replica server có trong hệ thống CDN Các giả định của bài toán cấp phát bộ nhớ cũng được áp dụng tương tự như trong bài toán này Một điểm đáng lưu ý là bài toán này có thể giải quyết được với kĩ thuật brute-force trong trường hợp mạng Telco-CDN có kích thước nhỏ Vậy nên trong luận văn này, kích thước mạng được xét cho bài toán này sẽ có kích thước lớn (> 10 routers cho mỗi mạng).
Giải pháp
5.4.1 Giải thuật tiến hóa (Baseline)
Một cách tiếp cận truyền thống để quyết bài toán tối ưu hóa đa mục tiêu là các giải thuật tiến hóa di truyền Trong luận văn này, giải thuật NSGA-II được sử dụng như một baseline để so sánh với các giải thuật Bayesian Để sử dụng giải thuật
NSGA-II, việc đầu tiên cần phải mã hóa các biến đầu vào thành dạng vector Gọi X là vector đầu vào tương ứng với N biến đầu vào , ∀ ∈ {1, … , }
Luận văn sử dụng một population với kích thước 100 mẫu để khởi tạo cho giải thuật NSGA-II và chạy 30 thế hệ Tùy thuộc vào bài toán các tham số và phép toán di truyền được thiết lập như sau:
Bài toán cấp phát bộ nhớ: o Phép lai tạo: Luận văn áp dụng phép lai tạo single-point crossover với xác suất lai là 0.9 o Phép đột biến: Vector đầu vào X đột biến bởi phép đột biến uniform mutation Điều đó nghĩa rằng với mỗi phần tử trong X có xác suất là 1/N được thay thế bởi một giá trị được lấy ngẫu nhiên từ miền giá trị đầu vào D x
Bài toán phân bố replica server: o Phép lai tạo: Luận văn áp dụng phép lai tạo binary uniform crossover o Phép đột biến: Vector đầu vào X đột biến bởi phép đột biến bitflip mutation Nghĩa rằng giải thuật sẽ ngẫu nhiên thay đổi giá trị nhị phân của 1 phần tử trong vector đầu vào
Các giải thuật Bayesian được đề cập trong phần 3.5 đều được phát triển cho bài toán đa mục tiêu trong không gian liên tục Việc áp dụng các giải thuật này cho bài toán rời rạc có thể ảnh hưởng đến hiệu năng và khả năng hội tụ của giải thuật Đề xuất Để gia tăng tốc độ tối ưu và thí nghiệm, luận văn sử dụng phiên bản batch evaluation của giải thuật TSEMO và USeMO như trong [39] Cả 2 giải thuật đều có population được khởi tạo bởi giải thuật LHS Giải thuật LHS bản gốc lấy mẫu trên không gian liên tục, để có thể áp dụng cho không gian rời rạc, luận văn thay đổi giải thuật này như trong bài báo [55].
Vấn đề về áp dụng giải thuật Bayesian trong không gian rời rạc cho bài toán đơn mục tiêu đã được phân tích và giải quyết trong nhiều nghiên cứu [40][56] Ý tưởng cải tiến trong luận văn này lấy cảm hứng từ đề xuất của Phuc et al [41] Cụ thể hơn, trong bài báo này, tác giả đã phân tích các tác nhân ảnh hưởng đến vấn đề giải thuật Bayesian thường bị vướng vào các điểm tối ưu cục bộ gây khó khăn khi hội tụ trong không gian rời rạc Một đặc điểm cần lưu ý của giải thuật Bayesian, tác nhân chính ảnh hưởng đến khả năng hội tụ và hiệu năng của giải thuật là việc tối ưu hóa hàm acquisition function Để giải quyết vấn đề này, Phuc et al đã đề xuất giải thuật tìm các tham số của hàm kernel Radial Basis Function (RBF) [23] và acquisition function UCB để cân bằng giữa exploitation và exploration Đề xuất này được áp dụng cho các giải thuật Bayesian với single evaluation Các tham số này được tối ưu và cập nhật khi xảy ra tình trạng nghiệm được đề xuất bị trùng với nghiệm cũ đã tìm được Một khuyết điểm của cách tiếp cận này là khi áp dụng chiến lược này cho bài toán đa mục tiêu có thể rất cồng kềnh và gây tốn thời gian cho quá trình tìm tham số phù hợp Một ví dụ cụ thể là giả sử đối với bài toán đơn mục tiêu giải thuật Bayesian có t tham số cần tối ưu, tuy nhiên trong bài toán k mục tiêu, có thể có hơn ∗ tham số cần tối ưu Bài toán tìm tham số này có thể trở nên phức tạp và khó tối ưu hơn rất nhiều trong ngữ cảnh bài toán đa mục tiêu Để hạn chế số lượng tham số cần tối ưu, đề xuất trong luận văn này chỉ tập trung tối ưu tham số cân bằng việc exploration và exploitation của các acquisition function Cụ thể hơn, luận văn sẽ thí nghiệm ý tưởng với 2 hàm acquisition function là
Đối với bài toán đa mục tiêu, luận văn định nghĩa nghiệm của 2 vòng lặp kế tiếp nhau của giải thuật Bayesian là khi 2 Pareto front của các tập nghiệm này có hình mẫu rất giống nhau và nằm gần nhau Để đánh giá sự tương tự giữa 2 tập Pareto front, luận văn sử dụng độ đo khoảng cách Hausdorff hai chiều, một độ đo thông dụng trong xử lý ảnh để đánh giá sự giống nhau giữa 2 tập điểm ảnh.
2 tập điểm A và B, độ đo Hausdorff một chiều được định nghĩa như sau: Định nghĩa khoảng cách Hausdorff hai chiều được mở rộng như sau:
Nguyên nhân sử dụng khoảng cách Hausdorff như một trong các điều kiện để đánh giá 2 tập Pareto front sinh ra có giống nhau không là do có những trường hợp 2 tập Pareto sinh ra có cùng giá trị Hypervolume Indicator nhưng lại có hình dáng khác nhau Hình 11 là ví dụ minh họa cho vấn đề này
Hình 11: Ví dụ trường hợp 2 Pareto front có cùng Hypervolume Indicator nhưng có hình dáng khác nhau
Giải thuật Bayesian cho bài toán đa mục tiêu được định nghĩa là có xu hướng khoảng cách Hausdorff ít hơn Tham số thường được chọn là rất nhỏ (