2012-05-11 52 views
17

Tôi muốn lưu trữ một trang web tĩnh trên Heroku, nhưng không chắc chắn có bao nhiêu dynos để bắt đầu.Cần bao nhiêu dynos để lưu trữ một trang web tĩnh trên Heroku?

Nó nói trên trang này: https://devcenter.heroku.com/articles/dyno-requests rằng số lượng yêu cầu mà một dyno có thể phân phối, phụ thuộc vào ngôn ngữ và khung được sử dụng. Nhưng tôi cũng đã đọc ở đâu đó rằng 1 dyno chỉ xử lý một yêu cầu tại một thời điểm.

Một chút nhầm lẫn ở đây, nên 1 web dyno đủ để lưu trữ một trang web tĩnh với lưu lượng truy cập rất nhỏ (< 1000 lượt xem/tháng, < 10/giờ)? Và làm thế nào bạn sẽ đi về ước tính sử dụng thêm dynos như lưu lượng truy cập bắt đầu tăng?

Hy vọng tôi đã đọc chính xác câu hỏi của mình. Sẽ thực sự đánh giá cao đầu vào của bạn, cảm ơn trước!

+4

Tại sao bạn sẽ lưu trữ một trang web tĩnh bằng Heroku? Nó có vẻ như bạn sẽ nhận được nhiều bang cho buck của bạn với Amazon S3 hoặc một máy chủ chia sẻ hoặc một cái gì đó. –

+0

@ brendan-long, bạn có thể giải thích tại sao không? Hoặc liên kết đến một số nguồn nơi tôi có thể tìm hiểu thêm? – Gbert90

+0

Heroku được thiết kế cho các trang web động và được định giá phù hợp. Mỗi dyno là ~ $ 35/tháng, và về cơ bản là một chủ đề làm bất cứ điều gì bạn muốn.Đối với cùng một mức giá, Amazon S3 sẽ chuyển 300 GB tập tin cho bạn (rất có thể giá lưu trữ là không đáng kể cho bạn), và nó sẽ làm điều đó nhanh như bạn muốn (không giới hạn trong một chủ đề). Về cơ bản nó sẽ quy mô tốt hơn nhiều, và cũng rẻ hơn. –

Trả lời

48

Một chút miffed kể từ khi tôi đã có một câu trả lời hoàn toàn hợp lệ đã bị xóa nhưng đây là một nỗ lực khác.

Heroku dynos là một chuỗi duy nhất, do đó, chúng có khả năng xử lý một yêu cầu duy nhất tại một thời điểm. Nếu bạn có một trang động (php, ruby, vv) thì bạn sẽ xem xét một trang cần phản hồi bao lâu ở máy chủ, cho biết mất 250ms để trả lời sau đó một dyno có thể xử lý 4 yêu cầu một giây. Thêm nhiều dynos tăng hiệu suất đồng thời KHÔNG. Vì vậy, nếu bạn có 2 dynos, trong trường hợp này bạn có thể xử lý 8 yêu cầu mỗi giây.

Vì bạn chỉ đang nói các trang tĩnh nên thời gian phản hồi của chúng sẽ nhanh hơn rất nhiều so với điều này. Cách tốt nhất của bạn để xác định xem bạn có cần nhiều hơn không là xem xét đầu ra của nhật ký heroku của bạn và xem liệu bạn có duy trì mức giá trị 'hàng đợi' hay không; điều này có nghĩa là các dynos không thể theo kịp và các yêu cầu đang được xếp hàng chờ xử lý.

+0

Cảm ơn nỗ lực của bạn # 2! Đây là một câu trả lời tốt bằng văn bản! – Gbert90

+0

Cảm ơn bạn vì một câu trả lời tuyệt vời, được viết tốt! Bạn có một món quà để giải thích những điều phức tạp theo một cách đơn giản để hiểu! –

+0

được giải thích rất rõ, tôi đã dành rất nhiều thời gian để tìm hiểu cách thức hoạt động của dynos. Thx – levi

3

Vì hầu hết HTTP 1.1 clients will create two TCP connections đến máy chủ web khi yêu cầu tài nguyên, tôi có linh hoạt bạn sẽ thấy hiệu suất tốt hơn trên các máy khách đơn nếu bạn bắt đầu hai dynos, do đó yêu cầu tài nguyên pipelined của khách hàng cũng có thể được xử lý.

Bạn sẽ phải quyết định xem liệu nó có đáng giá thêm tiền cho hiệu suất được cải thiện (có khả năng nhẹ) của một khách hàng không.

Nếu bạn dự đoán có nhiều khách hàng yêu cầu thông tin cùng một lúc, thì có thể bạn sẽ muốn nhiều hơn hai dynos, chỉ để đảm bảo ít nhất một ứng dụng sẵn sàng cho khách hàng bổ sung.

3

Trong trường hợp này, nếu bạn ở lại với một dyno. Cái đầu tiên miễn phí, cái thứ hai đặt bạn vượt quá mức tối thiểu hàng tháng và bắt đầu kích hoạt chi phí.

Nhưng, bạn cũng nên nhận ra với một dyno trên Heroku, ứng dụng sẽ chuyển sang chế độ ngủ nếu nó chưa được truy cập gần đây (tôi nghĩ đây là khoảng 30 phút). Trong trường hợp đó, có thể mất 5-10 giây để tỉnh lại và có thể cung cấp cho người dùng trải nghiệm ban đầu rất chậm.

Có các dịch vụ web sẽ ping trang web của bạn, kiểm tra phản hồi của trang web và giữ cho nó tỉnh táo. Ví dụ: http://www.wekkars.com/.

+0

Điều này thực sự là một vấn đề quan trọng với dynos đơn. Tôi quản lý để giải quyết nó với addon mới (https://addons.heroku.com/newrelic) addon trong heroku, mà (trong phiên bản miễn phí) cung cấp cho bạn khả năng ping và cũng thống kê sử dụng để kiểm tra xem hàng đợi của bạn có đang nhận được không quá cao và bạn cần nhiều dynos hơn. – syonip

+0

Bây giờ tôi sử dụng runscope cho việc này. Tôi đã sử dụng nó để ping và kiểm tra kết quả từ một máy chủ bên ngoài. Hoạt động tuyệt vời để giữ cho ứng dụng luôn hoạt động. – Swards

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