Kết nối đồng thời của Proxy là gì? Cách tính số luồng cho biết có bao nhiêu kết nối mạng đang mở cùng lúc, không phải tổng số yêu cầu trong ngày. Hiểu đúng chỉ số này giúp bạn tránh mua thừa tài nguyên hoặc tạo tải đột ngột khiến Proxy và hệ thống đích cùng lỗi.
Mục lục
- Connection, request, session và worker
- Vì sao giới hạn đồng thời quan trọng?
- Ước tính số luồng ban đầu
- Thiết kế hàng đợi và giới hạn
- Kết nối đồng thời với Sticky Session
- Các chỉ số nên giám sát
Connection, request, session và worker
Một connection là kênh mạng đang mở; một connection có thể phục vụ nhiều request khi tái sử dụng kết nối. Session là ngữ cảnh giữ cookie hoặc IP; worker là tiến trình xử lý công việc. Vì vậy 100 worker không nhất thiết luôn tạo 100 kết nối, và 10.000 request không có nghĩa 10.000 kết nối đồng thời.
Kiến trúc ứng dụng, HTTP keep-alive và thời gian phản hồi quyết định số connection thực tế.
Vì sao giới hạn đồng thời quan trọng?
Mỗi kết nối chiếm socket, bộ nhớ và tài nguyên mã hóa. Khi vượt giới hạn, bạn có thể gặp timeout, reset connection hoặc lỗi từ gateway. Bài khắc phục lỗi Proxy timeout và connection refused giúp phân biệt quá tải với lỗi cấu hình.
Hệ thống đích cũng có giới hạn. Có nhiều connection không đồng nghĩa bạn được phép gửi tải lớn; luôn tôn trọng quota và điều khoản.
Ước tính số luồng ban đầu
Một ước tính đơn giản là lưu lượng yêu cầu mỗi giây nhân với thời gian phản hồi trung bình. Nếu cần 20 request/giây và mỗi request kéo dài 0,5 giây, mức đồng thời trung bình khoảng 10. Cần cộng dự phòng cho biến động và phân vị 95.
Bắt đầu thấp, đo hàng đợi, CPU, bộ nhớ, tỷ lệ lỗi rồi tăng từng bước. Không mở tối đa ngay từ lần chạy đầu.
Thiết kế hàng đợi và giới hạn
- Đặt concurrency riêng cho từng host đích.
- Giới hạn tổng số socket của ứng dụng.
- Dùng hàng đợi thay vì khởi chạy toàn bộ tác vụ cùng lúc.
- Áp dụng timeout kết nối và đọc riêng biệt.
- Giảm concurrency khi tỷ lệ 429, timeout hoặc 5xx tăng.
Kết nối đồng thời với Sticky Session
Nếu nhiều worker dùng chung một sticky session, tải có thể dồn lên một IP. Hãy tách session theo luồng nghiệp vụ và không chia sẻ cookie giữa người dùng. Xem thêm cách giữ và xoay IP đúng lúc.
Khi một IP lỗi, cần đưa session liên quan vào trạng thái phục hồi thay vì đổi IP cho toàn bộ pool.
Các chỉ số nên giám sát
- Số connection đang mở và đang chờ.
- Request/giây và thời gian phản hồi p50, p95.
- Tỷ lệ timeout, reset và 429.
- Số lần retry và thời gian nằm trong hàng đợi.
- Tỷ lệ sử dụng trên mỗi IP và mỗi host đích.
Câu hỏi thường gặp
Một IP có thể chạy bao nhiêu luồng?
Phụ thuộc nhà cung cấp, loại Proxy, băng thông và hệ thống đích. Hãy dùng giới hạn công bố và kiểm thử tăng dần.
Tăng luồng có luôn tăng tốc?
Không. Sau một ngưỡng, hàng đợi, giới hạn mạng và tỷ lệ lỗi có thể làm tổng thời gian tăng.
Có nên dùng một session cho mọi worker?
Không nếu các worker đại diện cho ngữ cảnh độc lập. Điều đó dễ trộn cookie, tải và lỗi.
Kết luận
Tính concurrency từ tốc độ yêu cầu và thời gian phản hồi, sau đó xác nhận bằng đo lường. Dùng hàng đợi, giới hạn theo host và tăng tải có kiểm soát để bảo vệ cả Proxy lẫn dịch vụ đích.
Bạn cần cấu hình Proxy phù hợp? Hãy xem các gói tại ProxySmart hoặc liên hệ hỗ trợ để được tư vấn theo vị trí IP, giao thức, băng thông và số phiên đồng thời. Chỉ sử dụng proxy cho mục đích hợp pháp, trên hệ thống bạn sở hữu hoặc được phép kiểm thử, đồng thời tuân thủ điều khoản của dịch vụ đích.