Kiểm thử phần mềm
Phân biệt tải mở và tải đóng khi đo độ trễ
Dựng mô phỏng cho thấy số yêu cầu trong lúc hệ thống chậm phụ thuộc mô hình phát tải.
Thích và đánh giá Bình luận và hỏi đáp1. Hai mô hình trả lời hai câu hỏi
Một người dùng ảo trong mô hình tải đóng có thể đợi phản hồi rồi mới gửi yêu cầu tiếp theo. Khi hệ thống chậm, tốc độ đến cũng giảm. Trong tải mở, thời điểm đến được định trước độc lập với phản hồi trước đó. Mỗi mô hình có thể phù hợp với một loại lưu lượng khác nhau, nên cần mô tả hành vi người dùng trước khi so chỉ số.
2. Tách thời gian phục vụ và thời gian chờ
Ví dụ máy chủ xử lý một yêu cầu một lúc. Yêu cầu đầu mất 500 ms, ba yêu cầu sau mỗi yêu cầu mất 20 ms. Nếu chúng đến tại 0, 100, 200 và 300 ms, ba yêu cầu sau phải chờ. Nếu một người dùng chỉ gửi khi phản hồi trước hoàn tất, các yêu cầu sau không tích hàng đợi trong kịch bản giả lập.
3. Đối chiếu kết quả bằng bốn yêu cầu
Tải mở cho độ trễ 500, 420, 340 và 260 ms. Tải đóng cho 500, 20, 20 và 20 ms. Đây là mô phỏng bốn yêu cầu để giải thích cơ chế, không dùng để ước lượng p95 của dịch vụ. Tính độ trễ từ lúc đến theo mô hình tới lúc kết thúc, thay vì chỉ lấy thời gian xử lý của máy chủ.
Chạy ví dụ bằng python test_tai_mo_va_tai_dong.py.
Môi trường thực hành. Python 3.10 trở lên. Ví dụ dùng thư viện chuẩn Python.
def do_tre(thoi_gian_xu_ly, moc_den=None):
ket_thuc = 0
do_tre_ms = []
for i, xu_ly in enumerate(thoi_gian_xu_ly):
den = ket_thuc if moc_den is None else moc_den[i]
ket_thuc = max(den, ket_thuc) + xu_ly
do_tre_ms.append(ket_thuc - den)
return do_tre_ms
xu_ly = [500, 20, 20, 20]
tai_mo = do_tre(xu_ly, [0, 100, 200, 300])
tai_dong = do_tre(xu_ly)
assert tai_mo == [500, 420, 340, 260]
assert tai_dong == [500, 20, 20, 20]
print("Tải mở", tai_mo, "| Tải đóng", tai_dong)4. Thiết kế phép đo để tránh bỏ sót giai đoạn chậm
Ghi cả thời điểm dự kiến gửi, thời điểm thực gửi, tỷ lệ yêu cầu bị bỏ và độ dài hàng đợi. Nếu công cụ không theo kịp lịch gửi, cần báo phần thiếu thay vì giả định đã tạo đủ tải. Khi so hai phiên bản, giữ cùng mô hình tải, độ dài phiên và tiêu chí tính lỗi để tách thay đổi ứng dụng khỏi thay đổi phương pháp đo.
Đọc thêm Mô hình tải mở và tải đóng trong tài liệu Grafana k6.