Có cách nào để kiểm tra trang web sẽ hoạt động như thế nào khi tải không


9

Tôi đã tạo một trang web Asp.net MVC và lưu trữ nó trên một nhà cung cấp dịch vụ lưu trữ được chia sẻ. Vì trang web của tôi bao quanh một ý tưởng rất chung chung, đôi khi nó có thể có số lượng người dùng đồng thời trong tương lai.

Vì vậy, tôi đã nghĩ đến một cách để kiểm tra trang web của mình về hiệu suất khi tải. Giống như trang web sẽ hoạt động như thế nào khi 100 hoặc 1000 người dùng trực tuyến cùng lúc và lướt trang web. Điều này cũng sẽ khiến tôi hiểu liệu các truy vấn LINQ của tôi có được viết tốt hay không.

Câu trả lời:


12

Trước hết, thuật ngữ thích hợp là kiểm tra căng thẳng . Có khá nhiều giải pháp cho các bài kiểm tra căng thẳng của trang web, một giải pháp được lưu trữ mà tôi khuyên dùng là loadimpact . Những gì họ làm là bắn phá trang web của bạn với các yêu cầu từ các máy chủ khác nhau trên toàn thế giới và cung cấp cho bạn một báo cáo phân tích về cách trang web của bạn xử lý căng thẳng. Họ có một bài kiểm tra miễn phí, nơi bạn có thể có được một ý tưởng chung, nhưng để có nhiều hơn bạn sẽ phải trả một khoản phí đăng ký.

Những loại kiểm tra chỉ kiểm tra các trang web từ các du khách chỉ xem, để biết thông tin cụ thể hơn bạn nên cấu hình ứng dụng của bạn tại địa phương, và tôi không thực sự có bất cứ điều gì hơn để thêm vào các câu trả lời trước, tôi đang sử dụng Apache JMeter cũng .

Và cuối cùng, như bất kỳ nhà phát triển web có ý thức về hiệu suất, bạn nên xem YSlow :

YSlow phân tích hiệu suất trang web bằng cách kiểm tra tất cả các thành phần trên trang, bao gồm các thành phần được tạo động bằng cách sử dụng JavaScript. Nó đo hiệu suất của trang và đưa ra các đề xuất cải tiến.

YSlow cho Firefox được tích hợp vào công cụ phát triển web Fireorms cho Firefox.

Thường xuyên hơn không, tôi thấy Javascript là nút cổ chai thực tế và không phải là mã kết thúc hoặc cơ sở dữ liệu. Tất nhiên các truy vấn được viết xấu có thể là một hình phạt hiệu suất lớn, nhưng sau khi bạn xử lý chúng, luôn chạy YSlow và làm theo các đề xuất của nó, đó là một trình cứu sinh.

Đọc thêm:

trên StackOverflow, tất nhiên!


Khám phá các giải pháp khác trước khi bạn trả phí đăng ký của loadimpact, tất nhiên. Có khá nhiều giải pháp tương tự. Tôi thích nó, nhưng công việc phải trả phí chứ không phải tôi :)
yannis

Tôi sẽ sử dụng thử nghiệm miễn phí .... hiện tại tôi không muốn thử nghiệm nghiêm ngặt, vì hiện tại nó không có ý nghĩa gì cả .... chỉ muốn có ý tưởng :-)
Pankaj Upadhyay

7

Bạn đang sử dụng dịch vụ lưu trữ được chia sẻ để không thể chạy bất kỳ bài kiểm tra nào cho thấy hiệu suất chính xác, vì không có gì đảm bảo mức độ tài nguyên mà ứng dụng của bạn sẽ truy cập bất cứ lúc nào.

