1. Trang chủ
  2. » Luận Văn - Báo Cáo

Nghiên cứu ứng dụng ai xây dựng thuật toán phân loại tác vụ dựa trên độ ưu tiên nhằm nâng cao hiệu năng cân bằng tải trên điện toán đám mây

87 4 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Nghiên Cứu Ứng Dụng AI Xây Dựng Thuật Toán Phân Loại Tác Vụ Dựa Trên Độ Ưu Tiên Nhằm Nâng Cao Hiệu Năng Cân Bằng Tải Trên Điện Toán Đám Mây
Tác giả Cao Thành Nam
Người hướng dẫn PGS.TS Trần Công Hùng
Trường học Trường Đại Học Mở Thành Phố Hồ Chí Minh
Chuyên ngành Khoa Học Máy Tính
Thể loại luận văn thạc sĩ
Năm xuất bản 2021
Thành phố Thành Phố Hồ Chí Minh
Định dạng
Số trang 87
Dung lượng 2,46 MB

Cấu trúc

  • 1. Lý do chọn đề tài (13)
  • 2. Lịch sử nghiên cứu vấn đề (15)
  • 3. Mục tiêu và nhiệm vụ nghiên cứu (15)
  • 4. Đối tượng và phạm vi nghiên cứu (15)
  • 5. Phương pháp nghiên cứu (16)
  • 6. Đóng góp mới của của đề tài (16)
  • 7. Cấu trúc của luận văn (17)
  • CHƯƠNG 1: CƠ SỞ LÝ THUYẾT (17)
    • 1.1 Tổng quan về điện toán đám mây (19)
      • 1.1.1 Khái niệm về điện toán đám mây (19)
      • 1.1.2 Mô hình kiến trúc của điện toán đám mây (20)
      • 1.1.3 Mô hình cung cấp dịch vụ của điện toán đám mây (21)
    • 1.2 Tổng quan về cân bằng tải trong điện toán đám mây (23)
      • 1.2.1. Khái niệm về cân bằng tải (23)
      • 1.2.2 Chức năng và ưu điểm cân bằng tải (24)
      • 1.2.3 Tham số đo lường cân bằng tải (26)
      • 1.2.4 Tác vụ và độ ưu tiên của tác vụ trong cân bằng tải (27)
    • 1.3 Bộ mô phỏng điện toán đám mây CloudSim (27)
      • 1.3.1 Giới thiệu CloudSim (27)
      • 1.3.2 Thiết kế các lớp trong CloudSim (28)
      • 1.3.3 Luồng giao tiếp giữa các thực thể lõi trong CloudSim.............................. 19 1.4 Một số thuật toán AI có thể ứng dụng vào phân lớp tác vụ theo độ ưu tiên 20 (31)
      • 1.4.1 Phân nhóm các thuật toán dựa trên phương thức học (33)
      • 1.4.2 Phân nhóm các thuật toán dựa trên chức năng (36)
    • 1.5 Kết luận chương 1 (37)
  • CHƯƠNG 2: CÁC CÔNG TRÌNH LIÊN QUAN (17)
    • 2.1 Giới thiệu chung (38)
    • 2.2 Các công trình quốc tế (38)
    • 2.3 Các công trình ở Việt Nam (47)
    • 2.4 Kết luận chương 2 (50)
  • CHƯƠNG 3: ĐỀ XUẤT THUẬT TOÁN PHÂN LOẠI TÁC VỤ DỰA TRÊN ĐỘ ƯU TIÊN (51)
    • 3.1 Giới thiệu chung (51)
    • 3.2 Mô hình nghiên cứu (51)
    • 3.3 Thuật toán k-NN và ứng dụng vào phân lớp task dựa trên độ ưu tiên (54)
    • 3.4 Thuật toán đề xuất k-CTPA (55)
    • 3.5 Kết luận chương 3 (59)
  • CHƯƠNG 4: KẾT QUẢ THỰC NGHIỆM (60)
    • 4.1 Giới thiệu chung (60)
    • 4.2 Môi trường mô phỏng thực nghiệm (60)
    • 4.3 Thực nghiệm và kết quả mô phỏng (63)
    • 4.4 Kết luận chương 4 (68)
  • TÀI LIỆU THAM KHẢO........................................................................................... 59 (71)

Nội dung

Lịch sử nghiên cứu vấn đề

Nghiên cứu nhiều thuật toán cân bằng tải, những công trình của các tác giả trong và ngoài nước liên quan tới cân bằng tải trong điện toán đám mây Trên cơ sở đó đánh giá được hướng nghiên cứu của luận văn là mới và không trùng với những kết quả đã được công bố trước đó Nội dung này được trình bày chi tiết tại Chương 2.

Mục tiêu và nhiệm vụ nghiên cứu

• Nghiên cứu cân bằng tải trong điện toán đám mây.

• Nghiên cứu bộ tham số đánh giá mức độ ưu tiên các tác vụ trong cân bằng tải Nghiên cứu các thuật toán AI có thể ứng dụng vào phân loại tác vụ theo độ ưu tiên, từ đó đưa ra quyết định phân bổ tác vụ (cân bằng tải) phù hợp nhất ứng với từng loại tài nguyên, mức độ ưu tiên.

• Trên cơ sở đó đề xuất thuật toán cân bằng tải mới (kết hợp thuật toán AI), mô phỏng thực nghiệm bằng công cụ CloudSim.

Phương pháp nghiên cứu

• Tìm các tài liệu, sách, tạp chí chuyên ngành liên quan tới điện toán đám mây, thuật toán cân bằng tải, thuật toán phân loại tác vụ dựa trên độ ưu tiên trên điện toán đám mây, đề xuất cải tiến thuật toán cân bằng tải đã tham khảo.

• Tìm tham khảo tài liệu từ những hội thảo, công trình, đề tài, luận văn thực hiện trong và ngoài nước.

• Tìm tài liệu, sách liên quan tới công cụ CloudSim dùng mô phỏng môi trường cân bằng tải bằng.

• Xây dựng, phát triển mô hình thuật toán cải tiến/đề xuất, sau đó thực nghiệm,phân tích, so sánh và đánh giá kết quả thực nghiệm với một số thuật toán cân bằng tải phổ biến hiện nay.

Đóng góp mới của của đề tài

• Nghiên cứu tổng quát về kỹ thuật cân bằng tải trong điện toán đám mây. Thông qua môi trường mô hình mô phỏng điện toán đám mây sử dụng bộ thư viện CloudSim cài đặt và thử nghiệm, dựa trên kết quả thu được tìm ra điểm hạn chế của thuật toán cân bằng tải và từ đó đề xuất thuật toán cải tiến.

• Điện toán đám mây như một nền tảng cho các tài nguyên máy tính được cung cấp dịch vụ qua mạng internet cho khách hàng Mục đích của nó là chia sẻ các thiết bị và tài nguyên quy mô lớn để tính toán, lưu trữ, thông tin và kiến thức cho các nghiên cứu khoa học Có nhiều công việc được yêu cầu thực hiện bởi các nguồn lực sẵn có để đạt được hiệu suất tốt nhất, tổng thời gian hoàn thành tối thiểu, thời gian phản hồi ngắn nhất,… Do các mục tiêu khác nhau và hiệu suất cao đồng thời hiện nay số lượng khách hàng sử dụng điện toán đám mây đang tăng lên theo cấp số nhân cùng với số lượng lớn yêu cầu của người dùng cố gắng cấp quyền thu thập cho nhiều ứng dụng của môi trường máy tính, chúng ta cần thiết kế, phát triển và đề xuất thuật toán phân loại tác vụ dựa trên độ ưu tiên nhằm cải tiến thuật toán cân bằng hiện có trên điện toán đám mây. Độ ưu tiên các tác vụ là một trong những vấn đề quan trọng trong môi trường điện toán đám mây Vì một số công việc cần được lên lịch trước sau đó tất cả các công việc còn lại có thể chờ trong thời gian dài.

Cấu trúc của luận văn

Phần nội dung chính của luận văn gồm có 4 chương:

CƠ SỞ LÝ THUYẾT

Tổng quan về điện toán đám mây

1.1.1 Khái niệm về điện toán đám mây Điện toán đám mây (Cloud Computing) xuất hiện vào năm 2007 và được nhiều tổ chức nổi tiếng định nghĩa theo nhiều cách khác nhau Ví dụ như:

• Theo Viện Tiêu chuẩn và Công nghệ Mỹ (NIST – National Institute of Standards

& Technology) [3]: “Điện toán đám mây là mô hình dịch vụ cho phép người truy cập tài nguyên điện toán dùng chung (mạng, sever, lưu trữ, ứng dụng, dịch vụ) theo yêu cầu thông qua kết nối mạng, mọi lúc mọi nơi một cách dễ dàng Tài nguyên điện toán đám mây có thể được thiết lập hoặc hủy bỏ nhanh chóng bởi người dùng mà không cần sự can thiệp của nhà cung cấp dịch vụ”.

• Tổ chức An Ninh Mạng và Thông Tin Châu Âu (ENISA) [4] định nghĩa:

“Điện toán đám mây là mô hình cung cấp dịch vụ theo yêu cầu, nó được triển khai trên công nghệ ảo hóa và công nghệ điện toán phân tán”.

• Theo hãng Gartner [5] định nghĩa: “Điện toán đám mây là một công nghệ tính toán có khả năng co giản và mở rộng linh hoạt, các nguồn lực công nghệ có khả năng mở rộng rất lớn và được cung cấp dưới dạng dịch vụ thông là qua công nghệ mạng internet”.

• Theo hãng Forrester Research [6]: “Nền tảng điện toán đám mây không chỉ là cơ sở hạ tầng được chia sẻ cho nhiều đối tượng trên tnternet công cộng, nó được triển khai dưới dạng cơ sở hạ tầng như là một dịch vụ với ba tùy chọn.Mỗi tùy chọn có đặc điểm và tính kinh tế riêng biệt có thể giúp tối ưu hóa các mục tiêu triển khai ứng dụng và dịch vụ”.

Hình 1 1 Mô hình điện toán đám mây (theo 3STechBlog)

Nhìn chung, ta có thể hiểu đơn giản điện toán đám mây là một giải pháp mang tính dịch vụ cho phép cung cấp các tài nguyên CNTT và có khả năng thay đổi linh hoạt theo nhu cầu người dùng “Đám mây – Cloud” là một thuật ngữ minh họa các tài nguyên CNTT có sẵn trên internet, người dùng có thể truy cập tới các tài nguyên đó mà không cần quan tâm tới hạ tầng và công nghệ bên trong nó.

1.1.2 Mô hình kiến trúc của điện toán đám mây

Kiến trúc điện toán đám mây [7], [8] gồm có các thành phần chính:

• Hạ tầng (Infrastructure): Cơ sở hạ tầng bao gồm phần cứng và phần mềm như máy chủ, bộ lưu trữ, thiết bị mạng, phần mềm ảo hóa và các tài nguyên lưu trữ khác cần thiết để hỗ trợ mô hình điện toán đám mây.

• Lưu trữ (Storage): Lưu trữ là một trong những thành phần quan trọng nhất của điện toán đám mây Nó cung cấp dung lượng lưu trữ khổng lồ trên đám mây để lưu trữ và quản lý dữ liệu.

• Quản lý (Management): Phần này giám sát và vận hành các thành phần của điện toán đám mây như ứng dụng, dịch vụ, thời gian thực tài nguyên (Runtime Cloud-cung cấp môi trường thực thi và thời gian chạy cho các máy ảo), lưu trữ, cơ sở hạ tầng và các vấn đề bảo mật khác trong phần phụ trợ và thiết lập sự phối hợp giữa chúng.

• Ứng dụng (application): có thể là phần mềm hoặc nền tảng ứng dụng cung cấp cho người dùng truy cập.

• Dịch vụ (Service): có 3 thành phần chính là Software as a Service (SaaS) – dịch vụ ứng dụng đám mây; Platform as a Service (PaaS) – dịch vụ nền tảng đám mây; Infrastructure as a Service (IaaS) – Dịch vụ hạ tầng đám mây.

