Bài đăng của bạn không có đủ thông tin để giải quyết lý do tại sao chương trình của bạn không hoạt động như bạn mong đợi, nhưng tôi nghĩ chỉ riêng câu hỏi này đã có giá trị trả lời:
Trong thử nghiệm đầu tiên, bạn đã thực hiện một yêu cầu duy nhất (-n 1
). Trong thử nghiệm thứ hai, bạn đã thực hiện đồng thời 100 yêu cầu trong chuyến bay (-c 100 -n 100
).
Bạn đề cập rằng chương trình của bạn giao tiếp với cơ sở dữ liệu bên ngoài, chương trình của bạn phải đợi tài nguyên đó phản hồi. Bạn có hiểu cơ sở dữ liệu của mình hoạt động như thế nào khi bạn gửi 1.000 yêu cầu đồng thời không? Bạn đã không đề cập đến điều này. Go chắc chắn có thể xử lý hàng trăm yêu cầu đồng thời trong một giây mà không phải đổ mồ hôi, nhưng nó phụ thuộc vào những gì bạn đang làm và cách bạn thực hiện nó. Nếu chương trình của bạn không thể hoàn thành các yêu cầu nhanh như khi chúng đến, chúng sẽ chồng chất lên nhau, dẫn đến độ trễ cao.
Cả hai bài kiểm tra mà bạn đã nói với chúng tôi đều không hữu ích để hiểu cách máy chủ của bạn hoạt động như thế nào trong các trường hợp "bình thường" - mà bạn đã nói là "hàng nghìn yêu cầu mỗi ngày" (không cụ thể lắm, nhưng ý tôi là, "một vài giây"). Sau đó, sẽ thú vị hơn nhiều khi xem -c 4 -n 1000
hoặc thứ gì đó hoạt động máy chủ trong một khoảng thời gian dài hơn, với một số yêu cầu đồng thời giống như những gì bạn mong đợi nhận được.