Hiệu năng của hệ thống

Một phần của tài liệu Ứng dụng mô hình hàng đợi thông điệp trong kiến trúc khách - chủ (Trang 42)

3.3.1 Một số định nghĩa

Thông lƣợng hệ thống: Là tỉ lệ thời gian thực thi các thao tác không đồng bộ của tiến trình khách (tiến trình gửi) trên thời gian thực thi của hệ thống. Thông lượng bằng 100% nghĩa là tiến trình khách không mất thời gian chờ đợi (toàn bộ thời gian chờ đợi kết quả trả về từ tiến trình chủ, nó thực hiện các thao tác không đồng bộ khác). Thông lượng của hệ thống thông thường (sử dụng giao tiếp đồng bộ hóa) là 0% vì nó không thực hiện bất kỳ thao tác không đồng bộ nào.

Thời gian đợi của tiến trình khách: Là thời gian đợi của tiến trình khách trong khoảng sau khi nó kết thúc các thao tác không đồng bộ hóa và trước khi nó nhận được kết quả trả về từ máy chủ

Thời gian hệ thống: Là tổng thời gian từ khi gửi thông điệp tới khi mọi thao tác kết thúc (mọi thao tác thực thi của một thông điệp và các thao tác không đồng bộ)

Để tiện cho việc so sách hiệu năng, chúng ta đưa ra một số tham biến cho hệ thống như sau

Ký hiệu Ý nghĩa

λR Tốc độ truyền tới hàng đợi từ máy khách μR Tốc độ phục vụ của hàng đợi

λSP Tốc độ truyền tới máy chủ μSP Tốc độ phục vụ của máychủ

λS Tốc độ truyền tới hàng đợi từ máy chủ μS Tốc độ phục vụ của hàng đợi

W Thời gian đợi trung bình của máy khách

ND Độ trễ của mạng

Bảng 1: Tham số thời gian hệ thống 3.4 Thông lƣợng hệ thống

3.4.1 Mô hình giao tiếp đồng bộ

Thông lượng hệ thống trong mô hình sử dụng phương pháp giao tiếp đồng bộ hóa được tính đơn giản như sau:

ND T

SP SP

dongbo  1 2

3.4.2 Mô hình hàng đợi thông điệp vào trƣớc ra trƣớc

Chúng ta có hai mục tiêu để so sánh thông lượng của các hệ thống hàng đợi thông điệp. Trước hết, chúng ta chúng ta muốn tính thời gian trung bình mà hệ thống phải mất cho một hệ hàng đợi thông điệp TFMOM. Thứ hai, chúng ta muốn tìm hiểu thời gian phải đợi của tiến trình khách W.

Để tính TFMOM chúng ta có một số thông số sau

Thời gian trung bình để xử lý thông điệp khi nhận thông điệp tới hàng đợi là:

R R R T     1

Tương tự, thời gian trung bình để xử lý thông điệp khi truyền thông điệp tới hàng đợi là: S S S T     1

Thời gian trung bình để xử lý thông điệp ở phía tiến trình chủ là:

SP SP SP T     1

Để tính thời gian trung bình mà hệ thống mất để xử lý một thông điệp, chúng ta sử dụng tổng những thời gian và tính đến độ trễ của mạng như sau:

TFMOM = TR + TS + TSP + 4ND

Thời gian chờ đợi của tiến trình khách

Là thời gian mà tiến trình khách phải chờ cho tới khi nhận được phản hồi kể từ khi nó kết thúc việc thực thi các thao tác không đồng bộ tasync. Từ hình vẽ 10 và 11 chúng ta có thể thấy có hai trường hợp có thể xảy ra: Thời gian chờ của tiến trình khách bằng 0 hoặc thời gian chờ của tiến trình khách lớn hơn 0.

Trong hình 10, thời gian chờ đợi là:

W1 = max{tasync, TFMOM} – tasync = tasync – tasync (adsbygoogle = window.adsbygoogle || []).push({});

= 0

Thời gian chờ đợi của tiến trình khách bằng 0 khi thời gian thực hiện các thao tác không đồng bộ của tiến trình khách lớn hơn khoảng thời gian kể từ khi nó gửi thông điệp cho tới khi nó nhận được thông tin trả về.

Trong khi đó, thời gian chờ đợi ở hình 11 là: W2 = TFMO – Tasync

Từ hai công thức tính W1 và W2 ở trên, chúng ta có công thức tổng quát để tính thời gian đợi của tiến trình khách khi gửi một thông điệp thứ i là:

Wi = max{tiasync, TFMOM} – tiasync

Trong đó, tiasync là thời gian thực thi các thao tác không đồng bộ của tiến trình gửi thông điệp thứ i.

Từ công thức ở trên, chúng ta có thể tính thời gian đợi trung bình của tất cả các tiến trình khách trong một hệ thống hàng đợi thông điệp là

Trong đó, TFMOM là thời gian trung bình thực hiện các thao tác không đồng bộ hóa của mọi tiến trình khách sử dụng hàng đợi thông điệp và có thể được tính bởi công thức sau: n t T n i i async async    1

Trong đó, n là số lượng thông điệp được truyền tới hàng đợi của hệ thống. Thông lượng của hệ thống sẽ được tính bằng công thức:

W T T Thongluong async async  

3.4.3 Mô hình hàng đợi thông điệp có độ ƣu tiên

Trong phần này, chúng ta sẽ tìm hiểu thông lượng của hệ thống với hàng đợi thông điệp có độ ưu tiên, so sánh chúng với hàng đợi thông điệp vào trước ra trước. Trong mô hình này, chúng ta sẽ thiết lập cho các tiến trình có thời gian thực thi các thao tác không đồng bộ thấp với độ ưu tiên cao. Các lớp tiến trình có độ ưu tiên khác nhau sẽ có tốc độ truyền tới hàng đợi khác nhau. Cũng như với hàng đợi vào trước ra trước, chúng ta sẽ tìm hiểu hai tham số là thời gian trung bình hệ thống phải mất khi xử lý một thông điệp và thời gian phải đợi trung bình của tiến trình khách.

Để tìm hiểu giá trị thời gian trung bình hệ thống mất khi xử lý một thông điệp (TPMOM) này trong một hệ thống sử dụng phương thức giao tiếp bằng hàng đợi thông điệp có độ ưu tiên, chúng ta sẽ tìm hiểu thời gian hệ thống tốn cho một lớp có độ ưu tiên là k (

k PMOM

T ). Còn với mục tiêu thứ hai, chúng ta cũng tìm hiểu thời gian chờ đợi của một lớp có độ ưu tiên k.

Chúng ta giả sử tốc độ phục vụ là giống nhau cho mọi lớp, và chúng ta sử dụng tỷ lệ sử dụng như sau: Y k Y k Y    

Ở đây, Y trong tham số Yk là tham chiếu tới các thành phần của hệ hàng đợi

thông điệp, thành phần nhận Rk, thành phần gửi tới tiến tình chủ k S

 và tiến trình

