Tôi hiện đang làm việc trên một số mã nặng Ajax và tôi tự hỏi máy chủ của mình sẽ mở rộng như thế nào và ngày càng nhiều người dùng (hy vọng) bắt đầu sử dụng ứng dụng web của tôi. Nó chỉ là trên máy chủ thử nghiệm nội bộ của tôi cho thời điểm này và tôi đã tự hỏi làm thế nào tôi sẽ đi về mô phỏng một vài trăm hoặc hàng ngàn người sử dụng để tôi có thể xem làm thế nào nó xử lý một tải nặng hơn. Nó được viết bằng PHP/MySQL và tôi thực sự không muốn tìm hàng trăm máy tính để thiết lập và kiểm tra thủ công :) Cảm ơn trước, bất kỳ lời khuyên hoặc hướng nào được đánh giá cao.Kiểm tra Mã Vạch
Trả lời
Apache Benchmark. Nó đi kèm với Apache Web Server. Hoạt động giống như thế này: Đối với 100 yêu cầu sử dụng 10 chủ đề đồng thời, sử dụng lệnh này:
ab -n 100 -c 10 http://localhost/
Thay thế url cục bộ bằng url mà mã AJAX của bạn sẽ gọi. Đầu ra sẽ cung cấp cho bạn một báo cáo tốt đẹp về cách các yêu cầu được xử lý. Một số những con số thú vị là:
Complete requests
Failed requests
Requests per second
Những gì tôi đã làm, mà sẽ cung cấp cho một ý tưởng rất thô, là viết một ứng dụng mà có thể tạo ra hàng chục hoặc hàng trăm chủ đề, sau đó nhấn ngẫu nhiên hàng chục máy chủ lần mỗi , với người dùng duy nhất.
Vì vậy, tôi đã có 100 người dùng thử nghiệm duy nhất và tôi sẽ tạo 100 chủ đề và chỉ ngẫu nhiên tiếp tục thực hiện một số thao tác trong khoảng thời gian ngẫu nhiên.
Điều này sẽ cho biết nếu bạn có một số vấn đề về quy mô.
Cuối cùng, bạn sẽ gặp sự cố, vì bạn chỉ có một kết nối mạng, do đó sẽ điều chỉnh tốc độ một số, vì vậy nó không hoàn hảo.
Bạn cũng có thể sử dụng junitperf để trợ giúp điều này, vì sau đó bạn có thể xem liệu mỗi thử nghiệm có mất quá nhiều thời gian để trả lời hay không. Đặt cược tốt nhất là thực hiện các xét nghiệm này, đặt chúng trên càng nhiều máy càng tốt, và chạy chúng cùng một lúc, để có 10 máy tính mỗi giả vờ là 10 hoặc 100 người có hiệu quả hơn việc có một máy tính giả vờ như một máy tính giả vờ. để trở thành một trong những người này.
Bạn sẽ không muốn máy chủ web và thử nghiệm trên cùng một máy tính, nếu không điều đó sẽ làm hỏng nghiêm trọng kết quả vì máy chủ web sẽ chỉ nhận được một số chu kỳ CPU.
Vì vấn đề này, tôi sẽ ghi lại phiên người dùng. Sau đó viết mã máy khách sao chép tập hợp các cuộc gọi đó.
Một tùy chọn khác sẽ là sử dụng VMware. (lưu ý, tôi là một nhân viên) Chỉ cần tạo một loạt các máy ảo và kết nối với trang web của bạn với mỗi người trong số họ. Vẫn có nghĩa là rất nhiều công việc thủ công, nhưng ít nhất bạn không cần nhiều máy để thực hiện thử nghiệm.
Tôi khuyên bạn nên LoadUI http://www.loadui.org/
Trong bối cảnh giống như 'ab', có Tsung - http://tsung.erlang-projects.org/ Tôi đã sử dụng và nó là một công cụ tuyệt vời. – inerte