2009-07-10 30 views
6

Tôi đang viết một số mã trên thiết bị di động sử dụng dịch vụ REST để truy xuất dữ liệu từ máy chủ lưu trữ. Các dịch vụ REST đó đang được Apache ủy quyền. Trong chế độ thử nghiệm tôi muốn có thể mô phỏng cúp mạng (như thể thiết bị đã mất kết nối di động của nó) để kiểm tra các ứng dụng xử lý các lỗi không liên tục. Tôi cũng cần phải xác nhận hành vi của nó với các kết nối mạng chậm. Tôi hiện đang sử dụng Traffic Shaper XP để làm chậm kết nối mạng, nhưng bây giờ tôi cần một cái gì đó để làm cho máy chủ Apache gửi kết nối reset cả ngẫu nhiên và trên các trình tự được xác định trước (để thiết lập và lặp lại các kịch bản thử nghiệm cụ thể).Làm thế nào để làm cho apache chậm và không đáng tin cậy?

+1

Làm cho nó thực thi các tập lệnh PERL qua CGI. Điều đó sẽ làm chậm nó xuống. – skaffman

+0

Điều đó không thực sự hữu ích ở tất cả các nghệ sĩ. – Weegee

+0

Chiều Thứ Sáu. Tôi cảm thấy phù phiếm. – skaffman

Trả lời

1

Dường như dummynet là thứ gần nhất, nhưng vẫn không yên tĩnh ở đó. Đối với thử nghiệm lặp lại nó sẽ là tốt để có một số kiểm soát đối với các gói tin giảm và reset.

jack

2

Viết một proxy nhỏ chuyển tiếp kết nối TCP từ ứng dụng của bạn đến máy chủ apache và bạn có thể thiết lập trong thử nghiệm của mình để cắt kết nối sau x số byte hoặc mili giây.

0

Đây có phải là môi trường Unix hoặc Linux không? nice để ưu tiên thấp hơn, sau đó chạy tác vụ sử dụng CPU cao như nghe nhạc, phát phim, tính toán pi, v.v. Ưu tiên thấp cho Apache sẽ tạo ra các vấn đề tương tự như những gì bạn đang tìm kiếm.

+0

Đó là môi trường Windows (aaack). Tôi nghĩ rằng tôi có thể cần phải đứng lên một máy ảo Linux để thực sự có sự kiểm soát tôi cần. Tôi cũng nghĩ rằng tôi có thể cần phải viết một mô-đun apache để có được mức độ kiểm soát mà tôi muốn. –

+0

Bạn có thể thực hiện tương tự với Windows. Chỉ cần đặt mức độ ưu tiên thành thấp nhất (nếu nó cho phép bạn), và sau đó chạy [SuperPI] (http://www.xtremesystems.com/superpi/). – Weegee

0

Trên một khác nhau (hoặc trên cùng) máy tính sử dụng công cụ dòng lệnh ab để có được một số tải trên apache. Thêm thông tin here.

2

Trong Apache2, bạn có thể làm cho nó chậm bằng cách điều chỉnh cài đặt prefork trong apache2.conf. Các thiết lập dưới đây nên làm cho apache khá fn chậm. Họ đã làm cho ứng dụng web cục bộ của tôi mất thêm 700% thời gian để tải.

<IfModule mpm_prefork_module> 
    StartServers   2 
    MinSpareServers  2 
    MaxSpareServers  2 
    MaxClients   4 
    MaxRequestsPerChild 0 
</IfModule> 
Các vấn đề liên quan