2011-09-22 12 views
6

Hi Tôi là một lập trình viên mới và tôi đã làm việc trên ứng dụng thực sự đầu tiên của tôi mà tôi sẽ ra mắt trong những tuần tới. Ứng dụng sử dụng một số ý tưởng gọn gàng về chia sẻ ảnh, nhưng về cơ bản chỉ là một ứng dụng web chia sẻ ảnh. Tôi muốn tìm thông tin về loại tải một ứng dụng nhỏ nào có thể xử lý nhưng tôi không biết bắt đầu từ đâu. Tôi có cần chạy thử nghiệm đo điểm chuẩn để tìm xem có bao nhiêu yêu cầu mà nó có thể xử lý và tốc độ thực hiện điều này không? Làm thế nào để tìm thấy số liệu thống kê như thế này cho ứng dụng của họ?Rails 3 ứng dụng, làm thế nào để đo lường sự ổn định dưới tải cao

Cuối cùng, tôi muốn có ý tưởng về số lượng lưu lượng truy cập tối đa mà trang web có thể xử lý hoặc có thể xử lý một ngày nào đó, để nhận được thông báo giảm giá với những gì tôi đang làm việc. Tôi sẽ không muốn thiết lập một chiến dịch tiếp thị lan truyền nếu trang web không thể xử lý trên vài trăm yêu cầu đồng thời. Tôi không cố gắng để nhảy súng và chuẩn bị cho một tấn lưu lượng truy cập mà tôi chưa có, nhưng tôi thực sự muốn có một số hiểu biết và một ý tưởng về nơi để đi tiếp theo trong điều khoản như thế nào khả năng sử dụng và khả năng mở rộng của tôi ứng dụng.

Cảm ơn rất nhiều!

Trả lời

4

Câu hỏi lớn ở đây là có thì bạn triển khai ứng dụng của bạn:

tôi đăng cai một số của tôi về một trường hợp linode, sử dụng nginx/lân. Đó là công việc đáng kể hơn nhưng tôi thích nó. Tôi không bận tâm tải thử nghiệm nhiều nhưng đôi khi tôi nhấn các trang chủ cứng với Siege (bạn có thể cài đặt nó với homebrew, brew install siege) để có được một cảm giác về những gì tôi đang làm việc với.

Khi đang trong quá trình triển khai, tôi cho rằng việc lưu trữ trả tiền từ Heroku sẽ nâng cao một số lo ngại của bạn về tính ổn định, nâng cấp cài đặt ứng dụng của bạn để tồn tại các tải lớn hơn.

Bạn có thể cung cấp cho chúng tôi thêm thông tin về các lựa chọn lưu trữ của bạn không?

+0

Hi cảm ơn vì sự giúp đỡ. Tôi đang lưu trữ bằng cách sử dụng heroku nhưng tôi không chắc chắn loại thiết lập nào tôi cần để xử lý lưu lượng truy cập vừa phải? –

1

"loại tải một ứng dụng có thể xử lý xxxx"

Bạn là chính xác. Để trả lời câu hỏi này, chúng tôi sẽ kiểm tra! Nếu không có thử nghiệm, chúng tôi không thể chỉ đơn giản nói điều gì đó rộng như ứng dụng ruby ​​của chúng tôi, chạy trên 2 dyno từ heroku, có thể xử lý 100 yêu cầu/giây hoặc 100 người dùng đồng thời. Chúng ta cần kiểm tra. Mở rộng quy mô cũng có thể là một doanh nghiệp khó khăn. Nếu không có thử nghiệm, chúng tôi sẽ không biết thành phần nào có quy mô tốt và những thành phần nào không.

Để bắt đầu, chúng tôi có ứng dụng của chúng tôi, hệ thống đang được kiểm tra. Chúng tôi đã chạy trên Heroku, cho phép chúng tôi truy cập ngay vào số New Relic thêm vào. Chúng tôi có thể thử bật phiên bản miễn phí của Relic mới để xem thông tin nào cung cấp cho chúng tôi. Có một phiên bản trả tiền, chúng tôi cũng có thể thử trong 'các phiên điều chỉnh' nếu chúng ta cần phải đi sâu hơn nữa.

Sau đó, chúng tôi chỉ thiếu 'trình điều khiển', quá trình sẽ thúc đẩy tải đối với ứng dụng, sử dụng quy trình phổ biến nhất (tải lên hình ảnh, duyệt hình ảnh, đăng nhập, v.v.).

Để bắt đầu, chúng tôi chỉ cần 1-N trong số những người bạn thân nhất của chúng tôi sẵn sàng hành động như người dùng trên trang web của chúng tôi trong khi chúng tôi giám sát tất cả hoạt động từ New Relic. Đo thời gian phản hồi cho trải nghiệm người dùng, xác định các truy vấn chạy chậm, xem nơi ứng dụng của chúng tôi dành thời gian của nó.

Khi chúng tôi cảm thấy mệt mỏi khi mua bạn bè của chúng tôi tất cả các bia để giúp chúng tôi, chúng tôi có thể xem xét tự động hóa một số luồng kinh doanh thông thường bằng cách sử dụng công cụ kiểm tra tải.Có những thương mại: Mercury LoadRunner, Borland SilkPerformer và Microsoft Team Test.

Chúng tôi cũng có thể sáng tạo bằng cách sử dụng các công cụ kiểm tra chức năng như Watir hoặc Selenium hoặc thậm chí là wget đáng tin cậy hoặc cuộn tròn để tăng tải.

Chúng tôi có thể sử dụng (các) máy tính xách tay của chúng tôi, hoặc Amazon EC2, làm tác nhân tải, sẽ tạo lưu lượng người dùng trên trang web bằng cách chạy tập lệnh của chúng tôi.

Nó không phải là khó khăn như tất cả điều này, mặc dù thử nghiệm thường xoắn vào một vũng lầy nếu chúng ta không cẩn thận để đảm bảo chúng tôi đang kiểm tra dòng chảy đúng và có thể cũng quan trọng, đo lường ứng dụng của chúng tôi. Nếu không có phép đo, chúng tôi sẽ không biết nếu thay đổi mã hoặc cấu hình, làm mọi việc tốt hơn hoặc tệ hơn.

tuyên bố từ chối trách nhiệm: Tôi chưa bao giờ có ứng dụng Rails sản xuất, nhưng nếu có, tôi sẽ sử dụng New Relic để theo dõi nó. Ít nhất để bắt đầu, đặc biệt là kể từ khi chúng tôi đã có trên Heroku.

1

Tôi đã không thử nó chưa nhưng tôi nghe nói về:

http://blitz.io/

Trông tốt và được hỗ trợ bởi Heroku qua Add-On