• Bảo mật (Security): Bảo mật là một thành phần được tích hợp sẵn bên trong hệ thống, thực hiện cơ chế bảo mật cho các thành phần khác liên quan đến của điện toán đám mây.

Hình 1 2 Mô hình kiến trúc điện toán đám mây [7]

1.1.3 Mô hình cung cấp dịch vụ của điện toán đám mây Điện toán đám mây cung cấp dịch vụ rất đa dạng, các lớp dịch vụ điện toán như cung cấp năng lực tính toán trên lưới, máy chủ hiệu năng cao, máy chủ ảo, không gian lưu trữ, hệ điều hành, công cụ phát triển ứng dụng, ứng dụng quản lý các dịch vụ khá đa dạng, nhưng các mô hình dịch vụ điện toán đám mây được phân chia thành ba nhóm cơ bản [7][8][9][10] như sau:

Saleforce.com, Rackspace, SAP Business ByDesign….Etc

Microsoft Azure, Google App Engine, Force.com…Etc

Amazon’s (EC2), Sun cloud service, Amazone S3, GoGird…Etc

Hình 1 3 Mô hình dịch vụ điện toán đám mây [8]

• Dịch vụ cơ sở hạ tầng (Infrastructure as a Service - IaaS): nhà cung cấp sẽ triển khai hạ tầng phần cứng (máy ảo (VM), network, vùng lưu trữ,…) trên các hệ thống phân tán và cung cấp như một dịch vụ cho người dung Người dùng không thể biết thông tin hạ tầng thực tế bên trong cloud nhưng họ có toàn quyền truy cập và sử dụng tài nguyên mà họ được sở hữu và mua thêm tài nguyên thêm khi có nhu cầu Ví dụ: Amazon EC2/S3, Elastra, Nirvanix, AppNexus, Microsoft Azue.

• Dịch vụ nền tảng (Platform as a Service - PaaS): cung cấp cách thức, các tính năng cần thiết cho việc phát triển ứng dụng trên một nền tảng dịch vụ sẵn có Có

2 dạng hạ tầng được xây dựng phổ biến là hạ tầng ứng dụng trung gian (middleware) dùng trao đổi thông tin và nên tảng máy chủ ứng dụng (application server) được tích hợp sẵn các công cụ nhất định để phát triển ứng dụng [9]. Người dùng phát triển ứng dụng mà không cần quan tâm đến thông số phần cứng và công nghệ phần mềm bên dưới Ví dụ: Google App Engine, Openshilt,

Tổng quan về cân bằng tải trong điện toán đám mây

1.2.1 Khái niệm về cân bằng tải

Cân bằng tải là kỹ thuật phân bổ lưu lượng truy cập (jobs/tasks) đồng đều giữa hai hay nhiều máy chủ có cùng chức năng trong một hệ thống [11], giúp cho hệ thống giảm thiểu tối đa tình trạng một máy chủ bị quá tải và máy khác trong tình trạng không xử lý tác vụ nào Hoặc khi một máy chủ trong hệ thống gặp sự cố, bộ cân bằng tải sẽ phân phối tác vụ của máy chủ đó cho các máy chủ còn lại, nhằm nâng thời gian đáp ứng của hệ thống lên cao nhất và duy trì hiệu suất hoạt động tổng thể của hệ thống tốt hơn.

Hình 1 4 Mô hình Cân bằng tải trong điện toán đám mây [11]

Như vậy cân bằng tải là một phương pháp phân phối khối lượng tác vụ trên nhiều máy chủ hoặc một cụm máy chủ để có thể sử dụng tối ưu các nguồn lực, tối đa hóa thông lượng, giảm thời gian đáp ứng và tránh tình trạng quá tải cục bộ trên một máy chủ tại một thời điểm.

Mục đích của kỹ thuật cân bằng tải là cải thiện hiệu năng tổng thể cho toàn bộ hệ thống; giảm thiểu thời gian đợi của tác vụ; có một cơ chế dự phòng trong trường hợp hệ thống bị lỗi, thậm chí một phần; duy trì sự ổn định và thích ứng sự biến đổi trong tương lai của hệ thống; đảm bảo những công việc nhỏ không bị chờ trong thời gian dài; đồng thời cũng phải tránh tình trạng một máy chủ chịu tải lớn trong thời gian dài trong khi những máy chủ khác chỉ chịu tải nhẹ.

Cân bằng tải trong điện toán đám mây là một phương pháp để phân phối khối lượng công việc khắp một hay nhiều cụm tính toán, hoặc giữa các nguồn lực tính toán đồ sộ trên mạng được phân tán khắp mọi nơi trên Internet Ngày nay, việc triển khai trung tâm dữ liệu qui mô lớn dựa trên cơ sơ hạ tầng mạng và phần cứng tính toán lớn với khả năng xử lý mạnh mẽ Cân bằng tải và kiến trúc cân bằng tải truyền thống sử dụng các máy chủ để thực hiện, nhưng cân bằng tải trong điện toán đám mây khác với phương thức trước đây về cách thực hiện và kiến trúc Nó được mở rộng hơn về quy mô, có thể là cân bằng giữa các Datacenter, nút tính toán lớn, cụm nút tính toán hay giữa các đám mây với nhau.

1.2.2 Chức năng và ưu điểm cân bằng tải

Chức năng của cân bằng tải [12]:

• Giảm lưu lượng mạng đến trang web một cách đáng kể Ngoài ra, thiết bị cân bằng tải có thể là một Proxy hoặc một Firewall ở lớp ứng dụng (Application Layer) và đồng thời là đối tượng đầu tiên có nhiệm vụ chia tải sau khi nhận các yêu cầu Đây được xem như là một trong những chức năng quan trọng của một thiết bị cân bằng tải.

• Chức năng chính của cân bằng tải là phân chia lưu lượng thành những yêu cầu tách biệt và chọn ra máy chủ nào nhận các yêu cầu đó Mỗi thuật toán sẽ có từng cách thức khác nhau để tách các lưu lượng cho mỗi máy chủ.

• Các máy chủ phải được duy trì trong trạng thái sẵn sàng để đảm bảo quá trình liên lạc với các thiết bị cân bằng tải Quá trình này đồng thời giúp kiểm tra việc máy chủ còn hoạt động hay không.

• Các thiết bị cân bằng tải đã sử dụng kịch bản fail-over nhiều lần để củng cố khả năng dự phòng.

• Tiêu chí chia tải của hệ thống bao gồm các khả năng như nhận dạng nội dung phân tán bằng việc đọc URL, chặn cookie và biên dịch XML.

Lợi ích của cân bằng tải [12]:

• Khả năng đáp ứng được tăng cường, giải quyết được vấn đề quá tải ở các máy chủ, đảm bảo hệ thống được mở rộng và hoạt động với hiệu suất tốt nhất.

• Củng cố khả năng dự phòng và độ tin cậy: Ngoài việc nâng cao tính sẵn sàng cho hệ thống, cân bằng tải còn hỗ trợ người dùng các vấn đề về gián đoạn dịch vụ trong lúc xảy ra lỗi tại nơi cung cấp dịch vụ.

• Tính bảo mật: Hệ thống cân bằng tải xử lí các yêu cầu được gửi đến thông qua bộ cân bằng tải, sau đó các yêu cầu này sẽ được chuyển đến các máy chủ bên trong Việc phản hồi cho khách hàng cũng thông qua thành phần cân bằng tải, do đó tính bảo mật được nâng cao vì người dùng cũng không biết chính xác được máy chủ bên trong và cách phân tải được sử dụng Phương pháp này có thể ngăn chặn được các cuộc tấn công mạng và các bên không liên quan đang hoạt động trên các cổng khác bằng cách ẩn thông tin và cấu trúc mạng nội bộ, đồng thời ngăn chặn người dùng giao tiếp trực tiếp với các máy chủ. Ưu điểm của cân bằng tải [12] [13]:

• Tính linh hoạt (Flexibility): Để hiệu năng hoạt động của hệ thống được tối ưu, các máy chủ có thể được bổ sung hoặc loại bỏ bất cứ khi nào cần thiết và đồng thời được duy trì và sửa chữa khi có ít tác động hoặc không có tác động nào tới hệ thống Ngoài ra, cân bằng tải đã sử dụng tập tin cookie, phân tích cú pháp URL, áp dụng các thuật toán tĩnh/động dể trực tiếp điều khiển lưu lượng mạng nhằm tăng hiệu suất chia tải cho hệ thống.

• Tính sẵn sàng cao (High availability): Trong một chu kỳ, hệ thống sẽ kiểm tra liên tục mức hoạt động của các máy chủ và tự động “loại” các máy chủ không phản hồi cũng như thêm máy chủ đó vào hệ thống ngay khi nó hoạt động trở lại Đặc biệt hơn, quá trình này không cần sự hỗ trợ của người quản trị, hoàn toàn tự động và thông qua cơ chế giao tiếp giữa cân bằng tải và các máy chủ.

Vì vậy, tính dự phòng của hệ thống cân bằng tải luôn sẵn sàng khi có bất kỳ thiết bị nào đó bị hỏng.

• Khả năng mở rộng (Scalability): Để phục vụ nhiều máy chủ, cân bằng tải có trách nhiệm chia tải tới một số lượng lớn các máy chủ trong hệ thống Hoạt động này giúp giảm chi phí đáng kể vì chỉ đầu tư khoản chi phí cho nhiều máy chủ nhỏ thay vì tốn chi phí cho các thiết bị chuyên dụng và hệ thống máy chủ lớn Bên cạnh đó, hệ thống có thể thay đổi, tăng, giảm hoặc that thế một cách dễ dàng các máy chủ mà không gây ảnh hưởng đến hiệu suất của hệ thống, giúp cho hệ thống giữ được tính sẵn sàng trong mọi lúc.

1.2.3 Tham số đo lường cân bằng tải

Các thuật toán Cân bằng tải được sử dụng để cải thiện hiệu suất tổng thể của hệ thống đám mây Một số yếu tố chính đánh giá tính thực dụng và hiệu quả của một thuật toán là: Chi phí, khả năng mở rộng, tính linh hoạt và luồng thực thi Trong điện toán đám mây, có nhiều thuật toán cân bằng tải khác nhau đã được đề xuất cho kết quả thông lượng cao và thời gian phản hồi nhanh nhất Về cơ bản, các thuật toán cân bằng tải được phân thành hai: Thuật toán cân bằng tải tĩnh và Thuật toán cân bằng tải động Các tham số đang được ưu tiên xem xét để đo lường trong cân bằng tải hiện nay [14] như sau:

• Thông lượng: được sử dụng để tính toán số lượng các tác vụ mà sự thực thi các tác vụ này đã được hoàn thành Thông lượng nhỏ ảnh hưởng lớn tới cân bằng tải của hệ thống Vì vậy mà trong cân bằng tải nên tăng thông số này để có thể cải thiện hiệu năng của hệ thống.

Bộ mô phỏng điện toán đám mây CloudSim

Mục này được trình bày dựa theo [15] [16]:

CloudSim (Cloud Simulation) là dự án được phát triển tại đại học Melbourne,Australia CloudSim là một bộ công cụ (thư viện) để mô phỏng các kịch bản điện toán đám mây Nó cung cấp các lớp học cơ bản để mô tả các trung tâm dữ liệu, các máy ảo, ứng dụng, người dùng, tài nguyên tính toán, và chính sách quản lý của các bộ phận khác nhau của hệ thống (ví dụ như lập kế hoạch và dự phòng).

Các thành phần trong đám mây có thể được đặt lại với nhau cho người sử dụng để đánh giá chiến lược mới trong việc sử dụng của Cloud như chính sách, các thuật toán lập lịch trình, lập bản đồ và chính sách cân bằng tải CloudSim cũng có thể được sử dụng để đánh giá hiệu quả của các chiến lược từ những quan điểm khác nhau, từ chi phí, lợi nhuận để tăng tốc độ thời gian thực hiện ứng dụng.

1.3.2 Thiết kế các lớp trong CloudSim

