Có bao nhiêu yêu cầu máy chủ web của tôi có thể xử lý?


39

Không đi sâu vào chi tiết cụ thể về thông số kỹ thuật vì tôi biết không có câu trả lời thực sự cho việc này. Nhưng tôi đã thực hiện kiểm tra tải ngày hôm nay với ablệnh trong apache.

Và đã nhận được số lượng 70 yêu cầu mỗi giây (1000 yêu cầu với 100 người dùng đồng thời), trên một trang đang tải từ 4 bảng DB khác nhau và thực hiện một số thao tác với dữ liệu. Vì vậy, nó là một trang khá nặng.

Hiện tại, máy chủ không được sử dụng cho bất kỳ thứ gì khác và tải cho nó chỉ là tôi, vì nó đang được phát triển. Nhưng ứng dụng sẽ được sử dụng hàng ngày bởi nhiều người dùng.

Nhưng điều này đã đủ chưa? Hoặc tôi thậm chí nên lo lắng (miễn là trên X yêu cầu một giây)

Tôi nghĩ rằng tôi không nên lo lắng nhưng tôi muốn một số lời khuyên về điều này.

Câu trả lời:


44

70 yêu cầu mỗi giây hoạt động với tốc độ hàng giờ là 252.000 trang kết xuất / giờ.

Nếu bạn cho rằng phiên duyệt trung bình cho trang web của bạn sâu 10 trang, thì bạn có thể hỗ trợ 25.000 lượt xem / giờ.

Bạn có thể nên kiểm tra những con số này so với số lượng khách truy cập dự kiến ​​của bạn, số này sẽ có sẵn từ những người ở phía doanh nghiệp.

Nhiều trang web tôi làm việc đã thấy khoảng 50% lưu lượng truy cập hàng ngày của họ trong khoảng thời gian cao điểm khoảng 3 giờ mỗi ngày. Nếu đây là trường hợp với trang web của bạn (tùy thuộc vào loại nội dung bạn cung cấp và đối tượng), thì bạn sẽ có thể hỗ trợ số lượt truy cập hàng ngày khoảng 150.000.

Đây là những con số khá tốt; Tôi nghĩ bạn sẽ ổn. Bây giờ thật khôn ngoan khi xem xét bộ nhớ đệm opcode và điều chỉnh cơ sở dữ liệu, nhưng hãy nhớ rằng tối ưu hóa sớm là gốc rễ của mọi tội lỗi. Giám sát trang web, tìm kiếm các điểm nóng và chờ lưu lượng truy cập tăng lên trước khi bạn trải qua một nỗ lực tối ưu hóa đắt tiền cho một vấn đề bạn có thể không gặp phải.


Câu trả lời rất tốt, chính xác những gì tôi đang tìm kiếm. Tôi chưa thực hiện bất kỳ tối ưu hóa nào và muốn lấy số cơ sở để xem nơi tôi đang ngồi hiện tại.
Chờ đợi Ólafur

"Nếu bạn cho rằng phiên duyệt trung bình cho trang web của bạn sâu 10 trang, thì bạn có thể hỗ trợ 25.000 lượt xem / giờ" ... với giả định rằng mỗi lần duy nhất gửi một yêu cầu mỗi giây trong phiên. Nếu khách truy cập cần suy nghĩ trước lần nhấp / yêu cầu tiếp theo - ví dụ 5 giây - bạn sẽ có thể hỗ trợ nhiều khách truy cập hơn trong các phiên song song.
Joool Schulenklopper

Tôi hoàn toàn đồng ý về "tối ưu hóa sớm" từ góc độ mã. Nhưng, chọn một thiết kế thiếu sót như một tổng thể thực sự là gốc rễ của mọi tội lỗi. Không có gì có thể vượt qua một thiết kế thiếu sót, ngoại trừ viết lại.
Jeff Fischer

5

Tôi đã sử dụng 2 công cụ để xem hiệu suất của các máy chủ apache của tôi trong quá khứ.

Một là munin , biểu đồ tất cả các loại, bao gồm số trường hợp apache, số lượng kết nối, bộ nhớ khả dụng, sử dụng bộ xử lý, v.v. - và giúp tôi xác định khi nào tôi đến gần khu vực nguy hiểm và tại sao.

Trang thứ hai chỉ đơn giản là trang trạng thái máy chủ apache ( http: // your_server / server-status? Refresh = 10 ) cho phép tôi xem trạng thái của từng kết nối, cùng với bao nhiêu kết nối miễn phí có sẵn tại bất kỳ thời điểm nào.


1

Tôi khuyên bạn chỉ nên lo lắng nếu bạn nghĩ rằng ứng dụng của bạn sẽ rất bận rộn khi ứng dụng này chạm đất. Là trang trong câu hỏi có khả năng bị ảnh hưởng nặng nề? Khó hơn? Ít hơn? Nếu bạn không biết, tôi sẽ nghi ngờ rằng nó không có khả năng là vấn đề sớm hơn. Nếu đó là trang chậm nhất của bạn, bạn sẽ biết một nơi để xem nếu bạn phải tối ưu hóa hệ thống sau này.

Ngoài ra còn có rất nhiều điều bạn có thể làm để điều chỉnh hầu hết các máy chủ web và công cụ cơ sở dữ liệu để tăng thêm hiệu suất.


Tôi muốn được chuẩn bị cho một chút yêu cầu, ví dụ một trang rất nhanh có thể xử lý khoảng 110 yêu cầu mỗi giây. Trong khi máy chủ có thể xử lý 2900 rps trên một trang trống.
Chờ đợi Ólafur

0

Bạn nêu trong một nhận xét rằng máy chủ của bạn có thể xử lý 2.900 yêu cầu mỗi giây trên một trang trống. Điều đó cho thấy khá mạnh mẽ rằng đó không phải là chính máy chủ web - đó là quá trình xử lý.

Nếu bạn đang sử dụng PHP, hãy xem xét một mã hóa opcode như APC . Nếu DB là một nút cổ chai, memcached cũng sẽ giúp bạn.


Không đặc biệt lo lắng về con số nếu 70 rps là đủ.
Chờ đợi Ólafur

0

Khi bạn đặt trang web của mình trực tiếp, bạn cũng có thể xem mod_top 1 sẽ cung cấp cho bạn chế độ xem thời gian thực về tải hiện tại trên Apache. Tôi đã không tự cài đặt nó nhưng dường như chắc chắn có nhiều thông tin hơn và khả năng tải tốt hơn trạng thái máy chủ Apache tiêu chuẩn.

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.