Tôi đã giả định không chính xác rằng thử nghiệm AB nội bộ của tôi có nghĩa là máy chủ của tôi có thể xử lý 1k lượt truy cập đồng thời @ 3k lượt truy cập mỗi giây.
Lý thuyết của tôi tại thời điểm này là mạng là nút cổ chai. Máy chủ không thể gửi đủ dữ liệu đủ nhanh.
Thử nghiệm bên ngoài từ blitz.io ở mức 1k đồng thời cho thấy số lần truy cập / s của tôi bị giảm ở mức 180, với các trang mất nhiều thời gian hơn và lâu hơn để phản hồi vì máy chủ chỉ có thể trả về 180 mỗi giây.
Tôi đã phục vụ một tệp trống từ nginx và đã chuẩn bị nó: nó tỷ lệ 1: 1 với sự tương tranh.
Bây giờ để loại trừ các tắc nghẽn IO / memcached (nginx thường lấy từ memcached), tôi cung cấp một phiên bản tĩnh của trang được lưu trong bộ nhớ cache từ hệ thống tệp.
Kết quả rất giống với thử nghiệm ban đầu của tôi; Tôi bị giới hạn ở khoảng 180 RPS.
Việc chia đôi trang HTML mang lại cho tôi gấp đôi RPS, do đó chắc chắn nó bị giới hạn bởi kích thước của trang.
Nếu tôi nội bộ ApacheBench từ máy chủ cục bộ, tôi sẽ nhận được kết quả nhất quán khoảng 4k RPS trên cả Trang đầy đủ và Nửa trang, với tốc độ truyền cao. Tốc độ truyền: 62586,14 [Kbytes / giây] đã nhận được
Nếu tôi AB từ một máy chủ bên ngoài, tôi nhận được khoảng 180RPS - giống như kết quả blitz.io.
Làm thế nào để tôi biết đó không phải là điều tiết lưu ý?
Nếu tôi điểm chuẩn từ nhiều máy chủ bên ngoài, tất cả các kết quả sẽ trở nên kém khiến tôi tin rằng vấn đề nằm ở lưu lượng truy cập của máy chủ MY, không phải là vấn đề về tốc độ tải xuống với máy chủ điểm chuẩn của tôi / blitz.io.
Vì vậy, tôi trở lại kết luận của mình rằng máy chủ của tôi không thể gửi dữ liệu đủ nhanh.
Tôi có đúng không Có những cách khác để giải thích dữ liệu này? Là giải pháp / tối ưu hóa để thiết lập nhiều máy chủ + cân bằng tải, mỗi máy có thể phục vụ 180 lần truy cập mỗi giây?
Tôi còn khá mới với tối ưu hóa máy chủ, vì vậy tôi đánh giá cao bất kỳ xác nhận nào diễn giải dữ liệu này.
Giao thông đi
Dưới đây là thông tin thêm về băng thông đi: Biểu đồ mạng hiển thị đầu ra tối đa 16 Mb / giây: 16 megabit / giây. Nghe có vẻ không nhiều lắm.
Do một gợi ý về điều chỉnh, tôi đã xem xét điều này và thấy rằng linode có giới hạn 50mbps (rõ ràng là tôi thậm chí không gần với việc nhấn, rõ ràng). Tôi đã tăng nó lên 100mbps.
Vì linode giới hạn lưu lượng truy cập của tôi và tôi thậm chí không nhấn nó, điều này có nghĩa là máy chủ của tôi thực sự có khả năng xuất tới 100mbps nhưng bị giới hạn bởi một số nút cổ chai nội bộ khác? Tôi chỉ không hiểu làm thế nào các mạng ở quy mô lớn này hoạt động; họ có thể gửi dữ liệu nhanh như họ có thể đọc từ ổ cứng không? Là ống mạng mà lớn?
Tóm lại là
1: Dựa trên những điều trên, tôi nghĩ rằng tôi chắc chắn có thể tăng 180RPS của mình bằng cách thêm bộ cân bằng tải nginx trên đầu thiết lập máy chủ đa nginx ở chính xác 180RPS cho mỗi máy chủ phía sau LB.
2: Nếu linode có giới hạn 50 / 100mbit mà tôi hoàn toàn không đạt được, thì tôi phải làm gì đó để đạt giới hạn đó với thiết lập máy chủ duy nhất của mình. Nếu tôi có thể đọc / truyền dữ liệu đủ nhanh cục bộ và thậm chí cả hai đều có giới hạn 50mbit / 100mbit, thì phải có một nút cổ chai bên trong không cho phép tôi chạm vào các nắp đó mà tôi không chắc chắn cách phát hiện. Chính xác?
Tôi nhận ra câu hỏi bây giờ rất lớn và mơ hồ, nhưng tôi không chắc làm thế nào để cô đọng nó. Bất kỳ đầu vào được đánh giá cao trên bất kỳ kết luận tôi đã thực hiện.