CloudSim gồm các thành phần như: Trung tâm môi giới (Broker), trung tâm dữ liệu, máy ảo, các chính sách cung cấp nguồn tài nguyên, các chính sách quản lý các thành phần khác nhau của hệ thống Các thành phần này giúp người dùng có thể đánh giá các chiến lược mới trong việc sử dụng đám mây như các chính sách, thuật toán lập lịch, ánh xạ và chính sách cân bằng tải… Đánh giá hiệu quả chiến lược về chi phí, lợi nhuận để tăng tốc độ thời gian thực thi ứng dụng Các lớp thư viện của CloudSim giúp người dùng dễ dàng mô phỏng thuật toán, chiến lược trong cân bằng tải phục vụ quá trình nghiên cứu của mình.

Thông qua bộ mô phỏng CloudSim đã giải quyết được các vấn đề về việc kiểm tra và thử nghiệm trong điện toán đám mây Ví dụ như tiết kiệm tài nguyên, thời gian, đánh giá được các thuật toán và ứng dụng cân bằng tải trước khi đưa ra môi trường đám mây thực tiễn Như vậy bộ mô phỏng CloudSim giúp cho việc kiểm tra hiệu suất cân bằng tải tốt hơn nhờ vào việc tốn ít thời gian để thử nghiệm và tính linh hoạt của nó

Hình 1.5 Sơ đồ thiết kế lớp trong CloudSim [15]

Hình 1.6 là sơ đồ thiết kế lớp trong CloudSim, mỗi lớp trên sơ đồ trên đều có một vai trò nhất định trong bộ mô phỏng CloudSim Một thành phần CloudSim có thể là một lớp hoặc tập các lớp đại diện một mô hình CloudSim chẳng hạn như Datacenter hay Host. Một Datacenter có thể quản lý một vài Host, các Host này sẽ quản lý các máy ảo trong suốt thời gian hoạt động Host là một thành phần trong CloudSim đại diện cho một máy chủ tính toán vật lý trong đám mây Nó được gán một năng lực xử lý, tính bằng triệu lệnh trên giây gọi là MIPS Ngoài ra còn có các thống số như bộ nhớ, lưu trữ và một chính sách cung cấp để phân bổ các core xử lý tới các máy ảo Host trong CloudSim thực hiện giao diện hỗ trợ mô hình và mô phỏng các nút đơn core và đa core.

BwProvisioner: Đây là lớp trừu tượng mô hình chính sách cung cấp băng thông cho máy ảo Nó có vai trò chính là phụ trách việc phân bổ băng thông mạng tới một tập máy ảo trên các Datacenter.

Cloudlet: Đây là lớp mô hình dịch vụ ứng dụng cơ bản trên đám mây (phân phát nội dung, mạng xã hội và quy trình làm việc doanh nghiệp) CloudSim tổ chức xử lý sự tính toán phức tạp của ứng dụng theo yêu cầu tính toán của nó Mỗi dịch vụ ứng dụng có chiều dài chỉ thị và được gán trước Lớp này được mở rộng để hỗ trợ việc mô hình hóa các nghiên cứu khác và cả những số liệu thành phần cho các ứng dụng giống như giao dịch trong các ứng dụng hướng đối tượng.

Cloudlet Scheduler: Lớp này được mở rộng để thực hiện các chính sách khác nhau để xác định cách chia sẻ nguồn lực xử lý gữa các Cloudlets trong một máy ảo Có hai loại chính sách đó là Space-shared và Time-shared.

Datacenter: Đây là lớp mô hình dịch vụ mức lõi cơ sở hạ tầng được cung cấp bởi các nhà cung cấp điện toán đám mây như Amazon, Azure, App Engine Nó bao gồm một tập các host tính toán Các host này có thể đồng nhất hay không đồng nhất về cấu hình phần cứng.

DatacenterBroker hay CloudBroker: Đây là lớp mô hình như là nhà môi giới, nó chịu trách nhiệm là như là một trung gian đàm phán giữa các nhà cung cấp SaaS và các nhà cung cấp đám mây, được điểu khiển bởi yêu cầu QoS Nó tìm ra những nhà cung cấp dịch vụ đám mây phù hợp bằng cách yêu cầu dịch vụ thông tin đám mây và đảm nhiệm đàm phán trực tuyến để phân bổ các dịch vụ hay các nguồn tài nguyên để có thể đáp ứng được các yêu cầu QoS của ứng dụng.

DatacenterCharacteristics: Lớp này chứa thông tin cấu hình đặc điểm của các nguồn tài nguyên Datacenter.

Host: Đây là lớp mô hình nguồn tài nguyên vật lý như một máy chủ tính toán hoặc máy chủ lưu trữ Nó bao gồm những thông tin quan trọng như là số lượng bộ nhớ và lưu trữ, danh sách core và loại core xử lý, đại diện cho một máy tính đa lõi, một chính sách phân bổ chia sẻ năng lực xử lý giữa các máy ảo và chính sách cung cấp bộ nhớ và băng thông cho máy ảo.

VM: Đây là lớp mô hình máy ảo, được quản lý và lưu trữ bởi một thành phần lưu trữ đám mây Mỗi thành phần máy ảo có thể truy xuất tới một thành phần lưu trữ kèm theo sau là bộ nhớ truy cập, bộ xử lý, kích thước lưu trữ Ngoài một số lớp nêu trên thì còn một số lớp như CloudCoordinator, Network Topology, RamProvisioner,SanStorage, Sensor, VmAllocation Policy… Đây là những lớp cơ bản, khối xây dựng của bộ mô phỏng CloudSim.

1.3.3 Luồng giao tiếp giữa các thực thể lõi trong CloudSim

Hình 1 6 Luồng giao tiếp giữa các thực thể lõi trong CloudSim [16]

Như đã xét ở phần trên ta đã biết Datacenter và DatacenterBroker là hai lớp quan trọng trong bộ mô phỏng CloudSim Datacenter bao gồm một tập các host tính toán, còn DatacenterBroker là nhà môi giới, nó chịu trách nhiệm là trung gian đàm phán giữa các nhà cung cấp SaaS và các nhà cung cấp đám mây Ở hình 1.8: Luồng giao tiếp giữa các thực thể lõi trong CloudSim ta còn đề cập tới CISRegistry Đây là một thực thể dùng để đăng ký nguồn tài nguyên có thể cung cấp, lập chỉ mục và khả năng phát hiện tài nguyên Nó hỗ trợ hai phương thức cơ bản là cho phép thực thể đăng ký chính chúng với CIS và cho phép các thực thể như CloudCoordinator và Broker trong việc phát hiện tình trạng và địa chỉ liên lạc đầu cuối của các thực thể khác Thực thể này thông báo tới các thực thể khác về sự kết thúc mô phỏng.

Bắt đầu mô phỏng, mỗi thực thể Datacenter sẽ đăng ký với CIS Sau đó CIS cung cấp các chức năng đăng ký thông tin, dàn xếp dịch vụ để lập bản đồ người dùng hay môi giới để yêu cầu các nhà cung cấp đám mây phù hợp Tiếp theo Datacenter đại diện cho người dùng tham khảo dịch vụ CIS để có được danh sách các dịch vụ từ các nhà cung cấp đám mây sao cho cho phù hợp với yêu cầu chất lượng dịch vụ QoS, phần cứng và phần mềm của ứng dụng Trong trường hợp ngang hàng nhau DatacenterBroker sẽ triển khai ứng dụng với đám mây được đề xuất bởi CIS Luồng giao tiếp được mô tả từ trước đến nay liên quan tới luồng cơ bản trong một môi trường mô phỏng Một vài thay đổi trong luồng này có thể tùy thuộc vào các chính sách Ví dụ như thông tin từ Broker đến Datacenter có thể yêu cầu từ bộ phận khác của Datacenter, hoặc về số lượng tối đa của máy ảo mà người dùng có thể tạo ra.

1.4 Một số thuật toán AI có thể ứng dụng vào phân lớp tác vụ theo độ ưu tiên

Mục này được trình bày dựa theo [17].

Trí tuệ nhân tạo (Artificial Intelligence - AI) cụ thể hơn là Học Máy hoặc Máy Học (Machine Learning), nó là thành phần nồng cốt trong cuộc cách mạng công nghiệp lần thứ tư AI đang được ứng dụng vào mọi lĩnh vực trong đời sống mà có thể chúng ta chưa nhận ra hết những điều đó Các Tập đoàn công nghệ trên thế giới đã tiên phong trong việc ứng dụng công nghệ AI và tạo ra các “kiệt tác” như xe tự hành như Google, Tesla; tự động nhận diện khuôn mặt trong ảnh (TAG); trợ lý ảo trên các nền tảng ứng dụng và thiết bị điện tử, hệ thống “gợi ý” trên các trang mua sắm, giải trí, tin tức,…được ứng dụng phổ biến trên các website hiện nay;…đó là một vài ứng dụng điển hình trong vô vàn những ứng dụng của AI/Machine Learning và chứng được ứng trong các lĩnh vực trong đời sống và khoa học khác.

Hình 1 7 Mối liên hệ giữa AI, ML và DL (theo NVIDIA.com)

CÁC CÔNG TRÌNH LIÊN QUAN

Giới thiệu chung

Chương này giới thiệu các công trình liên quan, có tính ứng dựng vào trong đề tài gồm các công trình của Việt Nam và trên thế giới Các công trình này đề xuất các kỹ thuật phân bổ tài nguyên, cải thiện việc lập lịch tác vụ trong cloud, tối ưu hóa thời gian đáp ứng và thời gian xử lý,….trong cloud, qua nghiên cứu các công trình ấy giúp cũng cố thêm cơ sở lý thuyết cho đề tài, giúp đề tài có tính chuyên môn cao hơn Ngoài ra các nghiên cứu này cũng giúp phần định hình hướng nghiên cứu của đề tài.

Các công trình quốc tế

Năm 2013, Huankai Chen và các tác giả, đã công bố cải tiến thuật toán “Min-Min Scheduling” (thuật toán lập lịch Min-Min) theo tính ưu tiên người dùng trong việc cân bằng tải trên điện toán đám mây [18] Bài báo này nhấn mạnh về sự mất cân bằng trong tải, là vấn đề chính của đám mây, đồng thời đưa ra thuật toán Min-Min để giảm khoảng trống và tăng hiệu suất sử dụng tài nguyên (LBIMM), và thuật toán nâng cao của nó dựa trên ưu tiên người dùng là thuật toán PA-LBIMM Công trình nghiên cứu này được cài đặt và kiểm nghiệm trên môi trường giả lập MathLab, kết quả đạt được đã cải thiện 20% đối với người dùng đặc biệt (VIP) và tăng hiệu quả làm việc trên cloud thấy rõ.

Trong bài báo này, đề cập tới thuật toán Min-Min truyền thống: là một trong những thuật toán cơ bản trong việc phân bổ nguồn tài nguyên trên đám mây Nó bắt đầu bằng một tập S bao gồm các tác vụ chưa được ánh xạ Từ đó tìm ra tài nguyên R mà tốn ít thời gian nhất để thực hiện tất cả các tác vụ trên Sau đó, tác vụ T mới kích thước nhỏ nhất sẽ được chọn ra và được phân bổ theo nguồn tài nguyên R Cuối cùng, tác vụ T sẽ bị xóa khỏi tập các tác vụ S, và sẽ lặp đi lặp lại cho đến khi hết tác vụ Sơ đồ mã giả của thuật toán Min-Min được thể hiện ở hình sau:

1 For all submitted tasks in the set; Ti

3 Ctij=Etij+rtj; End For; End For;

4 Do while tasks set is not empty

5 Find task Tk that cost minimum execution time.

6 Assign Tk to the resource Rj which gives minimum expected complete time

7 Remove Tk from the tasks set

8 Update ready time rtj for select Rj

9 Update Cij for all Ti

Hình 2 1 Sơ đồ mã giả thuật toán Min-Min [18]