Tuy nhiên, những gì tôi sẽ làm trong tình huống đó là bắt đầu bằng cách chạy thử nghiệm cách ly trên hộp chuyên dụng (đây có thể là máy tính xách tay của riêng bạn); sử dụng một công cụ như bộ Visual Studio Load Test hoặc JMeter (mà cá nhân tôi không thể chịu được) và xây dựng một bộ thử nghiệm thể hiện một đường dẫn điển hình thông qua ứng dụng của bạn (bạn sẽ có thể nhận thông tin về một đường dẫn thông thường thông qua việc sử dụng của Google Analytics. Nếu điều này không có sẵn, bạn chỉ có thể sử dụng một cái mà bạn nghĩ là có khả năng, nhưng hãy nhớ rằng điều này sẽ không đưa ra một đường cơ sở chính xác). Sau đó thực hiện kiểm tra tăng tốc, bắt đầu từ 1 người dùng, sau đó từ từ thêm người dùng cho đến khi bạn đạt được mức tải tối đa ước tính. Điều đó sẽ cho bạn thấy toàn bộ hệ thống của bạn nắm giữ tốt như thế nào (cá nhân tôi muốn đưa nó đi xa hơn một chút để đảm bảo rằng tôi đã có một khoảng không gian).

Điều cuối cùng bạn sẽ muốn làm là chạy một công cụ định hình như trình lược tả hiệu suất ANTS trong khi chạy thử nghiệm (lưu ý rằng điều này sẽ thêm một số chi phí). Điều này sẽ cho phép bạn xác định các truy vấn và phương thức chạy dài, cung cấp cho bạn các gợi ý về nơi ứng dụng của bạn thực sự chậm (một mẹo: gần như không bao giờ thực sự bạn nghĩ nó sẽ ở đâu).

Vấn đề chính mà bạn sẽ có là, như tôi đã nói trước tiên, rằng bạn đang sử dụng dịch vụ lưu trữ được chia sẻ, do đó sẽ không thể thực hiện bất kỳ mô phỏng môi trường sống thực tế nào. Tuy nhiên, nếu ứng dụng của bạn có số lượng lớn khoảng trống trên một môi trường tương tự như tài nguyên đã hứa, bạn nên tin tưởng rằng mã có thể giữ được trong lưu trữ của bạn, ngay cả khi bạn đạt đến giới hạn của môi trường trước khi bạn mong đợi.


cảm ơn vì đã làm sáng tỏ sự khác biệt giữa thử nghiệm lưu trữ được chia sẻ và máy chủ của chính mình.
Pankaj Upadhyay

3

Bạn có thể xem xét các công cụ như JMeter hoặc The mài .

Cho đến nay tôi chỉ sử dụng JMeter, đây là một công cụ đồ họa cho phép bạn xây dựng các kế hoạch kiểm tra khá dễ dàng. Bạn có thể mô phỏng nhiều người dùng với nhiều chủ đề. Bạn cũng có thể ghi lại các cách sử dụng điển hình của trang web của mình bằng cách liên kết trình duyệt của bạn với proxy JMeter và thực hiện công việc thực tế, do đó bạn không cần phải tự viết các yêu cầu từ đầu. Máy mài dựa trên kịch bản nếu tôi nhớ chính xác, cũng có thể phù hợp.


1

Tôi cũng thích Loadimpact để kiểm tra căng thẳng. Một điều tôi có xu hướng sử dụng để kiểm tra nhanh trên trang web của mình là Apache Bench. Khi tôi muốn chạy một số thử nghiệm cuối cùng, tôi sẽ hướng tới một dịch vụ trả tiền.

Công việc của tôi cũng đầu tư vào WebLoads, rất tốn kém nhưng cho phép chúng tôi kiểm tra tất cả các trang web của chúng tôi trong nội bộ. Tôi không khuyên bạn mặc dù.


0

Tôi không nghĩ việc kiểm tra tải có thể được thực hiện thủ công vì nó sẽ tiêu tốn nhiều thời gian hơn dự kiến ​​và sẽ là một công việc tẻ nhạt. Bạn có thể có thể đi cho Load Runner có thể dành cho nhiều người dùng.


0

Tập lệnh Autohotkey (AHK) có thể mô phỏng người dùng. Hãy để nó chạy cả ngày.

Bạn có thể để nó chạy trên một số hộp để mô phỏng một vài người dùng. Điều tốt đẹp là phong cách thử nghiệm hoàn toàn dưới sự kiểm soát của bạn. Bạn có thể có 1 tập lệnh AHK đang spam một tính năng báo cáo và xem liệu nó có ảnh hưởng đến người dùng các tính năng khác không.

Mặc dù tôi không quen với khả năng phân luồng của AHK nên việc mô phỏng hàng ngàn người dùng có thể khó khăn. Bạn có thể bị ràng buộc bởi số lượng máy tính bạn có.

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.