Checkpoint: nền tảng scale và session
Quiz
- App đang chạy ổn ở 60 RPS, CPU 25%. Đợt sale đẩy lên 480 RPS, CPU lên 100%, p95 latency tăng vọt và throughput không tăng thêm dù tải vẫn tăng. Nút thắt đầu tiên nằm ở đâu?
- I/O của database
- CPU của app server
- RAM vì cache không có TTL
- Connection pool database
- Một API chịu 400 RPS trên máy 4 vCPU. Nâng lên 8 vCPU chỉ được khoảng 750 RPS, nâng lên 16 vCPU được khoảng 1.250 RPS. Hiện tượng này nói lên điều gì về scale dọc?
- Scale dọc luôn tuyến tính, số đo trên chỉ là sai số đo lường
- Scale dọc cho hiệu suất dưới tuyến tính: gấp đôi tài nguyên không được gấp đôi throughput
- Scale dọc bị giới hạn vì phải sửa code mới dùng được thêm core
- Scale dọc không dùng được cho database nên phải sharding ngay
- Sau khi thêm server thứ hai, người dùng liên tục bị đăng xuất ngẫu nhiên. Nguyên nhân phù hợp nhất là gì?
- Session đang lưu trong Map của từng process, nên request rơi vào server khác thì không thấy session
- JWT hết hạn quá nhanh vì access token quá ngắn
- Redis session store thiếu replica nên mất key
- Database chưa được scale dọc nên mất dữ liệu đăng nhập
- Đội của bạn cân nhắc dùng sticky session để chữa lỗi đăng xuất khi chạy nhiều server. Cái giá phải trả của cách này là gì?
- Mất cân bằng tải, mất session khi server đó chết, và autoscale gần như vô nghĩa
- Không thu hồi được token ngay khi user đăng xuất
- Phải đặt session store khác region với app server
- Mỗi request thêm 0.5 đến 2ms để đọc session store
- Với 300 RPS và mỗi request giữ connection database khoảng 250ms, số connection cần thiết xấp xỉ là ____ (nhập số).
- Một server được gọi là ____ khi mỗi request mang đủ thông tin để xử lý và server không giữ ký ức riêng giữa các request.
- Khi lưu session trong Redis, mỗi key cần có ____ để key cũ tự hết hạn và user không hoạt động bị đăng xuất.
- Bạn nhận một app chạy 100 RPS, CPU 30%, p95 latency 2 giây, RAM ổn định, database CPU 90% và iowait cao. Hãy trình bày cách bạn xác định nút thắt và chọn hướng scale, kèm chỗ đặt session.
Sign in to submit answers.