Chúng tôi có giá đỡ riêng ở Amsterdam, Leaseweb.
Chúng tôi thực hiện cân bằng tải HTTP (thông qua Cloudflare) với 3 máy chủ Windows 2019 IIS:
- Máy chủ 1: Máy chủ siêu nhỏ kim loại trần. Chạy IIS, MySQL8 và Redis.
- Máy chủ 2: VM trên máy chủ Dell. Chạy IIS.
- Máy chủ 3: VM trên máy chủ Dell (bản sao chính xác của máy chủ2). Chạy IIS.
Các tệp được phân phối cục bộ trong mọi nguyên nhân (thông qua sao chép)
Bây giờ vấn đề là TTFB, như được đo cục bộ trên máy chủ cao hơn trên máy chủ 2 và máy chủ 3 (VM).
Chạy (nhiều) bài kiểm tra ĐỊA PHƯƠNG với chrome:
Máy chủ 1:
- Đang chờ (TTFB): 269 mili giây
- Đang chờ (TTFB): 255 mili giây
- Đang chờ (TTFB): 253ms
Máy chủ 2:
- Đang chờ (TTFB): 379 mili giây
- Đang chờ (TTFB): 376 mili giây
- Đang chờ (TTFB): 369 mili giây
Máy chủ 3:
- Đang chờ (TTFB): 374 mili giây
- Đang chờ (TTFB): 381ms
- Đang chờ (TTFB): 378 mili giây
Như bạn có thể thấy, máy chủ một có TTFB thấp hơn đáng kể.
Xét về CPU, máy chủ 2 và 3 thực sự nhanh hơn:
PHIẾU ĐÁNH GIÁ PHP
Máy chủ 1
Tổng thời gian: : 4,022 giây.
Máy chủ2
Tổng thời gian: : 2,866 giây.
Máy chủ3
Tổng thời gian: : 2,936 giây.
I/O gần như giống nhau đối với tất cả các máy chủ. Tất cả họ đều có ổ SSD mới với bộ điều khiển đột kích phần cứng.
Tôi đã thử nghiệm chuyển Redis sang một trong các máy ảo để tôi có thể biết liệu độ trễ tăng thêm có phải do Redis gây ra hay không, nhưng nó không tạo ra một chút khác biệt nào.
Giả định của tôi là độ trễ bổ sung trong TTFB đến từ MySQL chạy trên máy chủ 1? Chạy MySQL trên cùng một máy chủ sẽ tạo ra TTFB nhỏ hơn đáng kể mặc dù CPU chậm hơn.
Có một cách giải quyết cho điều này?
Trên thực tế, câu hỏi thích hợp là, làm cách nào để xác định nguyên nhân gây ra độ trễ tăng thêm là gì?