Để tính TPMOMk , trước hết chúng ta phải tính thời gian chờ đợi của một thông điệp có độ ưu tiên k trong một thành phần Y của hệ thống hàng đợi thông điệp (QYk). Nó được tính theo công thức:

) ... 1 )( ... 1 ( 2 1 1 1 1 2 k Y Y k Y Y n i Y i Y k Y X Q              

Ở đây XY2 là thời gian phục vụ trung bình của chương trình chủ Y tính bằng giây và n là số lớp có độ ưu tiên.

Với tốc độ trung bình truyền đến, chúng ta có thể tính đơn giản:

) 1 )( ) 1 ( 1 ( 2 2 Y y Y y k Y k k X n Q       

Chúng ta có thể thời gian trung bình hệ thống tốn cho hàng đợi thông điệp bằng cách tính thời gian ở mỗi thành phần của hệ thống như sau:

Với thành phần nhận thông điệp:

k R R k R Q T    1

Với thành phần gửi thông điệp lại cho tiến trình khách:

k S S k S Q T    1 Với thành phần phục vụ: k SP SP k SP Q T    1

Do vậy, thời gian tổng thể hệ thống dành cho thống hàng đợi thông điệp là: (adsbygoogle = window.adsbygoogle || []).push({});

ND T

T T

TPMOMkRkSkSPk 4

Ở đây, độ trễ của mạng cũng giống như hàng đợi vào trước ra trước.

Để tính thời gian trung bình của hàng đợi cho mọi lớp tiến trình, chúng ta định nghĩa TPMOM như sau:

T T n k k PMOM    1

Ở đây, n là độ ưu tiên của lớp thông điệp.

Từ công thức ở trên, chúng ta có thể tính thời gian chờ đợi trung bình cho một thông điệp ở lớp có độ ưu tiên k như sau (công thức 1):

Wk = max{ k async T , k PMOM T } – k async T Ở đây Tasynck

là thời gian trung bình các thao tác không đồng bộ cho mọi thông điệp của lớp k và có thể được tính như sau:

n t T n i k async k async i    1 Ở đây táyncki

là thời gian thực hiên các thao tác không đồng bộ của tiến trình khách gửi thông điệp thứ i và có độ ưu tiên k.

Cuối cùng, từ công thức 1, chúng ta có thể tính thời gian chờ đợi trung bình với hệ thống hàng đợi thông điệp có độ ưu tiên là:

n W W n k k    1

Ở đây, n là tổng cộng các độ ưu tiên của hệ thống.

Với thông lượng của hệ thống hàng đợi thông điệp có độ ưu tiên, trước hết chúng ta tính thông lượng của lớp k là:

k k Async k Async k W T T Thongluong  

Từ đó, chúng ta tính thông lượng của hệ thống là:

n Thongluong Thongluong n k k    1

Chƣơng 4. Thử nghiệm về áp dụng hàng đợi thông điệp để phân tải trong ứng dụng kiến trúc khách – chủ

4.1 Bài toán thử nghiệm

Trong chương này, chúng ta sẽ cài đặt và triển khai mô hình hàng đợi thông điệp vào một hệ thống phần mềm cụ thể: “Hệ thống phần mềm bảo vệ trò chơi trực tuyến trên nền Windows chống lại các hacker”. Sản phẩm này đang trong quá trình thử nghiệm và chuẩn bị đưa vào vận hành tại Công ty đầu tư và phát triển công nghệ thông tin – VTC Intecom, trực thuộc Tổng công ty truyền thông đa phương tiện VTC.

4.1.1 Mô tả bài toán

Hiện nay, trò chơi trực tuyến, tức Game Online, đang trở thành một lĩnh vực dịch vụ giải trí có mức độ phát triển nhanh hiện nay. Dịch vụ này cung cấp một trò chơi tập thể trong đó người chơi có thể ngồi tại nhà với một máy tính nối mạng, cùng tham gia vào một thế giới trò chơi ảo. Máy chủ của nhà cung cấp sẽ làm nhiệm vụ liên tục thu nhận hành vi của người chơi, xử lý thông tin đồng bộ từ tập thể người chơi rồi cập nhật trạng thái mới cho mỗi máy chơi. Sự tham gia tập thể của rất nhiều người chơi sẽ làm tăng sức hút của bản thân trò chơi đó, nhưng cũng làm phát sinh việc lừa gạt, dối trá làm ảnh hưởng tới kết quả của người chơi.

Hiện nay, trên thị trường trò chơi trực tuyến của Việt Nam, có rất nhiều nhà cung cấp dịch vụ, trong đó phải kể đến một nhà cung cấp dịch vụ lớn là VTC-Game, với nhiều trò chơi do VTC-Game cung cấp như Audition, FifaOnline, CrossFire … đã chiếm thị phần rất lớn (khoảng 55%) người chơi trong nước, lượng người chơi trong lúc cao điểm có thể lên tới 10 ngàn lượt chơi đối với một trò chơi tại một thời điểm. Tuy nhiên, trong thời gian qua, lượng người chơi các trò chơi này giảm sút đáng kể do có quá nhiều người chơi sử dụng các công cụ lừa dối, làm ảnh hưởng tới kết quả chơi của bản thân họ và những người khác, làm giảm doanh thu và số lượng người chơi.

Sản phẩm VTCGuard – được xây dựng và phát triển bởi phòng Phát triển công nghệ, Công ty Công ty đầu tư và phát triển công nghệ thông tin – VTC Intecom, là

Thông thường, các nhà sản xuất trò chơi hiện nay, họ chỉ tập trung chủ yếu vào việc phát triển và sản xuất trò chơi mới chứ không chú ý đến việc xây dựng hệ thống bảo vệ trò chơi của họ. Việc xây dựng hệ thống bảo vệ đều do hãng thứ ba sản xuất, do đó khi nhà cung cấp trò chơi (ví dụ: VTC-Game) mua sản phẩm từ nhà phân phân phối trò chơi về, họ lại phải lựa chọn hệ thống bảo vệ cho trò chơi của mình từ một nhà cung cấp nào đó. Sau khi lựa chọn xong, cả ba bên cùng ngồi thỏa thuận và lúc này mới tiến hành ghép nối giữa GameClient và GameGuard, quá trình này có thể phức tạp và mất thời gian, đôi khi còn xảy ra lỗi do xung khắc mà phải mất nhiều thời gian khắc phục do sự khác biệt giữa các bên liên quan.

Hệ thống VTCGuard ra đời nhằm đáp ứng hai yêu cầu: Chống lại những tác động của hacker từ phía máy khách và tạo ra một hệ thống có thể dễ dàng ghép nối với các trò chơi khác mà đảm bảo không có xung đột giữa bản thân trò chơi và phần mềm bảo vệ. Việc bảo vệ trò chơi chủ yếu được dựa vào cơ chế phát hiện mẫu trên máy tính người chơi. Mô hình tổng quát của hệ thống có thể được mô tả như hình vẽ sau:

GuardClient Máy chư trò chưi

Internet (adsbygoogle = window.adsbygoogle || []).push({});

Máy ngưưi chưi Máy chư guard

GameClient Đưng bư

Các thành phần chính của hệ thống là:

Máy chủ Guard: Các cụm máy chủ nằm ở phía nhà cung cấp dịch vụ, chúng gồm các máy chủ phục vụ cập nhật, máy chủ thu nhận thông tin, báo cáo …

GameGuard: Là thành phần chính của hệ thống, nằm trên máy khách, có nhiệm vụ bảo vệ GameClient trước sự tấn công của của các chương trình lừa dối và lừa gạt. GameGuard được gắn và tương tác với GameClient bằng một cơ chế đặc biệt là đồng bộ hóa và cảnh báo. Cơ chế liên kết phải đảm bảo tính bảo mật và an toàn

Các chức năng chính của GameGuard là:

Quét tất cả các tiến trình đang chạy trên máy tính người chơi: Khi GameGuard khởi động thì nó thực hiện việc quét tất cả các tiến trình đang chạy trên máy người chơi để kiểm tra xem có tiến trình nào đang thực thi thuộc diện tiến trình lừa dối không? Nếu có, hệ thống sẽ báo cho GameClient thoát và sau đó cũng thoát theo. Nếu không tìm thấy tiến trình lừa dối nào, hệ thống vẫn hoạt động bình thường.

Nhận biết các tiến trình phát sinh sau khi đã quét tất cả: Sau khi quét tất cả các tiến trình mà không có hiện tượng bất thường nào, trò chơi vẫn tiếp tục bình thường. Chức năng này có tác dụng nhận biết các tiến trình được khởi động sau quá trình quét tất cả và kiểm tra xem tiến trình mới này có thuộc diện lừa dối không.

Điều khiển Driver của Guard: có tác dụng điều khiển driver của hệ thống hoạt động. Bản thân Guard không thể tác động trực tiếp lên hệ điều hành mà phải thông qua driver để che dấu thông tin và giám sát toàn bộ hệ thống

Điều khiển GameClient hoạt động thông qua cơ chế đồng bộ: Guard điều khiển hoạt động bật – tắt GameClient thông qua cơ chế đồng bộ này. Khi GameGuard phát hiện có tiến trình lừa dối trên máy tính người chơi, nó sẽ ra lệnh cho GameClient thoát và thoát theo

Giao tiếp GameGuard – Máy chủ guard: Giao tiếp với hệ thống máy chủ của nhà cung cấp nhằm thực hiện các chức năng như: Cập nhật

phiên bản mới, gửi các dữ liệu thu thập được từ máy tính người chơi về máy chủ của nhà cung cấp.

Từ đó, chúng ta có thể thấy được các thành phần cụ thể của chương trình mô tả các thành phần của chương trình như hình vẽ sau:

Hoocking

Che dưu thông tin Quét tiưn trình

Giao tiưp vưi GameClient Giao tiưp vưi máy chư Guard (HĐTĐ)

Lưy blacklist vư Mã hóa/Giưi mã

Tư đưng cưp nhưt So sánh vưi mưu trong blacklist

Điưu khiưn driver

User Mode

Kernel Mode

Hình 13: Tổng quan hệ thống Guard 4.1.2 Lý do sử dụng hàng đợi thông điệp

Như đã miêu tả ở trên, một thành phần quan trọng của hệ thống là giao tiếp giữa GameGuard và máy chủ Guard của nhà cung cấp. Khi GameGuard phát hiện được tiến trình lừa dối đang thực thi trên máy của người chơi, trước khi thông báo thoát trò chơi và thoát Guard, một nhiệm vụ của GameGuard là gửi các thông tin của người chơi về cho máy chủ của nhà cung cấp (máy chủ GameGuard) để giúp

Một phần của tài liệu Ứng dụng mô hình hàng đợi thông điệp trong kiến trúc khách - chủ (Trang 42)