Nghiên cứu chỉ ra rằng, từ kết quả thực nghiệm thì thuật toán Min-Min phải đối mặt với nhiều thách thức, và không đạt được hiệu quả khi sử dụng tối đa nguồn tài nguyên, và dẫn tới việc cân bằng tải không tốt Do không có độ ưu tiên trong quá trình phân bổ, nên một số người dùng đặc biệt (VIP users) sẽ không được đảm bảo cung cấp dịch vụ tốt hơn, dẫn tới người dùng đặc biệt sẽ cảm thấy không thoải mái Thuật toán LBIMM được đề xuất với mục tiêu tối ưu hóa cân bằng tải của Min-Min, nhằm tăng khả năng sử dụng nguồn tài nguyên hiệu quả, với các nguồn tài nguyên có tải nhẹ hay trạng thái chờ thì chia sẻ ra và giải phóng các nguồn lực có tải nặng Song song đó, độ ưu tiên của người dùng cũng được đề xuất trong thuật toán PA-LBIMM nhằm theo dõi và đảm bảo cho các khách hàng quan trọng có thể sử dụng dịch vụ tốt hơn người dùng thông thường Thuật toán LBIMM (Load Balance Improved Min-Min) dựa trên tính chất của thuật toán Min-Min Do điểm yếu nhất của Min-Min là không quan tâm tới các tải của các tài nguyên Do vậy, sẽ có một số tài nguyên luôn bận và một số luôn rảnh LBIMM sẽ cải tiến việc cân bằng tải của Min-Min và giảm thời gian thực thi ở các tài nguyên Bắt đầu giống như Min-Min, nhưng ở bước thứ 2, thuật toán này sẽ chọn những tác vụ có kích thước nhỏ nhất trong nhóm tài nguyên có tải lớn nhất và tính toán ra thời gian hoàn tất các tác vụ đó Và thời gian hoàn tất nhỏ nhất sẽ được so sánh với tính toán ở thuật toán Min-Min Nếu nhỏ hơn Min-Min, thì tác vụ sẽ được giao lại cho nguồn tài nguyên mà nó sinh ra, và thời gian sẵn sàng cho các tài nguyên sẽ được cập nhật Quá trình sẽ được lặp lại cho đến khi không còn tài nguyên nào mà có thời gian thực hiện nhỏ nhất mà tài nguyên đó có tải lớn.

Sơ đồ mã giả như sau:

1 For all submitted tasks in the set; Ti

3 Ctij=Etij+rtj; End For; End For;

4 Do while tasks set is not empty

5 Find task Tk that cost minimum execution time.

6 Assign Tk to the resource Rj which gives minimum expected complete time

7 Remove Tk from the tasks set

8 Update ready time rj for select Rj

9 Update Cij for all Ti

11 //Rescheduling to balance the load

12 Do while the most heavy load resource is considered no need for rescheduling

13 Find task Ti that cost minimum execution time on the heavy load resource Rj

14 Find the minimum completion time of Ti produced by resource Rk

15 If such minimum completion time < makespan

16 Reassign Task Ti to Resource Rk

17 Update the ready time of both Rj and Rk

20.//where Makespan represents maximumcompletion time of all tasks which equals to the completion time of the most heavy load resource

Hình 2 2 Sơ đồ mã giả thuật toán LBMin-Min [18]

Vào năm 2016, Syed Hamid Hussain Madni cùng các cộng sự đã nghiên cứu và đánh giá các kỹ thuật về việc phân phối tài nguyên trên môi trường đám mây [19] Trong bài báo này, các tác giả đã chỉ ra rằng có hai nhân tố chính trong môi trường đám mây là nhà cung cấp dịch vụ và người sử dụng cloud Bên cạnh đó thì các nhà cung cấp dịch vụ cloud nắm giữ trên tay rất nhiều nguồn tài nguyên Các tài nguyên này nằm rải rác ở các trung tâm dữ liệu, và cho người dung thuê hay mướn các tài nguyên theo tiêu chí dùng bao nhiêu thì trả bấy nhiêu nhằm mục đích tối đa hóa lợi nhuận cho nhà cung cấp Mặt khác người dung cloud có nhiều ứng dụng khác nhau với các tải làm việc khác nhau và thuê nguồn tài nguyên cloud để chạy các ứng dụng đó với chi phí thấp nhất Một trong những vấn đề nhức nhối trên điện toán đám mây là quản lý nguồn tài nguyên với mô hình IaaS Quản lý tài nguyên bao gồm phân bổ nguồn tài nguyên, đáp ứng tài nguyên, kiểm soát tài nguyên, khám phá tài nguyên mới, ánh xạ các tài nguyên, mô hình hóa tài nguyên, cung cấp và lên kế hoạch sử dụng tài nguyên Bài báo đã nghiên cứu và chỉ ra các thông số nhằm nâng cao khả năng hoạt động của hệ thống cloud.

Bài báo này đã làm rõ được tầm quan trọng của việc phân bổ các nguồn tài nguyên trên đám mây, phải có kế hoạch rõ ràng cho việc phân bổ tài nguyên, chiến lược và thuật toán tối ưu nhằm phân phối cũng như chuyển các nguồn tài nguyên nhằm hỗ trợ tốt nhất cho cả nhà cung cấp dịch vụ và người dùng.

Hình 2 3 Lưu đồ phân bổ tài nguyên trên cloud [19]

Về cân bằng tải, là một phương pháp phân bổ nguồn tài nguyên, các tác giả cũng nhấn mạnh về cách tiếp cận này Việc phân bổ các máy ảo, tối ưu hóa nguồn tài nguyên và chính sách cân bằng tải đóng vai trò vô cùng quan trọng trong IaaS Tác giả bài báo đã đề cập tới hai thuật toán chính là thuật toán phân bổ các VMs và thuật toán phân bổ các cloudlet Cả hai thuật toán này đều được thiết kế, cài đặt và mô phỏng trên CloudSim Mục tiêu là giảm thiểu chi phí của việc cung cấp các máy ảo, mà vẫn đáp ứng đầy đủ nhu cầu người dùng Trong đó, có Amazon EC2, đã áp dụng các thuật toán này và thực nghiệm với dự án Boinc.

Năm 2016, N Sasikaladevi thuộc trường đại học SASTRA của Ấn Độ đã nghiên cứu thuật toán lập lịch tác vụ tối thiểu trong điện toán đám mây [20] Ông chỉ ra rằng, điện toán đám mây cung cấp môi trường kinh doanh mạnh mẽ và theo yêu cầu Nó được xây dựng trên đỉnh của các trung tâm dữ liệu ảo hóa Ảo hóa cung cấp cơ sở hạ tầng linh hoạt cho đám mây Bài viết này đề xuất một cơ chế lập lịch tác vụ với thời gian xử lý tối thiểu (Makespan) có tên MMSF và thuật toán lập lịch các tác vụ makepan tối thiểu có tên là MMA Thuật toán này được phát triển với hai mục tiêu: giảm thiểu tổng số makepan và tối đa hóa việc sử dụng máy ảo Vấn đề lập lịch tác vụ được coi là vấn đề tối ưu hóa đa mục tiêu Nó được giải quyết bằng cách sử dụng các kỹ thuật tối ưu hóa Kết quả thực nghiệm cho thấy MMA vượt trội hơn các thuật toán lập lịch tác vụ truyền thống dựa trên tổng makespan và tổng mức sử dụng máy ảo.

Makespan là tổng thời gian dành cho các tài nguyên để hoàn thành việc thực hiện tất cả các nhiệm vụ Việc sử dụng VM được định nghĩa là mức độ sử dụng tài nguyên trong đám mây Thông thường, Makespan là đề xuất ngược với tỷ lệ sử dụng. Thuật toán lập lịch hiệu quả sẽ lên lịch các tác vụ theo cách làm cho makespan đạt mức tối thiểu và mức sử dụng VM là tối đa.

Mỗi VM chỉ có thể xử lý một nhiệm vụ tại một thời điểm Không có hai VM xử lý cùng một nhiệm vụ tại một thời điểm Nhiệm vụ được coi là tiền giả Tất cả các nhiệm vụ đều có tầm quan trọng như nhau Mục đích là để giảm thiểu makepan và tăng tỷ lệ sử dụng máy ảo.

Trong bài báo này, tác giả đưa ra khung lập lịch Makespan tối thiểu – Minimum Makespan Scheduling Framework (MMSF) và thuật toán lập lịch tối thiểu – Minimum Makespan Scheduling Algorithm (MMA).

Vấn đề chính trong điện toán đám mây là sử dụng ít tài nguyên Do đó, tối đa hóa việc sử dụng tài nguyên đồng thời giảm tối thiểu Makespan là nhiệm vụ đầy thách thức Khung lập lịch tối thiểu trong bài viết này được đề xuất và nó được hiển thị trong hình 2.4.

Hình 2 4 Khung lập lịch Makespan tối thiểu MMSF [20]

Khi nhận các tác vụ từ người dùng khác nhau, các tác vụ được giữ trong hàng đợi tác vụ Các nhiệm vụ được coi là một nhiệm vụ độc lập và ưu tiên như nhau Số lượng tác vụ là n, số lượng máy ảo là m Các nhiệm vụ của n được lên lịch trên các máy ảo với tốc độ tối thiểu và tốc độ sử dụng tài nguyên tối thiểu.

Máy ảo có sẵn được phân bổ với các nhiệm vụ cho đơn vị thời gian Một thuật toán MMA được sử dụng để sử dụng tất cả các VM một cách hiệu quả Tất cả các VM đang hoạt động và các tác vụ được thực thi bởi m VM song song Thuật toán này làm giảm tổng số makepan bằng cách phân bổ hiệu quả các tác vụ cho tất cả các VM Độ phức tạp thời gian của thuật toán MMA là (log ( )).

Với các kết quả khả quan mà bài báo đem lại, bài báo giúp cho luận văn này định hướng tốt và mở ra nhiều triển vọng trong việc nâng cao hiệu năng và tính chính xác của thuật toán lấy Makespan làm yếu tố xử lý Còn rất nhiều hướng đi và cách xử lý để nâng cao chất lượng cân bằng tải trên cloud với yếu tố Makespan.

Cuối năm 2016, tác giả V.Krishna [21] đã công bố kết quả phân tích hiệu năng thuật toán cân bằng tải MOACA (Multi Objective Ant Colony Algorithm) trên môi trường cloud được cải tiến từ thuật toán ACO (Ant Colony Optimization) đã được đề xuất trước đó, chỉ ra các hạn chế MOACA đánh giá tối ưu về mặt chi phí so với thuật toán FCFS (First Come First Serve), GA (Genetic Algorithm).

Bảng 2 1 Kết quả mô phỏng thuật toán FCFS, GA và ACO [21]

Hình 2 5 Các quan sát thực nghiệm của FCFS, GA và ACO [21]

Các công trình ở Việt Nam

Hiện nay trong nước cũng có rất nhiều công trình khoa học nghiên cứu, đề xuất về kỹ thuật cân bằng tải trên điện toán đám mây được các nhà khoa học, nghiêm cứu sinh thực hiện, cụ thể như sau:

Tác giả Lê Văn Sơn trường Đại học Đà Nẵng, đã nghiên cứu và đưa ra các vấn đề cung cấp tài nguyên máy ảo trên cơ sở hạ tầng tính toán đám mây [25] Tác giả cũng đã chỉ ra vấn đề tài nguyên là cốt lõi của điện toán đám mây Đối với dich vụ IaaS (tức là dịch vụ cung cấp hạ tầng) bao gồm các máy chủ được gom nhóm để phục vụ các dịch vụ liên tục nhằm đạt hiệu quả mong muốn Tác giả cũng đưa ra mục tiêu nâng cao hiệu suất cho IaaS là đáp ứng nhu cầu sử dụng, sử dụng tốt nhất tài nguyên trên đám mây Tác giả đã tổng hợp về các vấn đề ảo hóa, các kỹ thuật ảo hóa và các dịch vụ kèm theo như di trú máy ảo để mong muốn đạt được hiệu suất trên đám mây.

Một nghiên cứu khác của tác giả Trần Công Hùng cùng các cộng sự vào năm 2017, đó là cân bằng tải dựa trên lý thuyết trò chơi sử dụng cho các máy ảo trên đám mây dựa vào thuật toán tối ưu hóa theo đàn kiến (Ant Colony Optimization) [26] Trong nghiên cứu này, các tác giả đã nêu ra giải pháp cho các máy ảo để đảm bảo được cân bằng giữa các mục tiêu cho các nhà cung cấp dịch vụ và cho cả người dùng, dựa trên lý thuyết trò chơi Ý tưởng chính là sử dụng thuật toán meta-heuristic Ant Colony Optimization (ACO) dựa trên trạng thái cân bằng Nash Trong phần thực nghiệm, các tác giả đã dựa vào các thuật toán Ant System, Max-Min Ant System, Ant Colony System để ứng dụng và giải quyết vấn đề (theo lý thuyết trò chơi) Kết quả thực nghiệm cho thấy việc hiệu chỉnh hệ số tương thích nhằm đạt được cân bằng tải trong việc cấp phát các máy ảo Đề xuất đã tìm chiến lược cấp phát tài nguyên tối ưu theo tiêu chí công bằng và hiệu quả.

