2010-09-28 27 views
7

Làm cách nào để đánh giá (so sánh hai cách triển khai khác nhau) và cấu hình (tìm các tắc nghẽn hiệu suất trong triển khai) của ứng dụng web (trong Perl) dưới tải nặng? Webapp này (được cho là) ​​IO bị ràng buộc thay vì CPU bị ràng buộc.Làm thế nào để tôi đánh dấu và hồ sơ IO ràng buộc ứng dụng web Perl dưới tải nặng?

Tôi muốn so sánh việc thực hiện đề xuất (đề xuất cải tiến) với giải pháp hiện tại, trên thực tế nhưng giảm thiểu hiệu suất cuối cùng (có thể là hai triển khai khác nhau trên các máy chủ khác nhau sau cân bằng tải) hoặc phát lại/mô phỏng tải trên thực hiện, hoặc mô phỏng sử dụng IO nặng.

Tôi cũng muốn hồ sơ tắc nghẽn CPU và IO trong việc triển khai đề xuất, nhưng kiểm tra hành vi dưới tải nặng.

Hệ điều hành là Linux, máy chủ web là Apache.


Cùng một câu hỏi được đăng tải trên ServerFault: How do I benchmark and profile IO bound Perl web application under heavy load?

Tôi nghĩ câu trả lời ở đây có thể về điểm chuẩn và profiling ứng dụng web viết bằng Perl, và có lẽ cũng về tái tạo điều kiện tải trọng thực tế, hoặc tìm biện pháp/điểm chuẩn sẽ dự đoán việc thực hiện nào sẽ hoạt động tốt hơn trong điều kiện ràng buộc IO dưới tải nặng.

+1

Đồng bằng CGI và FastCGI (thông qua CGI.pm và CGI :: Nhanh), triển khai mod_perl qua ModPerl :: Đăng ký, triển khai PSGI qua trình bao bọc bằng cách sử dụng Plack :: App :: WrapCGI –

+0

Tôi không chắc liệu có hệ điều hành hay không - hoặc lái xe bất khả tri cách băng ghế này .. bạn có thể tìm thấy một số công cụ cụ thể cho các trình điều khiển lưu trữ liên tục của bạn có thể cho bạn biết số liệu thống kê sử dụng, ví dụ byte được chuyển, thông lượng, v.v mà bạn có thể so sánh với các triển khai khác nhau của mình. Bạn cũng có thể muốn ném câu hỏi này ra trên http://serverfault.com để xem những tiện ích sử dụng đĩa nào tồn tại cho Linux? Nó không thực sự là một câu hỏi Perl nhiều như quản trị hệ thống. – Ether

+3

http://www.perl.org/about/whitepapers/perl-profiling.html – eSniff

Trả lời

2

Tôi khuyên bạn nên sử dụng Munin (http://munin-monitoring.org/).

Có rất nhiều plugin để xem hệ thống hoạt động như thế nào: cpu, i/o, bộ nhớ, sử dụng mạng, giao dịch mysql, ... gần như mọi thứ.

+0

Không chính xác câu trả lời tôi muốn xem, nhưng nó sẽ hữu ích. –

-1

Bạn có thể tạo một số thử nghiệm bằng cách sử dụng mô-đun Benchmark. Nó có chức năng đặc biệt để so sánh hai triển khai của cùng một chức năng. Trong khi nó không hoàn toàn xử lý các mức tải mô phỏng cho bạn, nó sẽ làm cho nó dễ dàng hơn nhiều để làm.

+0

Tôi biết về mô-đun Điểm chuẩn; vấn đề là mô phỏng tình huống áp suất I/O, hoặc sử dụng nó trên dữ liệu trực tiếp như đầu vào, hoặc sử dụng nó trong ứng dụng web. –

Các vấn đề liên quan