Làm thế nào là khả năng mở rộng phần mềm được đo?


21

Tôi được yêu cầu thực hiện một số bài trình bày kỹ thuật nhỏ về khả năng mở rộng ứng dụng cụ thể. Ứng dụng được phát triển bằng Java, Spring MVC, Hibernate. Tôi có quyền truy cập vào mã nguồn ứng dụng.

Làm cách nào tôi có thể đo khả năng mở rộng phần mềm (sử dụng nguồn) và tôi cần chăm sóc những số liệu nào khi đo khả năng mở rộng phần mềm?

Câu trả lời:


8

Tôi sẽ bắt đầu với việc đọc bài viết Wikipedia về chủ đề này.

Nói tóm lại, khả năng mở rộng là cách hiệu suất hệ thống tăng lên khi thêm nhiều tài nguyên hoặc, thay vào đó, cách sử dụng tài nguyên tăng lên khi tăng tải . Ví dụ: trang web của bạn có thể xử lý bao nhiêu người dùng đồng thời cho đến khi thời gian phản hồi tăng quá 0,3 giây? Câu hỏi tương tự sau khi bạn tăng gấp đôi RAM / đĩa / CPU / vv. Bạn có thể có thể sử dụng kiến ​​thức của mình về các ứng dụng bên trong để quyết định tham số nào đáng để kiểm tra.

Thiết lập một băng ghế thử nghiệm với một máy chủ và một hoặc nhiều máy khách. Sử dụng một số công cụ để giới hạn số lượng tài nguyên có sẵn cho máy chủ (ví dụ ulimit) hoặc chạy một số ứng dụng can thiệp vào máy chủ. Đo lường cách máy chủ xử lý các yêu cầu của khách hàng. Lặp lại việc tăng / giảm dần các tải trọng / tài nguyên sẵn có ở trên. Cuối cùng, bạn nhận được không gian n chiều với các dấu chấm trong đó. Có thể đơn giản hơn khi chỉ thay đổi một tham số tại một thời điểm trong khi sửa tất cả các tham số khác ở một giá trị tiêu biểu (hoặc một vài giá trị). Trong trường hợp này, bạn có thể biểu thị kết quả dưới dạng một loạt các biểu đồ 2D với hiệu suất máy chủ (ví dụ: số lượng người dùng / yêu cầu) trên một trục và sử dụng tài nguyên / tính sẵn có trên một trục khác.

Có nhiều kịch bản phức tạp hơn trong đó ứng dụng của bạn sử dụng một số máy chủ cho một số phần của ứng dụng và bạn có thể thay đổi số lượng và tỷ lệ của chúng, nhưng tôi đoán đó không phải là trường hợp của bạn. Nhiều nhất, bạn có thể muốn thay đổi số lượng chủ đề / quy trình, nếu điều này quan trọng.

Nếu bạn đo toàn bộ ứng dụng, bạn thường không cần truy cập mã nguồn. Tuy nhiên, bạn có thể thú vị khi đo một số phần cụ thể của mã (ví dụ: chỉ DB hoặc UI). Sau đó, bạn có thể sử dụng mã nguồn để chỉ hiển thị mô-đun này cho các phép đo và chạy thử nghiệm của bạn. Điều này được gọi là một microbenchmark .

Nếu bạn đang tìm kiếm ví dụ, có rất nhiều trong số họ trong các bài báo học thuật. Tìm kiếm học giả google để đánh giá hiệu suất + các thuật ngữ ưa thích của bạn.


1

Khả năng mở rộng không thực sự là một tài sản định lượng cho các ứng dụng thực tế.

Trong điều kiện thực tế, khả năng mở rộng là về khả năng hỗ trợ khối lượng công việc đang tăng lên ở các kích thước khác nhau.

Để bắt đầu với ứng dụng sẽ hỗ trợ khối lượng công việc ngày càng tăng với tài nguyên phần cứng hiện có. Nhưng có nhiều điểm khác nhau khi bạn đạt đến giới hạn; ví dụ: dung lượng bộ nhớ, số lượng lõi, sự tranh chấp về cấu trúc dữ liệu, thông lượng cơ sở dữ liệu, v.v. Mỗi lần bạn đạt được một trong những giới hạn này, bạn phải thực hiện một cách tiếp cận khác nhau để hỗ trợ tăng khối lượng công việc. Khả năng mở rộng là khoảng thời gian bạn có thể tiếp tục tăng khối lượng công việc trước khi bạn đạt đến giới hạn không thể vượt qua, hoặc bạn cần phải thực hiện một thiết kế lại lớn.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.