Năm 2018, tác giả Trần Công Hùng cùng cộng sự đã đề xuất cải tiến thuật toán Throttled [27] nhằm tối ưu hóa thời gian đáp ứng và thời gian xử lý trên các máy ảo trong điện toán đám mây Các bước thực hiện của thuật toán như sau:

- Bước 1: Trình cân bằng tải Throttled cải tiến thực hiện cân bằng tải bằng cách cập nhật và duy trì hai bảng chỉ mục:

• Chỉ mục khả dụng (Available Index) chứa thông tin các máy chủ ảo (VM), trạng thái của máy ảo khả dụng là ‘0’ (Available Index=0).

• Chỉ mục bận (Busy index) chứa thông tin các máy chủ ảo (VM), trạng thái máy ảo không khả dụng ‘1’ (Busy Index=1).

Lúc bắt đầu, tất cả các máy chủ ảo (VM) được cập nhật trong bảng “Chỉ mục khả dụng (Available Index)” và bảng “Chỉ mục bận (Busy Index)” là rỗng.

- Bước 2: Bộ điều khiển dữ liệu trung tâm (Data Center Controller) nhận được một request mới.

- Bước 3: Bộ điều khiển dữ liệu trung tâm (Data Center Controller) truy vấn tới trình cân bằng/danh sách tải thuật toán Throttled cải tiến để phân bổ tiếp theo.

- Bước 4: Trình cân bằng tải thuật toán Throttled cải tiến phát hiện và gửi ID máy chủ ảo (VM) từ trên xuống trong bảng “Chỉ mục khả dụng (Available Index)” của bộ điều khiển trung tâm (Data Center Controller):

• Bộ điều khiển dữ liệu trung tâm (Data Center Controller) gửi yêu cầu đến máy chủ ảo được chỉ định bằng ID đó.

• Bộ điều khiển dữ liệu trung tâm (Data Center Controller) thông báo cho bộ cân bằng tải thuật toán Throttled cải tiến về một phân bổ mới.

• Trình cân bằng tải thuật toán Throttled cải tiến sẽ cập nhật ID máy chủ ảo (VM) này vào bảng “Chỉ mục bận (Busy Index)” và chờ yêu cầu mới từ Bộ điều khiển dữ liệu trung tâm (Data Center Controller).

Trong trường hợp, nếu bảng “Chỉ mục khả dụng (Available Index)” là rỗng (tất cả các máy chủ ảo VM không khả dụng).

• Trình cân bằng tải thuật toàn Throttled cải tiến sẽ trả về giá trị là -1 cho Bộ điều khiển dữ liệu trung tâm (Data Center Controller).

• Bộ điều khiển dữ liệu trung tâm (Data Center Controller) sắp xếp request.

- Bước 5: Đối với máy chủ ảo (VM), sau khi xử lý yêu cầu và bộ điều khiển dữ liệu trung tâm (Data Center Controller) nhận được phản hồi từ máy chủ ảo, nó sẽ thông báo cho trình cân bằng tải thuật toán Throttled cải tiến, sau đó cập nhật lại bảng “Chỉ mục khả dụng (Available Index)”.

-Bước 6: Nếu có nhiều yêu cầu, bộ điều khiển dữ liệu trung tâm thực hiện lại Bước

3 và tiến trình được lặp lại cho đến khi bảng “Chỉ mục khả dụng (Available Index)” là rỗng.

Với thuật toán đề xuất trên sẽ giúp việc dò tìm máy chủ ảo đang sẵn sàng ‘0’ với kích thước bảng “Chỉ mục khả dụng (Available Index)” thay đổi linh động hơn so với thuật toán Throttled, cải tiến này giúp cho việc tăng hiệu suất xử lý cho hệ thống.

Bên cạnh đó, còn có rất nhiều công trình nghiên cứu và bài báo trong nước được công bố rộng rãi về kỹ thuật cân bằng tải trên đám mây, tuy nhiên hầu như các công trình nghiên cứu chỉ dừng ở mô hình thực nghiệm, chưa được áp dụng vào thực tế công nghệ cloud hiện tại là vì tính chất, quy mô của đề tài nên chỉ dừng ở mức nghiên cứu đề xuất.

Kết luận chương 2

Chương 2 đã trình bày một số công trình nghiên cứu liên quan trong nước và quốc tế, các nghiên cứu về điện toán đám mây và các kỹ thuật cân bằng tải trên môi trường điện toán đám mây, giúp hiểu rõ hơn về cân bằng tải trên môi trường điện toán đám mây, hiểu được những ưu nhược điểm của các thuật toán hiện nay, và đưa ra các thuật toán cải tiến với mục đích là nâng cao hiệu suất cân bằng tải, từ những đề xuất đó giúp làm cơ sở cho việc đề xuất thêm kỹ thuật mới, ứng dụng thuật toán trong AI trong cân bằng tải Chương kế tiếp sẽ trình bày đề xuất về thuật toán phân loại tác vụ dựa trên độ ưu tiên để phục vụ cho bài toán cân bằng tải cho việc nâng cao hiệu năng cân bằng tải trên môi trường điện toán đám mây.

ĐỀ XUẤT THUẬT TOÁN PHÂN LOẠI TÁC VỤ DỰA TRÊN ĐỘ ƯU TIÊN

Giới thiệu chung

Hiện nay, các thuật toán trong cân bằng tải [23] [24] [28] đã được nhiều bài báo nêu lên và đề xuất cải tiến nhằm nâng cao hiệu năng cân bằng tải Với ý tưởng áp dụng một số thuật toán phân lớp (clasification) trong AI, cụ thể ở đây là sử dụng thuật toán kNN (k Nearest Neighbours), kết hợp với độ ưu tiên của Task/Job tương ứng với các request, đưa ra ý tưởng cân bằng tải mới, nhằm phục vụ hiệu quả hơn cho nhà cung cấp dịch vụ và người dùng cloud Với mục tiêu trên, chương này sẽ trình bày ý tưởng và đề xuất xây dựng thuật toán phân loại tác vụ dựa trên độ ưu tiên nhằm nâng cao hiệu năng cân bằng tải trên môi trường điện toán đám mây bao gồm hệ thống host/data center và các máy ảo.

Mô hình nghiên cứu

Mô hình nghiên cứu sử dụng thuật toán phân lớp kNN (k Nearest Neighbours) nhằm mục đích loại các task tương ứng với các Request dựa trên độ ưu tiên xử lý task đó Độ ưu tiên ở đây được tính toán dựa trên mức độ tiêu thụ năng lượng của task (Power consumed), mức độ sử dụng CPU (CPU Usages), mức độ sử dụng RAM (RAM Usages) và chi phí (Costing) để thực hiện task đó trong cloud Sau khi phân loại các jobs/tasks theo độ ưu tiên, bộ cân bằng tải sẽ phân bổ các request có task đó với độ ưu tiên cao hơn vào những máy ảo/host có năng lực xử lý tốt hơn, tức là mức độ rảnh task cao Từ đó, phân bổ request có nhu câu xử lý nhiều vào máy ảo/host có mức độ hoạt động thấp nhất Với cách tiếp cận này, thuật toán đề xuất sẽ cải thiện thời gian xử lý cân bằng tải trên cloud, và ứng dụng trên môi trường cloud theo thời gian thực Trong luận văn này tạm đặt tên thuật toán là k-CTPA (k-NN Classification of Task-Priority Algorithm).

- Giảm thiểu rủi ro cho hệ thống máy chủ.

- Giảm thiểu thời gian sống cho các yêu cầu trong điện toán đám mây.

- Hạn chế tối đa sự mất cân bằng tải giữa các máy ảo, ngăn chặn mất cân bằng tải.

- Giúp giải quyết các yêu cầu nhanh hơn, phân loại được các tác vụ (Task) với các độ ưu tiên khác nhau tương ứng với các yêu cầu (Request), sử dụng hiệu quả hơn nguồn tài nguyên trên cloud, đáp ứng tốt nhất cho người dùng.

- Phân lớp được các yêu cầu (Coming Request) tiếp theo tương ứng với độ ưu tiên đã được phân lớp ở trên, từ đó có kế hoạch đưa các yêu cầu này sang những máy ảo/host có khả năng xử lý tải tương ứng.

- Sắp xếp các máy ảo/host/tài nguyên theo mức độ sử dụng từ cao đến thấp để phân bổ task cho hợp lý.

- Bộ cân bằng tải sẽ biết trước các dịch vụ nào đang chạy trên các máy ảo vào bất cứ thời điểm nào.

- Đề xuất này tập trung vào mô phỏng dịch vụ Web (Web Service), các web server (máy ảo) sẽ biết trước thời gian xử lý của từng dịch vụ chạy trên web và trên từng máy ảo.

- Hai máy ảo có cấu hình tương đương nhau về RAM, vi xử lý, và I/O thì thời gian thực thi của các dịch vụ sẽ không mấy là khác nhau.

- Trong các mô hình nghiên cứu trước đây thì bộ cân bằng tải sẽ thực thi các tác vụ theo mô hình như sau:

Hình 3 1 Sơ đồ mô hình nghiên cứu trên Cloud

- Thuật toán đề xuất là nơi xử lý các yêu cầu và đưa vào các máy ảo phù hợp để cân bằng tải.

- Trong mô hình này sử dụng Regression (dựa vào các tính chất của request) để phân loại các request đầu vào, dự báo các thông số cloud cần để xử lý task mà request này đem tới (Power, CPU Usage, RAM Usage). Để phân lớp với kỹ thuật Regression này, thuật toán sử dụng bộ data trong lịch sử cloud được lưu lại (sử dụng dữ liệu gần nhất).

- Sau đó với số liệu (Power, CPU Usage, RAM Usage) mà cloud cấn có để xử lý Task/Job tương ứng, đã được tính toán ở trên, thuật toán sử dụng tiếp theo là k-NN để phân lớp Task/Job trong đó bộ dữ liệu là dữ liệu thực đã lưu lại kết hợp với dữ liệu dự đoán mới tính toán ra ở trên, phân lớp các các vụ dựa vào độ ưu tiên, từ đó phân bổ vào các máy ảo tương ứng.

- Mô hình này là mô phỏng thuật toán một cách tự nhiên, và lên kế hoạch cho các yêu cầu tiếp theo nhằm không bị mất cân bằng tải Theo thuật toán này sẽ giảm được các tải liên lạc giữa máy ảo và các nguồn tài nguyên hiện có, vì vậy giảm được băng thông và thông lượng không cần thiết, tăng phục vụ cho yêu cầu người dùng.

Thuật toán k-NN và ứng dụng vào phân lớp task dựa trên độ ưu tiên

- Độ ưu tiên của tác vụ/Task

Trong máy tính, một task được thực hiện sẽ tiêu hao nguồn năng lượng nhất định, kèm theo đó là mức độ sử dụng CPU của máy tính, mức độ sử dụng bộ nhớ tạm thời RAM,… và tất cả đều được tính toán ra chi phí thực hiện công việc đó theo thời gian hoặc MIPS Chính vì thế, bài luận văn này dựa vào các đặc điểm đó để tính toán ra độ ưu tiên của task mà máy tính phục vụ Task có mức tiêu hao năng lượng cao hơn (Power consumed), mức độ sử dụng CPU (CPU Usage) lớn hơn, cũng như mức độ sử dụng RAM (RAM Usage) nhiều hơn, hoặc có chi phí (Cost) cao hơn thì sẽ có độ ưu tiên cao hơn và ngược lại. Độ ưu tiên trong bài luận văn này là đại lượng 3 chiều, tổng hợp từ Power (Power Consume), CPU và RAM

