Hiệu suất là một độ đo mức độ thực hiện công việc của một hệ thống. Đối với một hệ thống tính toán, đánh giá hiệu suất là xác định về mặt định tính và định lƣợng chất lƣợng phục vụ của hệ thống đó đối với một loại bài toán nhất định. Hiệu suất chủ yếu đƣợc xác định bởi sự kết hợp của các nhân tố: tính sẵn sàng (availability), thông lƣợng (throughput) và thời gian đáp ứng (response time). Đối với mạng máy tính, hiệu suất còn đƣợc xác định dựa trên các nhân tố khác nữa nhƣ độ trễ (delay), độ tin cậy (reliability), tỉ suất lỗi (error rate), hiệu suất của ứng dụng v.v..[3].
Với mỗi đối tƣợng khác nhau, hiệu suất mạng đƣợc nhìn nhận theo những cách khác nhau. Ngƣời sử dụng thì quan tâm đến các thông số liên quan trực tiếp đến công việc của họ, tƣơng ứng với các độ đo thời gian đáp ứng (response time) hoặc thời gian phản ứng của hệ thống (system reaction time). Thời gian đáp ứng là
khoảng thời gian từ khi có một yêu cầu đến hệ thống cho đến khi nó đƣợc hệ thống thực hiện xong. Thời gian phản ứng của hệ thống là khoảng thời gian tính từ khi
yêu cầu đến hệ thống cho đến khi yêu cầu đó nhận đƣợc khe thời gian phục vụ đầu tiên. Độ đo này đo mức độ nhanh chóng trong việc cung cấp dịch vụ cho một yêu cầu mới đến của hệ thống. Đối với hệ thống thì các độ đo điển hình là thông lượng
(throughput) và độ trễ (delay). Thông lượng là số đơn vị thông tin (bits, bytes, gói tin) trung bình đƣợc vận chuyển qua mạng trong một đơn vị thời gian. Độ trễ là thời gian trung bình để vận chuyển một gói số liệu qua mạng, từ nguồn tới đích.
Có nhiều phƣơng pháp đánh giá hiệu năng mạng máy tính, có thể chia chúng làm ba mô hình: mô hình Giải tích (Analytic Models), mô hình Mô phỏng (Simulation Models) và Đo hiệu năng (Measurement) [3]. Sau đây là chi tiết về ba phƣơng pháp đó.
1.5.2 Các phƣơng pháp đánh giá hiệu suất mạng
a. Mô hình Giải tích
Mô hình này dựa trên sự biểu diễn mối quan hệ giữa các tham số mạng và các tiêu chuẩn hiệu suất cần quan tâm bằng các phƣơng trình toán học có thể giải đƣợc bằng giải tích. Các tham số mạng ở đây là số lƣợng, chiều dài gói tin, thời gian kết nối, các tài nguyên đƣợc chia sẻ,.. Các tham số này thay đổi một cách ngẫu nhiên. Các tiêu chuẩn hiệu suất có thể là thông lƣợng, độ trễ, hệ số sử dụng đƣờng truyền,.. Trong mô hình này, các đại lƣợng liên quan đến khái niệm xác suất thƣờng đƣợc tính toán nhƣ các giá trị trung bình, kỳ vọng, phƣơng sai. Lý thuyết hàng đợi đóng vai trò mấu chốt trong việc phân tích mạng, bởi vì đó là công cụ Toán học thích hợp nhất để phát biểu và giải các bài toán về hiệu suất.
Ƣu điểm của phƣơng pháp này là nó đƣợc thực hiện với chi phí thấp nhất, bởi vì khi muốn tính hiệu suất với các tham số khác ta chỉ cần thay đổi các tham số hệ thống và cấu hình mạng với một chi phí rất thấp (chỉ cần thực hiện lại các thao tác tính toán dã xây dựng trƣớc). Tuy nhiên, để giải đƣợc các bài toán theo các mô hình này ta thƣờng phải đơn giản hoá bài toán bằng các giả thiết thích hợp, hoặc phân rã thành các mô hình nhiều cấp. Các kết quả thu đƣợc thƣờng không phản ánh chính xác thực tế, cho nên phƣơng pháp này thƣờng chỉ đƣợc sử dụng ngay trong giai đoạn đầu của việc thiết kế mạng, giúp cho ngƣời thiết kế dự đoán đƣợc các giá trị giới hạn của hiệu suất. Ngoài ra, các kết quả của phƣơng pháp này bắt buộc phải đƣợc kiểm nghiệm bằng các phƣơng pháp khác, nhƣ mô phỏng hoặc đo (đƣợc trình bày dƣới đây).
b. Mô phỏng
Mô phỏng là sự bắt chƣớc một hay nhiều khía cạnh của sự vật có thực, bằng một cách nào đó càng giống càng tốt. Ngày nay, với sự trợ giúp đắc lực của máy tính, phƣơng pháp này tỏ ra rất hiệu quả và đƣợc sử dụng rộng rãi. Trong việc đánh giá hiệu suất mạng, mô phỏng là một kỹ thuật sử dụng máy tính để thực hiện các thí nghiệm về mạng. Trong mô hình này ngƣời ta có thể theo dõi đƣợc sự hoạt động của mạng theo tiến trình thời gian. Đối với mô hình mô phỏng, việc quan trọng nhất là xây dựng đƣợc bộ mô phỏng. Việc này đòi hỏi nhiều công sức và thời gian. Độ lớn của bộ mô phỏng tuỳ thuộc vào độ phức tạp của thí nghiệm mô phỏng. Nó thƣờng đƣợc xây dựng có cấu trúc, cho phép mô-đun hoá chƣơng trình mô phỏng thành tập các chƣơng trình con, sao cho việc sửa đổi, bổ sung các chƣơng trình con đƣợc dễ dàng. Ngoài ra, các chƣơng trình mô phỏng cũng phải đƣợc xây dựng sao cho tối ƣu hoá về mặt tốc độ nhằm làm giảm thời gian chạy mô phỏng.
Có nhiều trƣờng hợp dùng phƣơng pháp giải tích, mặc dù đã đƣợc đơn giản hoá tối đa nhƣng vẫn không giải đƣợc thì ngƣời ta chỉ còn cách dùng phƣơng pháp mô phỏng. Mặt khác nó đặc biệt hiệu quả trong giai đoạn thiết kế hệ thống, bởi vì
ngƣời ta có thể chọn các thiết bị mạng (ảo) một cách thoải mái và đánh giá mức độ phù hợp của nó trƣớc khi quyết định đầu tƣ cho hệ thống. Mặc dù phƣơng pháp này đòi hỏi phải xây dựng bộ mô phỏng với chi phí rất cao, nhƣng sau khi đã xây dựng đƣợc thì có thể thực hiện bao nhiêu thí nghiệm tuỳ ý theo các tham số khác nhau với chi phí rất thấp. Các kết quả của mô phỏng cần phải đƣợc kiểm nghiệm lại bằng phƣơng pháp mô hình giải tích hoặc phƣơng pháp đo (đƣợc trình bày dƣới đây).
c. Đo
Khác với hai mô hình trên, trong đó việc đánh giá hiệu suất là trên mô hình mạng ảo, đo là phƣơng pháp xác định hiệu suất bằng cách đo các tham số trên mạng thực. Hai nhiệm vụ quan trọng mà việc đo phải đảm nhiệm là: 1/ thu thập số liệu để lập mô hình dữ liệu vào cho các phƣơng pháp đánh giá hiệu suất khác; 2/ kiểm chứng các mô hình khác dựa trên các số liệu đo đƣợc. Việc đo phải đƣợc tiến hành xuyên suốt từ khi xây dựng giải pháp cho hệ thống, giai đoạn lắp đặt và sau khi đƣa hệ thống vào hoạt động. Trong giai đoạn xây dựng giải pháp, việc đo sẽ giúp quyết định loại thiết bị nào phù hợp nhất với điều kiện của khách hàng. Trong giai đoạn lắp đặt, việc đo hiệu suất giúp ngƣời ta điều chỉnh lại cấu hình cho phù hợp. Việc đo hiệu suất mạng sau khi hệ thống đi vào hoạt động giúp quản trị viên theo dõi tình trạng của mạng để có các phƣơng án khắc phục các sự cố nếu có. Hiện nay, hầu nhƣ tất cả các hệ thống mạng đều tích hợp bên trong nó các công cụ đo và đánh giá hiệu suất; nhờ đó có thể đo hiệu suất bất cứ lúc nào trong suốt vòng đời của hệ thống.
Phƣơng pháp đo phải đƣợc thực hiện trên mạng thực, nó cũng đòi hỏi chi phí cho các công cụ đo và cho việc tiến hành đo. Việc đo cần đƣợc tiến hành tại nhiều điểm trên mạng thực, ở những thời điểm khác nhau và cần lặp đi lặp lại trong một khoảng thời gian đủ dài. Ngoài ra, ngƣời nghiên cứu phải có kiến thức về Lý thuyết thống kê thì mới có thể rút ra đƣợc các kết luận hữu ích từ các số liệu thu thập đƣợc. Mặc dầu vậy, bằng phƣơng pháp đo có thể vẫn không phát hiện hoặc dự đoán đƣợc các hành vi đặc biệt của mạng.
CHƢƠNG 2 MỘT SỐ CHIẾN LƢỢC PHỤC VỤ PHỔ BIẾN
Trong các mạng chuyển mạch gói, các gói tin thuộc các luồng lƣu lƣợng khác nhau thƣờng phải chia sẻ đƣờng truyền trên suốt chặng đƣờng đến trạm đích. Để đảm bảo việc phân phối dải thông cho các luồng đạt hiệu quả cao nhất cần phải có các cơ chế phục vụ công bằng tại các nút mạng, đặc biệt là tại gateways hoặc routers, những nơi thƣờng xuyên có nhiều luồng dữ liệu khác nhau đi qua. Bộ lập lịch có nhiệm vụ phục vụ gói tin của luồng đã chọn và quyết định gói tin nào sẽ đƣợc phục vụ tiếp theo (hình 2.1). Ở đây luồng đƣợc hiểu là tập các gói tin thuộc cùng một lớp ƣu tiên, hoặc cùng phát ra từ một nguồn, hoặc cùng có cùng địa chỉ nguồn và đích,.. Vì vậy, trong các mục sau của chƣơng chúng tôi sử dụng các thuật ngữ luồng, lớp ƣu tiên hay hàng đợi để chỉ cùng một khái niệm.
Sau đây chúng ta sẽ xem xét một số cơ chế lập lịch phổ biến:
2.1 Cơ chế FCFS (FIFO)
Đây là chiến lƣợc lập lịch truyền thống đƣợc sử dụng trên Internet. Theo chiến lƣợc này, các gói tin đến đƣợc xếp vào hàng đợi nếu đƣờng truyền đang bận; khi hàng đợi đầy, tất cả các gói tin đến sẽ bị loại bỏ cho đến khi có chỗ trống do các gói tin trong hàng đợi đƣợc chuyển đi. Các gói tin trong hàng đợi sẽ đƣợc chuyển tiếp theo thứ tự đến của chúng, gói nào đến trƣớc thì đƣợc phục vụ trƣớc, đúng nhƣ tên
Luồng 3 --- Luồng nào? Luồng 1 Luồng 2 Luồng n Hình 2.1: Bộ lập lịch
gọi First-Come-First-Serve (FCFS) hay First-In-First-Out (FIFO) (ai đến trƣớc đƣợc phục vụ trƣớc). Trong chiến lƣợc này, tất cả các gói tin đến đƣợc đƣa vào một hàng đợi duy nhất, không có sự phân biệt theo mức ƣu tiên của chúng (hình 2.2). Đây là một hạn chế của chiến lƣợc FIFO, vì có thể nhiều gói tin có mức ƣu tiên cao sẽ bị loại. Mặt khác, các luồng có sự tăng đột biến về thông lƣợng thƣờng gây ra sự chiếm giữ độc quyền đƣờng truyền, dẫn tới không công bằng cho các luồng khác.
Hình 2.3 minh họa việc chuyển tiếp 5 gói tin theo cơ chế FCFS. Các gói tin đến (miền arrivals) đƣợc đánh số thứ tự từ 1 đến 5, trong đó gói 2 có mức ƣu tiên thấp hơn các gói khác. Miền packet in service minh hoạ thời gian phục vụ các gói tin, mỗi gói tin đƣợc phục vụ trong một khe thời gian. Miền departures thể hiện thời điểm các gói tin thực sự đƣợc truyền đi. Theo hình vẽ, gói tin thứ 2 có độ ƣu tiên thấp hơn gói 3, nhƣng nó vẫn đƣợc phục vụ trƣớc vì nó đến trƣớc gói 3, sau đó là các gói 4, 5.
Hình 2.3: Ví dụ về cơ chế phục vụ FCFS Hình 2.2: Cơ chế phục vụ FCFS
2.2 Hàng đợi ƣu tiên (PQ)
Trong hàng đợi ƣu tiên (Priority Queue), các gói tin đến đƣợc phân loại thành 2 hay nhiều lớp ƣu tiên. Việc nhận biết các lớp ƣu tiên thông qua các giá trị chứa trong header của các gói tin trong lớp, chẳng hạn, giá trị của trƣờng ToS (Type of Service) trong gói tin IPv4, địa chỉ nguồn/đích, số hiệu cổng nguồn/đích của nó,.. Mỗi lớp gói tin có một hàng đợi riêng. Bộ lập lịch của hàng đợi ƣu tiên sẽ chọn các gói tin từ lớp có độ ƣu tiên cao nhất nếu hàng đợi dành riêng cho chúng không rỗng (có gói tin đang đợi truyền đi) để truyền đi; sau khi truyền hết các gói tin trong hàng đợi ƣu tiên cao nhất nó mới truyền các gói tin của hàng đợi có ƣu tiên tiếp theo, v.v... Các gói tin trong một lớp ƣu tiên đƣợc chọn theo cơ chế FCFS (hình 2.4).
Hình 2.4: Cơ chế lập lịch hàng đợi ưu tiên với 2 lớp ưu tiên
Hình 2.4: Cơ chế lập lịch hàng có ưu tiên
Hình 2.5 minh họa việc thực hiện cơ chế hàng đợi ƣu tiên với hai lớp ƣu tiên. Các gói tin 1, 3, 4 thuộc lớp có độ ƣu tiên cao; các gói tin 2, 5 thuộc lớp có độ ƣu tiên thấp hơn. Gói 1 tới hàng đợi đầu tiên, khi đó đƣờng truyền đang rỗi, nó đƣợc truyền đi ngay. Sau đó gói tin thứ 2 và thứ 3 tới, gói thứ 2 có độ ƣu tiên thấp nên gói thứ 3 đƣợc truyền trƣớc, rồi tới gói thứ 2. Khi gói thứ 2 đang đƣợc truyền thì gói thứ 4 có độ ƣu tiên cao tới hàng đợi, gói tin thứ 2 vẫn tiếp tục đƣợc truyền chứ không bị ngắt lại. Sau khi gói tin thứ 2 truyền xong tới gói thứ 4, v.v..
PQ đƣợc dùng trong những trƣờng hợp cần áp đặt mức độ ƣu tiên tuyệt đối của một luồng đối với các luồng khác. Ví dụ, Cisco sử dụng PQ để đảm bảo các thông tin về việc bán các sản phẩm dựa trên Oracle phải đƣợc gửi đến đích trƣớc tất cả các lƣu lƣợng khác. Hiện tại PQ đƣợc cấu hình tĩnh, và không đƣợc hiệu chỉnh tự động theo sự thay đổi yêu cầu của mạng.
Mặc dù PQ cung cấp một cách tiếp cận lập lịch đơn giản, nhƣng nó có thể gây ra sự thiếu băng thông cho các luồng có mức ƣu tiên thấp. PQ có thể dành hết băng thông để phục vụ cho luồng có ƣu tiên cao, và nếu băng thông hạn chế thì có thể dẫn tới những luồng thấp hơn không bao giờ đƣợc phục vụ. Để tránh xảy ra tình trạng này, PQ phải đƣợc kết hợp với các kỹ thuật nhằm hạn chế tốc độ của các lƣu lƣợng có mức ƣu tiên cao, nhƣ Shaping hay CAR (Committed Access Rate) [13].
2.3 Chiến lƣợc Packet-Based Round Robin (PBRR)
Theo chiến lƣợc này, các gói tin trong các luồng đƣợc phục vụ luân phiên theo vòng. Các gói tin cũng đƣợc phân thành các lớp ƣu tiên khác nhau. Tuy nhiên ở đây không có sự ƣu tiên phục vụ trong các hàng đợi, thay vào đó, mỗi hàng đợi sẽ đƣợc phục vụ quay vòng, hết hàng này đến hàng kia và mỗi hàng chỉ đƣợc chọn 1 gói tin mỗi khi đến lƣợt (hình 2.6). Chẳng hạn, đầu tiên là gói tin trong luồng 1 đƣợc phục vụ, tiếp theo là gói tin trong luồng 2, .., gói tin luồng n, rồi quay lại gói tin luồng 1, v.v.. Đến một lúc nào đó, một (hoặc một vài) luồng không còn gói tin chờ thì bộ lập lịch sẽ bỏ qua và chuyển tới luồng còn dữ liệu.
Cơ chế này đơn giản và dễ dàng cài đặt với độ phức tạp O(1) cho mỗi gói tin, tuy nhiên nó không giải quyết đƣợc sự cấp phát dải thông công bằng. Bởi vì cơ chế này không quan tâm đến đặc tính lƣu lƣợng của các luồng gói tin đến nhƣ độ dài hàng đợi hiện tại, mức độ ƣu tiên của mỗi luồng gói tin, vì vậy, những luồng có hàng đợi dài (nhiều gói tin đang chờ) hoặc có mức ƣu tiên cao hơn cũng chỉ đƣợc cấp một lƣợng dải thông nhƣ các luồng khác. Hạn chế này đƣợc các nhà nghiên cứu đƣa ra giải pháp khắc phục bằng một chiến lƣợc mới tốt hơn, đó là Fair Queuing (FQ) cùng một loạt các biến thể của nó.
2.4 Chiến lƣợc Packet Fair Queuing và một số biến thể
Chiến lƣợc này xuất phát từ bộ lập lịch lý tƣởng GPS - Generalized Processor Sharing [4]. Ý tƣởng của GPS là trong mỗi khoảng thời gian hữu hạn phải thăm mỗi hàng đợi ít nhất một lần, phục vụ cho một lƣợng rất nhỏ dữ liệu từ mỗi hàng đợi. Khoảng thời gian và lƣợng dữ liệu này đủ nhỏ để có thể giả định rằng máy phục vụ (server) có thể phục vụ đƣợc tất cả các luồng có gói tin đang chờ một cách đồng thời và các luồng có thể đƣợc chia nhỏ tuỳ ý. Rõ ràng đây là một cơ chế lý tƣởng, đảm bảo đƣợc sự phân chia công bằng nhất. Tuy nhiên GPS không thể cài đặt đƣợc trên thực tế, bởi vì tại một thời điểm, server chỉ có thể phục vụ đƣợc một gói tin trong một luồng, gói tin cũng có một độ dài nhất định chứ không thể chia nhỏ tuỳ ý
Luồng 3 --- Luồng 1 Luồng 2
Luồng n
đƣợc, và toàn bộ một gói tin đƣợc phục vụ xong thì gói tin tiếp theo mới đƣợc phục vụ.
Packet Fair Queuing (PFQ) là một thể hiện xấp xỉ của GPS. PFQ gán nhãn thời gian cho mỗi gói tin đến trong từng hàng đợi bằng cách ƣớc lƣợng ngay tức khắc thời điểm mà gói tin phải rời khỏi router, và phục vụ chúng theo thứ tự từ nhỏ đến lớn của các nhãn này (hình 2.7). Nhãn thời gian đƣợc tính dựa vào thời điểm