Hiệu năng của ứng dụng (J2EE) P1

Posted on April 7, 2008

1


Thời gian vừa rồi tôi có làm việc với một vài dự án mà hiệu năng của ứng dụng là một trong những vấn đề quan trọng nhất của hệ thống (search engine) và một vài dự án đang gặp rắc rối qua lớn với vấn đề hiệu năng khi dữ liệu của hệ thống lớn (enterprise content management) nên tôi sẽ viết một số bài liên quan đến vấn đề này.

Bài viết đầu tiên sẽ giải thích câu hỏi cơ bản : hiệu năng của ứng dụng là cái gì?

Hiệu năng của ứng dụng bao gồm các yếu tố cơ bản sau: thời gian đáp ứng người dùng, lưu lượng đáp ứng hệ thống, việc sử dụng tài nguyên của hệ thống và khả năng sẵn sàng của hệ thống.

Thời gian đáp ứng người dùng (người dùng cuối)

Thời gian đáp ứng chính là cái cơ bản nhất mà người dùng cảm nhận được về hiệu năng của hệ thống, do đó mặc dù những phép đo đạc khác cũng quan trọng nhưng thời gian đáp ứng người dùng là quan trọng nhất. Thời gian đáp ứng người dùng chậm có thể dẫn tới:

  • Mất khách hàng trong các ứng dụng B2C
  • Giảm năng suất trong những ứng dụng nội tại của doanh nghiệp
  • Mất sự tín nhiệm và tin cậy trong ứng dụng B2B

Chỉ cần thời gian đáp ứng nhanh hơn một ít cũng ảnh hưởng lớn đến cảm giác của người dùng về tốc độ hệ thống. Những tiêu chuẩn đánh giá hiệu năng khác sẽ bàn tới ở đây được đo đạc và cân nhắc để chắc chắn rằng thời gian đáp ứng người dùng vẫn có thể chấp nhận được trong những tình huống khác nhau.

Chúng ta có thể đo đạc thời gian đáp ứng người dùng bằng 2 cách sau: chủ động theo dõi qua những giao dịch giả lập và theo dõi thụ động.

Một giao dịch giả lập bào gồm một chuỗi các yêu cầu dịch vụ để thi hành một đơn vị chức năng nghiệp vụ, giao dịch giả lập này được thực thi trong một khoảng thời gian. Thời gian đáp ứng của những giao dịch giả lập được ghi lại với 2 mục đích: ghi nhận xu hướng và cảnh báo. Phân tích xu hướng của giao dịch giả lập cung cấp cho chúng ta biết xu hướng về hiệu năng của hệ thống tác động đến người dùng như thế nào trước khi người dùng bị tác động bởi điều đó. Bạn có thể thấy CPU và bộ nhớ được sử dụng có xu hướng tăng lên và những xu hướng này cần được quan tâm, vì khi đó nó sẽ ảnh hường đến người dùng. Giao dịch giả lập cũng đóng vai trò hoàn hảo để cho ta những cảnh báo liên quan đến hiệu năng của ứng dụng. Chúng ta có thể có những trigger để khi hiệu năng một dịch vụ của ứng dụng đặt tới một mức nào đó thì hệ thống sẽ tự động thông báo đến người quan trị hệ thống. Cảnh báo có thể đơn giản là thông báo đơn giản, email … khi hiệu năng hệ thống đạt tời một mức nào đó hệ thống sẽ tự phần tích những thông tin nó có để đưa ra những thông tin chi tiết hơn.

Trong những ứng dụng lớn, giao dịch giả lập được thực hiện từ những vùng địa lý khác nhau mục đích là để hiểu rõ thời gian đáp ứng khác nhau như thế nào ở những địa phương khác nhau. Trong một vài trường hợp khi một tổ chức có nhiều ứng dụng được đặt ở những mạng vật lý khác nhau, khi đường truyền chậm chúng ta có thể cung cấp các giải pháp liên quan đến chuyển hướng yêu cầu. Giao dịch giả lập thường được hiểu là theo dõi chủ động bởi vì nó tiến hành động với ứng dụng, một phương pháp hiệu quả khác để đo thời gian đáp ứng người dùng là theo dõi bị động. Theo dõi bị động theo dõi những yêu cầu của người dùng real-time khi nó được thực thi. Kết quả là nó cung cấp cho ta một bức tranh tổng quát và thực tế hơn về thời gian đáp ứng người dùng từ đó ta có thể tính toán để đưa ra những dữ liệu thực tế như thời gian đáp ứng lớn nhất, thời gian đáp ứng nhỏ nhất, trong bình và etc… Theo dõi bị động giúp tìm ra những lỗi mà chỉ xảy ra với một vài yêu cầu nghiệp vụ nhất định với những người dùng nhất định.

Lưu lượng đáp ứng

Lưu lượng đáp ứng xác định số công việc mà hệ thống có thể hoàn thành trong một khoảng thời gian, trong ứng dụng J2EE chúng ta thường xác định lưu lượng đáp ứng bằng số yêu cầu mà chúng ta có thể xử lý trong một giây. Mục tiêu của một hệ thống là tăng tối đa lưu lượng đáp ứng và đo bằng số yêu cầu đáp ứng đồng thời nhận được. Lưu lượng đáp ứng cao là phục vụ yêu cầu đáp ứng nhanh và hiệu quả, nó phản ánh thời gian đáp ứng nhanh. Lưu lượng đáp ứng cao cũng làm nổi bật hiệu quả chung của toàn hệ thống.

(to be continued)