- Phân lớp tác vụ/task dựa theo độ ưu tiên

Dựa vào bộ dữ liệu trong quá khứ khi xử lý những task đầu tiên, ta sử dụng k-

NN để phân lớp độ ưu tiên cho các task tiếp theo Tương ứng với mỗi yêu cầu (Request) sẽ có một task mà máy tính cần phải thực hiện để phục vụ người dùng. Chính vì thế, bất kỳ một request được gửi đến cloud đều có thể được phân lớp dựa trên task tương ứng của nó.

Hình 3 2 Tính toán độ ưu tiên của các request Cloud

Thuật toán đề xuất k-CTPA

Thuật toán đề xuất k-CTPA (kNN Classification Task Priority Algorithm), dựa vào yếu tố độ ưu tiên của tác vụ (Task Priority được mô tả ở trên) tương ứng với các request, kèm theo đó là một số thuộc tính khác, ta sử dụng thuật toán k-NN để phân lớp các request này, từ đó ta biết cách phân bố tài nguyên cho các request này một cách tối ưu nhất Song song, các tài nguyên (máy ảo/ host) được sắp xếp theo mức độ sử dụng tăng dần Kết hợp với đánh giá số lần sai, và sai số, ta cải thiện thuật toán bằng cách áp dụng máy học vào, tuy nhiên, việc áp dụng này sẽ ít diễn ra vì có sai số cho phép.

Dựa vào tham khảo từ tài liệu [14], luận văn này xin đề xuất thuật toán gồm 3 nhóm module chính:

(1) Module tính toán ra các thông số của request bằng thuật toán Regression:

Trong module này, thuật toán Regression sẽ dựa vào các thuộc tính của request và các yếu tố mà tính toán ra các thông số sử dụng tài nguyên của Task/job tương ứng với request đó Các thuộc tính bao gồm: Size, Response Length, Max Length, …

Po New = Regression(Request, Power) CPU New = Regression(Request, CPU) RAM New = Regression(Request, RAM) Trong đó X i = là các thuộc tính của Request khi gửi lên cloud

Request = { X 1 , X 2 ,…, X n }, với X i là các thuộc tính của Request

Po New : Power dự đoán Power new: Power ghi nhận được trong quá khứ

CPU New : CPUdự đoán CPU new: CPU ghi nhận được trong quá khứ

RAM New : RAM dự đoán RAM new: RAM ghi nhận được trong quá khứ Ở đây có thể sử dụng nhóm 3 yếu tố {Po, CPU, RAM} để tổng hợp tính toán, hoặc tính toán riêng biệt từng đại luợng.

(2) Module phân lớp tác vụ theo độ ưu tiên:

Trong module này sẽ sử dụng thuật toán phân lớp k-NN (với k=3~5) để phân lớp request đang xét, dựa vào tính chất của độ ưu tiên các tác vụ Việc phân lớp này sẽ thông qua việc xây dựng mô hình phân lớp k-NN của các Request đã được xử lý trong quá khứ, và đánh nhãn tương ứng từ 1 tới 5, là tương ứng với mức độ ưu tiên từ 1 tới 5 Mức 1 là độ ưu tiên thấp nhất, mức 5 là độ ưu tiên cao nhất Dựa vào mô hình này, ta phân lớp được Request đang cần xử lý, xác định được label tương ứng (từ 1 đến 5) Sau đó ta chọn ra máy ảo có thứ tự tương ứng 1 đến 5 Thứ tự này được sắp xếp dựa trên mức độ rảnh hay ít tải của máy, tức là mức 1 là máy tải nhiều nhất, và mức 5 là máy tải ít nhất, rãnh nhất.

VM select = k-NN(Po, CPU, RAM);

VM select là máy ảo được chọn ra k-NN là hàm phân lớp từ mô hình KNN đã được xây dựng dựa trên bộ dữ liệu quá khứ của các request

Po : là Power dự đoán tính toán từ Module 1 CPU: là mức sử dụng CPU dự đoán tính toán từ Module 1 RAM: là mức sử dụng RAM dự đoán tính toán từ Module 1

(3) Module phân bổ các dịch vụ (chọn máy ảo)

Module này có nhiệm vụ phân bổ các yêu cầu đến các máy ảo thông qua loại request và máy ảo phù hợp Nếu một yêu cầu được gửi tới thì yêu cầu này được phân loại bởi module 1, và các VM đang xét kể cả VM không tải cũng được phân cụm theo module 2 Ở đây, Module 3 có nhiệm vụ phân bổ Request đang xét vào máy ảo đã tìm thấy từ Module 2, và từ đó xử lý cho request đó, và trả về kết quả của request, lưu vào lịch sử bộ nhớ các request gần nhất đã xử lý, làm dữ liệu đầu vào cho quá trình xây dựng mô hình KNN ở Module 2.

Hình 3 3 Sơ đồ thuật toán đề xuất k-CTPA

1 For each Request in CloudRequests

3 Priority = {Po, CPU, RAM} new = Regression(T 1 ,T 2… T n ); // Module 1

4 Request.PriorClass = k-NN(Priority); //k-NN là mô hình phân lớp tác vụ

5 For each VM in VMList

6 If isFitSituation(Request.PriorClass , VM)

Trong đoạn mã giả trên của thuật toán k-CTPA, thuật toán sẽ sử dụng một vòng lặp để lắng nghe tất cả các Request có trong danh sách hàng đợi các Request được gửi lên bộ cân bằng tải (ở đây là CloudRequests ) Khi nào hết danh sách này thì sẽ không phân bổ nữa Trong đó, thuật toán sử dụng biến isLocated (kiểu luận lý) để làm cờ đánh dấu rằng Request đang xét đã được phân bổ hay chưa Mới vào vòng lặp, biến isLocated được tạo giá trị mặc định là false Sau đó, thuật toán tính toán ra vector Priority với 3 chiều là PowerConsume, CUP Usage và RAM Usage (Priority ={Po, CPU, RAM}) cần dùng để thực hiện Request đang xét Việc tính toán này dựa trên lịch sử số liệu của các Request trước đó T 1 , T 2 ,… T n , trong đó n là số request đã được lưu T i là các đại lượng của Request thứ i được lưu lại, T i bao gồm các đại lượng đầu vào: MaxLength, FileSize, OutputSize…; và các đại lượng xử lý do Cloud đã thực hiện để xử lý Request thứ i bao gồm

PowerConsume, CPU Usage và RAM Usage Dữ liệu n Request trong lịch sử này sẽ xây dựng nên hàm Regression (hồi quy tuyến tính) để dự báo và tính toán ra các đại lượng

Priority cho Request đang xét Sau đó, dùng dữ liệu Priority này để chạy k-NN phân lớp cho Request đang xét Và lớp này được gán vào thuộc tính PriorClass của Request Sau khi chạy ra thông số Priority cho Request, thì thuật toán duyệt vòng lặp để duyệt qua các máy ảo đang có trên cloud Tương ứng với từng máy, thuật toán xem xét máy ảo đó có phù hợp với độ ưu tiên của Request đang xét hay không, thông qua hàm isFitSituation(Request.PriorClass, VM) Nếu thỏa thì sẽ phân bổ request đang xét vào máy ảo đó AllocateRequestToVM(VM, Request), và đồng thời gán giá trị biến isLoacated=true Nếu trường hợp không tìm ra máy ảo nào phù hợp, thì sẽ kết thúc vòng lặp Lúc này, chạy hết vòng lặp và biến isLocated vẫn mang giá trị false, và lúc này Request chưa được phân bổ Vì vậy, thuật toán phân bổ Request này vào máy ảo đầu tiên của danh sách máy ảo thông qua đoạn lệnh VM = VMList.getSelectedVM() Việc phân bổ này đảm bảo nếu có request nào được dự báo không nằm trong dữ liệu của thuật toán, vẫn được phân bổ và xử lý phục vụ người dùng.

Theo thuật toán đề xuất, đầu ra của phân lớp request được tính toán chính là thời gian xử lý xét, và không biết được giá trị max hay giá trị min, nên có thể lưu lại 1 số lượng nhất định thời gian xử lý của các request trước nhằm thực hiện tính toán và phân bổ, số lượng này chính là n được nhắc đến trên sơ đồ mã giả trên Chính vì thế, luận văn này xin được sử dụng lại phương pháp loại suy hoặc newton để tính toán ra các máy ảo đang thuộc lớp nào Cụ thể, là lấy max và min của thời gian xử lý của n Request trong quá khứ tương ứng với các máy ảo xử lý, từ đó chia thành k phần bằng nhau (tương ứng với k lớp của k-NN), và phân lớp cho máy ảo tương ứng từ 1 tới k Từ đó, phân bổ Request được phân lớp bởi k-NN vào đúng máy ảo có phân lớp k (phân lớp này là loại suy newton) phân bổ phù hợp Tuy nhiên sẽ hiệu chỉnh một số thay đổi, hoặc đưa vào các hệ số và tham số, tùy thuộc vào kết quả thực nghiệm.

Phương pháp đánh giá thuật toán k-CTPA

Các kết quả thu được từ thuật toán đề xuất đã đáp ứng các mục tiêu, chẳng hạn như giới hạn số lượng yêu cầu xếp hàng để phân phối, cải thiện thời gian xử lý và thời gian phản hồi của đám mây trung tâm so với bốn thuật toán cũ Điều này cũng có nghĩa là với thuật toán được đề xuất, hiệu năng của điện toán đám mây được cải thiện so với bốn thuật toán MaxMin, Round Robin, MinMin và FCFS

Kết luận chương 3

Chương này giới thiệu vì sao tác giả chọn lựa việc phân lớp tác vụ [24] [25] [29] theo độ ưu tiên để phục vụ thuật toán cân bằng tải Với mục tiêu duy trì trạng thái an toàn và hoạt động liên tục của cloud, thuật toán này, thực hiện được cải tiến những thuật toán cân bằng tải trong điện toán đám mây, gọi là thuật toán k-CTPA (k-NN Classification Task Priority Algorithm) sẽ giải quyết được cân bằng tải dựa trên cải thiện thời gian thực thi qua đó số lượng thất bại trong công việc triển khai sẽ ít hơn, số điểm chết nút sẽ giảm hơn các thuật toán cân bằng tải hiện tại.

KẾT QUẢ THỰC NGHIỆM

Giới thiệu chung

Trong chương này trình bày về cài đặt mô phỏng thuật toán K-CTPA (k-NN Classification of Task-Priority Algorithm), cụ thể như sau sử dụng thuật toán phân lớp kNN (k Nearest Neighbours) nhằm mục đích loại các task tương ứng với các Request dựa trên độ ưu tiên xử lý task đó Độ ưu tiên ở đây được tính toán dựa trên mức độ tiêu thụ năng lượng của task (Power consumed), mức độ sử dụng CPU (CPU Usages), mức độ sử dụng RAM (RAM Usages) và chi phí (Costing) để thực hiện task đó trong cloud. Sau khi phân loại các tasks theo độ ưu tiên, bộ cân bằng tải sẽ phân bổ các request có task đó với độ ưu tiên cao hơn vào những máy ảo/host có năng lực xử lý tốt hơn, tức là mức độ rảnh task cao Từ đó, phân bổ request có nhu câu xử lý nhiều vào máy ảo/host có mức độ hoạt động thấp nhất Với cách tiếp cận này, thuật toán đề xuất k-CTPA sẽ cải thiện thời gian xử lý cân bằng tải trên cloud, và ứng dụng trên môi trường cloud theo thời gian thực Sau khi tiến hành các bước như trên ta thu được các kết quả từ đó phân tích tính hiệu quả của thuật toán đề ra.

Môi trường mô phỏng thực nghiệm

Dựa vào dữ liệu của các request mà ta có thể biết, ta sử dụng thuật toán Regression để phân loại request bằng cách tính toán ra bộ Priority = {Power, CPU, RAM}, từ đó ta biết cách phân bố tài nguyên cho cái request vào các máy ảo đã phân cụm Kết hợp với đánh giá số lần sai, và sai số, ta cải thiện thuật toán bằng cách áp dụng máy học vào, tuy nhiên, việc áp dụng này sẽ ít diễn ra vì có sai số cho phép.

