Kích hoạt KeepAlive hay không?


9

Sự đồng thuận về KeepAlive là gì với một trang web Magento có lưu lượng truy cập cao? Có vẻ như hầu hết mọi người khuyên nên sử dụng nó nhưng sau đó Magento tuyên bố bỏ qua Hiệu suất và Khả năng mở rộng tối đa của họ với Magento Enterprise Edition, họ tuyên bố

"Khi một máy chủ web bị tải nặng, việc giữ các kết nối liên tục trở nên bất lợi, do đó, lệnh KeepAlive phải luôn bị vô hiệu hóa"

Suy nghĩ?

Câu trả lời:


4

Câu hỏi tuyệt vời!

Theo truyền thống, KeepAlive là một điều tốt vì nó giảm đáng kể chi phí TCP của tổng tải trang, trong đó nhiều yêu cầu (như tất cả các hình ảnh, css, js) đang được phục vụ từ một máy chủ. Nếu trang của bạn có 85 tài sản, đó là 85 bắt tay TCP ba chiều bổ sung và độ trễ sẽ tăng thêm. Nhiều năm trước với các kết nối Internet chậm hơn, điều này quan trọng hơn nhiều so với bây giờ, mặc dù nó vẫn khá phù hợp với các trình duyệt di động hoặc bất kỳ kết nối chậm / cao nào.

Tác động được đề cập ở đây mặc dù liên quan đến lượng thời gian các kết nối TCP đó được giữ mở và liệu điều đó có thể nhanh chóng làm cạn kiệt các quy trình con Apache của bạn hay không. Hầu hết các mặc định tôi đã thấy là:

KeepAliveTimeOut 15
MaxClients 256

Điều này có nghĩa là nếu tôi có 256 trình duyệt khác nhau yêu cầu nội dung trong cùng 15 giây, thì máy khách thứ 257 sẽ phải chờ các kết nối tắt. Không tốt - đây không phải là lưu lượng truy cập đặc biệt cao, vì vậy nó giải thích lời khuyên đó. Nó cũng có thể khiến người ta tăng MaxCl Client để đối phó, có thể ăn rất nhiều bộ nhớ. Khi tôi sử dụng KeepAlives, tôi thường đặt KeepAliveTimeout thành 2 hoặc 3 giây; đó là thời gian nhàn rỗi giữa các yêu cầu thay vì toàn bộ thời gian cho tất cả các yêu cầu.

Nếu bạn đang sử dụng KeepAlive, sẽ có một hành động cân bằng giữa KeepAliveTimeout, MaxCl Client và tài nguyên máy chủ. Để giải quyết vấn đề đó, một 'dịch vụ httpd / apache2 fullstatus' sẽ hiển thị cho bạn số lượng kết nối đang được KeepAlives sử dụng bất cứ lúc nào - được biểu thị bằng chữ hoa 'K'.

Đối với Magento, tôi không nghĩ bạn cần KeepAlives.

Những gì bạn nên làm nếu bạn có một trang web Doanh nghiệp có lưu lượng truy cập rất cao, đang sử dụng CDN cho nội dung tĩnh của bạn.

Nếu bạn đang bán hàng ở nhiều quốc gia, sử dụng CDN sẽ không chỉ tăng tốc độ tải trang tổng thể cho khách hàng của bạn (điều này tốt) mà còn giảm mạnh băng thông đến máy chủ của bạn. Các cài đặt trong Hệ thống> Cấu hình> Web> [Không] an toàn làm cho việc tích hợp bất kỳ CDN nào cho Phương tiện, Giao diện và JavaScript thực sự không quan trọng. Đây sẽ là phần lớn các yêu cầu HTTP thực tế và như một phần thưởng, bạn có thể sử dụng các bản ghi DNS khác nhau để tải xuống song song trên các tên máy chủ. Nếu bạn thực hiện đúng thì những yêu cầu đó sẽ hầu như không chạm vào máy chủ của bạn, vì vậy không còn nhu cầu thực sự nữacho KeepAlive. Trong trường hợp này, bạn nên vô hiệu hóa KA; chúng tôi không muốn giữ kết nối trực tiếp khi chúng tôi biết phần còn lại của nội dung đang được phục vụ từ một nơi khác. Nếu bạn muốn có đề xuất CDN độc lập: CloudFlare thật tuyệt vời và thậm chí bạn còn nhận được SSL với gói miễn phí.

Khi sử dụng CDN như thế này hoặc nếu bạn đang sử dụng bất kỳ loại proxy ngược nào khác (như Varnish), Apache HTTP KeepAlives của bạn về cơ bản không liên quan.

Tóm lại, tôi đồng ý rằng có lẽ bạn nên vô hiệu hóa KeepAlive để tránh bão hòa các quy trình Apache của bạn khi tải, nhưng chắc chắn sử dụng CDN hoặc proxy ngược khác cho các tài sản, để giữ cho trang của bạn tải nhanh nhất có thể.


1
Keepalives vẫn có liên quan trong quá trình rút nguồn gốc từ CDN. Kích hoạt / vô hiệu hóa không nên được xem nhẹ và nên được kiểm tra kỹ lưỡng. Tôi ủng hộ việc giảm yêu cầu, giảm béo tài sản trước cả khi xem xét CDN - bị định cấu hình sai, chúng có thể dễ dàng khiến các cửa hàng chậm hơn, nhanh hơn.
Ben Lessani - Sonassi

Làm cách nào để thiết lập hệ thống cài đặt cục bộ này cho máy chủ XAMPP?
bhavin thummar
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.