Giả lập môi trường cloud sử dụng bộ thư viện CloudSim và lập trình trên ngôn ngữ JAVA; Môi trường giả lập cloud là từ 5 đến 15 máy ảo, và tạo môi trường request ngẫu nhiên tới các dịch vụ trên cloud này Bao gồm dịch vụ cung cấp máy ảo, dịch vụ cung cấp và đáp ứng người dùng của cloudSim để thử nghiệm.

Cài đặt thuật toán Regression, K-NN trên môi trường mô phỏng được phát triển bởi bộ thư viện Weka, và kiểm nghiệm ra kết quả.

Các tham số của mô hình mạng mô phỏng:

Thực nghiệm mô phỏng thuật toán đề xuất được cài đặt trên ngôn ngữ JAVA và sử dụng NETBEAN IDE hoặc Eclipse IDE để chạy thử và hiển thị kết quả dưới dạng console Môi trường giả lập với bộ thư viện mã nguồn mở CloudSim (được cung cấp bởi http://www.cloudbus.org/), kết hợp với bộ thư viện về datamining là WEKA. Môi trường mô phỏng giả lập gồm các thông số sau:

- 01 Datacenter với thông số như sau:

Bảng 4.1 Thông số cấu hình Datacenter

Thông tin Datacenter Thông tin Host trong Datacenter

- Số lượng máy (host) trong Mỗi host trong Datacenter có cấu hình datacenter: 5 như sau:

- Không sử dụng Storage (các ổ - CPU có 4 nhân, mỗi nhân có tốc độ xử

- Kiến trúc(arch): x86 - Ram: 16384 (MB)

- Hệ điều hành (OS): Linux - Storage: 1000000

- Xử lý (VMM): Xen - Bandwidth: 10000

- Các máy ảo có cấu hình giống nhau khi được khởi tạo:

Bảng 4.2 Cấu hình máy ảo

Kích Số lượng cpu thước Ram Mips Bandwidth (pes no.) VMM

- Các Request (các request chạy trên web, WebRequest) được đại diện bởi Cloudlet trong cloudSim và kích thước của các Cloudlet được khởi tạo một các ngẫu nhiên bằng hàm random của JAVA Số lượng Cloudlet lần lượt là

Bảng 4.3 Cấu hình thông số các Request

Chiều dài Kích thước file Kích thước file Số CPU xử lý xuất ra

- Thuật toán đề xuất được xây dựng bằng cách tạo ra lớp kCPTASchedulingAlgorithm,kếthừatừđốitượng

BaseSchedulingAlgorithm, cập nhật thêm một số phương thức và thuộc tính liên quan tới predictRequesRegression , và điều chỉnh các hàm dựng sẵn để phù hợp với thuật toán đề xuất:

@Override public void run() // Module 3 public CondorVM getFittingVm1(int label) public CondorVM getFittingVm2(double label) // Module 2 public String predictRequestPowerConsume(Cloudlet req) public String predictRequestCpuUsage(Cloudlet req) public String predictRequestRamUsage (Cloudlet req) // Module 1

Thực nghiệm mô phỏng cloud với các tham số như trên, và chạy thuật toán cân bằng tải của CloudSim có sẵn, và chạy thuật toán đề xuất mới cài đặt, cùng dữ liệu đầu vào, so sánh kết quả đầu ra, đặc biệt là thông số thời gian thực hiện (Makespan).

Thời gian đáp ứng dự đoán của các máy ảo cũng như thời gian đáp ứng dự đoán của cloud với sai số càng thấp thì hiệu quả của thuật toán càng tốt.

Thực nghiệm và kết quả mô phỏng

Kết quả chạy thực nghiệm mô phỏng trên CloudSim với 5 máy ảo được dựng sẵn để đáp ứng các yêu cầu, các yêu cầu được khởi tạo với chiều dài và kích thước ngẫu nhiên, số lượng Request lần lượt là 30, 60, 100 và 1000 Sau đó kết quả này được so sánh với các thuật toán Round-Robin, MaxMin, MinMin và FCFS Đầu tiên ta xét trường hợp với 30 Requets, ta có thời gian thực hiện như bảng 4.4.

Bảng 4.4 Kết quả thực nghiệm mô phỏng với 30 request

Thời gian thực FCFS kCTPA MaxMin MinMin Round hiện (ms) Robin

FCFS kCTPA MaxMin MinMin Round Robin

Hình 4.1 Biểu đồ so sánh thời gian thực hiện của 5 thuật toán với 30 Request

Với kết quả thực nghiệm với 30 Request trở lại, ta thấy thuật toán Round-Robin chiếm ưu thế và xử lý nhanh, thuât toán MaxMin cũng khá ổn định Thuật toán FCFS thì chưa có thế mạnh Tuy nhiên thuật toán đề xuất k-CTPA cũng khá ổn định, và chứng tỏ dần ổn định và tốt hơn khi xử lý nhiều request hơn.

Bảng 4.5 Kết quả thực nghiệm mô phỏng với 60 request

Thời gian thực FCFS kCTPA MaxMin MinMin Round hiện (ms) Robin

FCFS kCTPA MaxMin MinMin Round Robin

Hình 4.2 Biểu đồ so sánh thời gian thực hiện của 5 thuật toán với 60 Request

Từ request thứ 100 trở đi, thuật toán k-CTPA vượt trội hơn hản so với MaxMin, MinMin Tuy nhiên vẫn chưa thấy ưu thế so với RoundRobin Nhưng với số lượng request càng lớn thì k-CTPA càng lợi thế hơn hẳn Và dần dần chiếm ưu thế tuyệt đối so với các thuật toán còn lại Rõ ràng FCFS thể hiện sự thiếu thông minh và tính tự nhiên của giải thuật.

Bảng 4.6 Kết quả thực nghiệm mô phỏng với 100 request

Thời gian thực FCFS kCTPA MaxMin MinMin Round hiện (ms) Robin

FCFS kCTPA MaxMin MinMin Round Robin

Hình 4.3 Biểu đồ so sánh thời gian thực hiện của 5 thuật toán với 100 Request

Thử nghiệm với 30 đến 100 request, chúng ta thấy thuật toán k-CTPA vượt trội hơn hản so với MaxMin, MinMin Nhưng với số lượng request càng lớn thì k-CTPA càng lợi thế hơn hẳn Và dần dần chiếm ưu thế tuyệt đối so với các thuật toán còn lại.

Rõ ràng FCFS thể hiện sự thiếu thông minh và tính tự nhiên của giải thuật Chính vì thế ta tăng lên 1000 request:

Bảng 4.7 Kết quả thực nghiệm mô phỏng với 1000 request

Thời gian thực FCFS kCTPA MaxMin MinMin Round hiện (ms) Robin

FCFS kCTPA MaxMin MinMin Round Robin

Hình 4.4 Biểu đồ so sánh thời gian thực hiện của 5 thuật toán với 1000 Request Ở trường hợp 1000 Request ta thấy k-CTPA vươt trội hơn hẳn so với các thuật toán khác, bỏ xa các thuật toán khác.

FCFS kCTPA MaxMin MinMin Round Robin

Hình 4.5 Thời gian thực hiện trung bình của 5 thuật toán từ 30-1000 Request

Hình 4.6 Thời gian thực hiện lớn nhất của 5 thuật toán từ 30-1000 Request

Thông qua 04 trường hợp là 30, 60, 100 và 1000 so sánh thời gian xử lý của các thuật toán với điều kiện như nhau ta có thể thấy sự phân bổ khá ổn định và hợp lý của thuật toán đề xuất k-CTPA, thời gian xử lý của các máy ảo không quá khác biệt so với thời gian xử lý của các thuật toán khác trên cloud (ở trường hợp ít và nhiều request) Hình 4.5 và 4.6 cho thấy k-CTPA luôn thấp nhất, kể cả giá trị trung bình lẫn giá trị max.

Thực nghiệm mô phỏng này chỉ là mô phỏng nhóm các máy ảo, chưa tính tới việc mở rộng tập các máy ảo (VM pool) để giảm tải trong trường hợp cần thiết, vì giả định là nhóm các máy ảo này xử lý tối đa bao nhiêu request, nếu vượt quá ta mới mở rộng pool Tuy nhiên, việc thí nghiệm mô phỏng với lượng request lớn là trên 1000 request đòi hỏi máy tính mạnh hơn và bộ xử lý tốt hơn, chính vì vậy đây là hạn chế của thí nghiệm mô phỏng này.

Thuật toán đề xuất đã cho thấy hiệu quả khi máy ảo có số lượng cao lên thì k- CTPA đảm bảo thời gian phản hồi và thời gian xử lý tốt, giảm chi phí của các trung tâm dữ liệu đám mây Tuy nhiên thuật toán vẫn còn 1 số nhược điểm như:

-Nếu số lượng máy ảo nhiều thì việc tìm ra máy có Usage nhỏ nhất là khó khăn hơn, nên có thể tìm một máy có Usage phù hợp là đạt.

-Chưa sắp xếp các máy ảo theo danh sách tăng dần.

-Thuật toán dự báo càng chính xác thì phân bổ càng hiệu quả.

-Tính toán và xử lý các ngưỡng động, tức là các ngưỡng này thay đổi theo

VM, theo request hoặc theo đặc điểm cloud.

Kết luận chương 4

Chương 4 của luận văn trình bày mô hình thực nghiệm mô phỏng, các thông số cũng như kịch bản đưa ra là dựa vào quá trình request của các browser trên môi trường cloud Từ đó, ghi nhận các thông số về thời gian xử lý của các máy ảo, và của cloud. Việc chạy thực nghiệm mô phỏng với thông số 5 máy ảo, chịu tải từ 30 tới 1000 request đã cho thấy kết quả tương đối tốt, việc phân bổ các request tới các máy ảo xử lý khá đồng đều, và tính khả thi cao.

Luận văn “Nghiên cứu ứng dụng ai xây dựng thuật toán phân loại tác vụ dựa trên độ ưu tiên nhằm nâng cao hiệu năng cân bằng tải trên điện toán đám mây”.

Tập trung nghiên cứu các thuật toán phân lớp từ các thuộc tính của Priority hoàn tất các task/job, từ đó giữ được trạng thái an toàn cho cloud, sử dụng hợp lý nhất tài nguyên của cloud Từ đó phân bổ tác vụ và nâng cân bằng tải trong môi trường điện toán đám mây. Dựa vào các thuật toán [30] đã có đó để phân tích làm rõ chúng, sau đó có thể đánh giá đưa ra nhược điểm và lợi thế của từng thuật toán, từ các nhược điểm đã phân tích để đề xuất một thuật toán nhằm cải tiến và nâng cao khả năng cân bằng tải so với thuật toán cũ. Quá trình nghiên cứu đã đạt được nhiều mục tiêu đề ra như sau:

- Nghiên cứu tổng quan đám mây, các đám mây với ba mô hình chính (IaaS, PaaS, SaaS) đang được sử dụng Các kỹ thuật cân bằng tải được dùng trong môi trường điện toán đám mây.

- Nghiên cứu cách tiếp cận đám mây điện toán thông qua mô phỏng sử dụng công cụ giao diện thân thiện dễ sử dụng của CloudSim Cài đặt và mô phỏng các kỹ thuật cân bằng tải, các thuật toán Round Robin, MaxMin ,

MinMin, và thuật toán tự nhiên FCFS Các giá trị thu được khi mô phỏng đưa ra để phân tích so sánh với nhau để tóm lại được các nhược điểm và ưu điểm của các thuật toán từ đó có hướng đề xuất một thuật toán sửa đổi để khắc phục mặt hạn chế đó.

- Kết quả đạt được từ thuật toán đề xuất đáp ứng được các mục tiêu như việc đáp ứng thời gian được cải thiện, hạn chế của các tài nguyên bị đói, máy ảo có năng lực xử lý mạnh sẽ được xử lý nhiều yêu cầu hơn Giúp cân bằng tải hiệu quả hơn thuật toán được so sánh là Round Robin, MaxMin, MinMin và thuật toán tự nhiên FCFS.

- Thuật toán k-CTPA có thể dùng để đưa vào áp dụng trên thực tế.

- Chưa được ứng dụng vào môi trường thực tế.

- Thời gian đáp ứng và xử lý chưa cải thiện được nhiều như mong muốn.

Hướng phát triển của đề tài

- Đưa thuật toán đề xuất ứng dụng vào môi trường cloud cụ thể, hệ thống thực.

- Tiếp tục nghiên cứu tùy chỉnh, tối ưu các tham số đầu vào nhằm nâng cao hơn nữa hiệu năng cân bằng tải.

Ngày đăng: 12/10/2023, 17:50

HÌNH ẢNH LIÊN QUAN

Hình 1. 1 Mô hình điện toán đám mây (theo 3STechBlog) - Nghiên cứu ứng dụng ai xây dựng thuật toán phân loại tác vụ dựa trên độ ưu tiên nhằm nâng cao hiệu năng cân bằng tải trên điện toán đám mây
Hình 1. 1 Mô hình điện toán đám mây (theo 3STechBlog) (Trang 20)
Hình 1. 2  Mô hình kiến trúc điện toán đám mây [7] - Nghiên cứu ứng dụng ai xây dựng thuật toán phân loại tác vụ dựa trên độ ưu tiên nhằm nâng cao hiệu năng cân bằng tải trên điện toán đám mây
Hình 1. 2 Mô hình kiến trúc điện toán đám mây [7] (Trang 21)
Hình 1. 3 Mô hình dịch vụ điện toán đám mây [8] - Nghiên cứu ứng dụng ai xây dựng thuật toán phân loại tác vụ dựa trên độ ưu tiên nhằm nâng cao hiệu năng cân bằng tải trên điện toán đám mây
Hình 1. 3 Mô hình dịch vụ điện toán đám mây [8] (Trang 22)
Hình 1. 4 Mô hình Cân bằng tải trong điện toán đám mây [11] - Nghiên cứu ứng dụng ai xây dựng thuật toán phân loại tác vụ dựa trên độ ưu tiên nhằm nâng cao hiệu năng cân bằng tải trên điện toán đám mây
Hình 1. 4 Mô hình Cân bằng tải trong điện toán đám mây [11] (Trang 23)
Hình 1.5 Sơ đồ thiết kế lớp trong CloudSim [15] - Nghiên cứu ứng dụng ai xây dựng thuật toán phân loại tác vụ dựa trên độ ưu tiên nhằm nâng cao hiệu năng cân bằng tải trên điện toán đám mây
Hình 1.5 Sơ đồ thiết kế lớp trong CloudSim [15] (Trang 29)
Hỡnh 1. 6 Luồng giao tiếp giữa cỏc thực thể lừi trong CloudSim [16] - Nghiên cứu ứng dụng ai xây dựng thuật toán phân loại tác vụ dựa trên độ ưu tiên nhằm nâng cao hiệu năng cân bằng tải trên điện toán đám mây
nh 1. 6 Luồng giao tiếp giữa cỏc thực thể lừi trong CloudSim [16] (Trang 31)
Hình 1. 7 Mối liên hệ giữa AI, ML và DL (theo NVIDIA.com) - Nghiên cứu ứng dụng ai xây dựng thuật toán phân loại tác vụ dựa trên độ ưu tiên nhằm nâng cao hiệu năng cân bằng tải trên điện toán đám mây
Hình 1. 7 Mối liên hệ giữa AI, ML và DL (theo NVIDIA.com) (Trang 32)
Hình 1. 8 Phân nhóm các thuật toán Machine Learning (theo Data Flair) 1.4.1 Phân nhóm các thuật toán dựa trên phương thức học - Nghiên cứu ứng dụng ai xây dựng thuật toán phân loại tác vụ dựa trên độ ưu tiên nhằm nâng cao hiệu năng cân bằng tải trên điện toán đám mây
Hình 1. 8 Phân nhóm các thuật toán Machine Learning (theo Data Flair) 1.4.1 Phân nhóm các thuật toán dựa trên phương thức học (Trang 33)
Hình 2. 1 Sơ đồ mã giả thuật toán Min-Min  [18] - Nghiên cứu ứng dụng ai xây dựng thuật toán phân loại tác vụ dựa trên độ ưu tiên nhằm nâng cao hiệu năng cân bằng tải trên điện toán đám mây
Hình 2. 1 Sơ đồ mã giả thuật toán Min-Min [18] (Trang 39)
Sơ đồ mã giả như sau: - Nghiên cứu ứng dụng ai xây dựng thuật toán phân loại tác vụ dựa trên độ ưu tiên nhằm nâng cao hiệu năng cân bằng tải trên điện toán đám mây
Sơ đồ m ã giả như sau: (Trang 40)
Hình 2. 3 Lưu đồ phân bổ tài nguyên trên cloud [19] - Nghiên cứu ứng dụng ai xây dựng thuật toán phân loại tác vụ dựa trên độ ưu tiên nhằm nâng cao hiệu năng cân bằng tải trên điện toán đám mây
Hình 2. 3 Lưu đồ phân bổ tài nguyên trên cloud [19] (Trang 41)
Hình 2. 4 Khung lập lịch Makespan tối thiểu MMSF [20] - Nghiên cứu ứng dụng ai xây dựng thuật toán phân loại tác vụ dựa trên độ ưu tiên nhằm nâng cao hiệu năng cân bằng tải trên điện toán đám mây
Hình 2. 4 Khung lập lịch Makespan tối thiểu MMSF [20] (Trang 43)
Hình 2. 5 Các quan sát thực nghiệm của FCFS, GA và ACO [21] - Nghiên cứu ứng dụng ai xây dựng thuật toán phân loại tác vụ dựa trên độ ưu tiên nhằm nâng cao hiệu năng cân bằng tải trên điện toán đám mây
Hình 2. 5 Các quan sát thực nghiệm của FCFS, GA và ACO [21] (Trang 44)
Hình 2. 6 Mô hình thuật toán LBRS [22] - Nghiên cứu ứng dụng ai xây dựng thuật toán phân loại tác vụ dựa trên độ ưu tiên nhằm nâng cao hiệu năng cân bằng tải trên điện toán đám mây
Hình 2. 6 Mô hình thuật toán LBRS [22] (Trang 45)
Hình 2. 7 Mô hình cân bằng tải trên cloud [24] - Nghiên cứu ứng dụng ai xây dựng thuật toán phân loại tác vụ dựa trên độ ưu tiên nhằm nâng cao hiệu năng cân bằng tải trên điện toán đám mây
Hình 2. 7 Mô hình cân bằng tải trên cloud [24] (Trang 47)
Hình 3. 1 Sơ đồ mô hình nghiên cứu trên Cloud - Nghiên cứu ứng dụng ai xây dựng thuật toán phân loại tác vụ dựa trên độ ưu tiên nhằm nâng cao hiệu năng cân bằng tải trên điện toán đám mây
Hình 3. 1 Sơ đồ mô hình nghiên cứu trên Cloud (Trang 53)
Hình 3. 2 Tính toán độ ưu tiên của các request Cloud - Nghiên cứu ứng dụng ai xây dựng thuật toán phân loại tác vụ dựa trên độ ưu tiên nhằm nâng cao hiệu năng cân bằng tải trên điện toán đám mây
Hình 3. 2 Tính toán độ ưu tiên của các request Cloud (Trang 54)
Hình 3. 3 Sơ đồ thuật toán đề xuất k-CTPA - Nghiên cứu ứng dụng ai xây dựng thuật toán phân loại tác vụ dựa trên độ ưu tiên nhằm nâng cao hiệu năng cân bằng tải trên điện toán đám mây
Hình 3. 3 Sơ đồ thuật toán đề xuất k-CTPA (Trang 57)
Bảng 4.1  Thông số cấu hình Datacenter - Nghiên cứu ứng dụng ai xây dựng thuật toán phân loại tác vụ dựa trên độ ưu tiên nhằm nâng cao hiệu năng cân bằng tải trên điện toán đám mây
Bảng 4.1 Thông số cấu hình Datacenter (Trang 61)
Bảng 4.3 Cấu hình thông số các Request - Nghiên cứu ứng dụng ai xây dựng thuật toán phân loại tác vụ dựa trên độ ưu tiên nhằm nâng cao hiệu năng cân bằng tải trên điện toán đám mây
Bảng 4.3 Cấu hình thông số các Request (Trang 62)
Bảng 4.4  Kết quả thực nghiệm mô phỏng với 30 request - Nghiên cứu ứng dụng ai xây dựng thuật toán phân loại tác vụ dựa trên độ ưu tiên nhằm nâng cao hiệu năng cân bằng tải trên điện toán đám mây
Bảng 4.4 Kết quả thực nghiệm mô phỏng với 30 request (Trang 63)
Bảng 4.5  Kết quả thực nghiệm mô phỏng với 60 request - Nghiên cứu ứng dụng ai xây dựng thuật toán phân loại tác vụ dựa trên độ ưu tiên nhằm nâng cao hiệu năng cân bằng tải trên điện toán đám mây
Bảng 4.5 Kết quả thực nghiệm mô phỏng với 60 request (Trang 64)
Hình 4.2 Biểu đồ so sánh thời gian thực hiện của 5 thuật toán với 60 Request - Nghiên cứu ứng dụng ai xây dựng thuật toán phân loại tác vụ dựa trên độ ưu tiên nhằm nâng cao hiệu năng cân bằng tải trên điện toán đám mây
Hình 4.2 Biểu đồ so sánh thời gian thực hiện của 5 thuật toán với 60 Request (Trang 64)
Hình 4.3 Biểu đồ so sánh thời gian thực hiện của 5 thuật toán với 100 Request - Nghiên cứu ứng dụng ai xây dựng thuật toán phân loại tác vụ dựa trên độ ưu tiên nhằm nâng cao hiệu năng cân bằng tải trên điện toán đám mây
Hình 4.3 Biểu đồ so sánh thời gian thực hiện của 5 thuật toán với 100 Request (Trang 65)
Bảng 4.7 Kết quả thực nghiệm mô phỏng với 1000 request - Nghiên cứu ứng dụng ai xây dựng thuật toán phân loại tác vụ dựa trên độ ưu tiên nhằm nâng cao hiệu năng cân bằng tải trên điện toán đám mây
Bảng 4.7 Kết quả thực nghiệm mô phỏng với 1000 request (Trang 65)
Hình 4.4 Biểu đồ so sánh thời gian thực hiện của 5 thuật toán với 1000 Request - Nghiên cứu ứng dụng ai xây dựng thuật toán phân loại tác vụ dựa trên độ ưu tiên nhằm nâng cao hiệu năng cân bằng tải trên điện toán đám mây
Hình 4.4 Biểu đồ so sánh thời gian thực hiện của 5 thuật toán với 1000 Request (Trang 66)
Hình 4.5 Thời gian thực hiện trung bình của 5 thuật toán từ 30-1000 Request - Nghiên cứu ứng dụng ai xây dựng thuật toán phân loại tác vụ dựa trên độ ưu tiên nhằm nâng cao hiệu năng cân bằng tải trên điện toán đám mây
Hình 4.5 Thời gian thực hiện trung bình của 5 thuật toán từ 30-1000 Request (Trang 66)
Hình 4.6 Thời gian thực hiện lớn nhất của 5 thuật toán từ 30-1000 Request - Nghiên cứu ứng dụng ai xây dựng thuật toán phân loại tác vụ dựa trên độ ưu tiên nhằm nâng cao hiệu năng cân bằng tải trên điện toán đám mây
Hình 4.6 Thời gian thực hiện lớn nhất của 5 thuật toán từ 30-1000 Request (Trang 67)
Hình 2.5 là kết quả của luận văn hay của Hình 2.5 là kết quả của công trình bài báo trong tài Trang 32, 5 tài liệu tham khảo? Không thấy học viên Chương 2 phân tích - Nghiên cứu ứng dụng ai xây dựng thuật toán phân loại tác vụ dựa trên độ ưu tiên nhằm nâng cao hiệu năng cân bằng tải trên điện toán đám mây
Hình 2.5 là kết quả của luận văn hay của Hình 2.5 là kết quả của công trình bài báo trong tài Trang 32, 5 tài liệu tham khảo? Không thấy học viên Chương 2 phân tích (Trang 87)

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w