Q

Quản trị viên

Là một lập trình viên yêu công nghệ, thích viết blog để chia sẻ kiến thức, kinh nghiệm lập trình và những điều thú vị trong thế giới tech.

2300 bài viết · Website
DevOps 02/09/2026 8 phút

Bốn cách viết truy vấn Prometheus sai mà không hề báo lỗi — một trong đó thổi con số lên gấp 3,44 lần, một cái giấu mất 75% chiều cao đỉnh

Bốn lỗi bảng điều khiển tôi gặp thường xuyên nhất, đo bằng chính Prometheus: cửa sổ rate quá ngắn cho biểu đồ trống, rate(sum()) thay vì sum(rate()) cho con số cao 3,44 lần, vẽ counter thô, và step lớn hơn cửa sổ rate giấu 75% đỉnh. Điểm chung đáng sợ: không cái nào sinh ra lỗi — biểu đồ vẫn vẽ, truy vấn vẫn trả 200.

Bảo mật 02/09/2026 10 phút

Một tài liệu XML đọc trộm /etc/passwd của máy chủ — nhưng bốn trong sáu parser Python đã lặng lẽ chặn nó

Tôi gửi một tài liệu XML có 'thực thể ngoài' trỏ vào /etc/passwd, và một parser cấu hình sai trả về nguyên danh sách người dùng hệ thống. Nhưng điều bất ngờ là bốn trong sáu cấu hình tôi thử đã mặc định an toàn. XXE ngày nay phần lớn là lỗi bật nhầm một cái cờ.

Mạng 02/09/2026 8 phút

Gửi 1 byte, có 67 byte chạy trên dây — 98,51% là bao bì, và sách vẽ header TCP sai 12 byte

Mỗi gói TCP/IP trên Ethernet gánh khoảng 66 byte header cố định, không đổi dù ruột là 1 byte hay 1448. Với gói nhỏ, header nuốt gần hết băng thông. Đo thật từng byte bằng tcpdump — kèm sự thật header TCP không phải 20 byte như sách vẽ, và cú offload suýt giấu mất gói quan trọng nhất.

Mạng 02/09/2026 9 phút

Cùng một IP đích, đổi prefix một chữ số là nó lật từ 'hàng xóm' thành 'người xa lạ' — tôi hỏi thẳng nhân Linux

Subnet mask, chứ không phải bản thân địa chỉ, mới vẽ ra biên mạng con. Cùng một IP có thể trên-link (ARP thẳng) hay ngoài-link (qua router) tùy prefix. Đo thật bằng ip route get, kèm sự thật: nhân KHÔNG cấm gán .0 và .255 — đó chỉ là quy ước.

Mạng 02/09/2026 9 phút

Vì sao gói đầu tiên tới một máy hàng xóm luôn chậm hơn — và một IP không ai giữ khiến kết nối 'treo' thay vì báo lỗi

Trước khi gửi khung đầu tiên tới một máy cùng mạng con, máy phải dịch IP sang MAC bằng một vòng ARP tốn ~190 micro giây — hỏi to, đáp riêng, rồi cache. Trả một lần cho mỗi hàng xóm. Đo thật bằng tcpdump, kèm vì sao ping một IP trống lại kẹt ở INCOMPLETE.

Mạng 02/09/2026 9 phút

Thêm 10% mất gói: TCP giao đủ 100% nhưng đuôi trễ vọt lên 842ms, UDP giữ trễ thấp mà rơi 9%

Mạng hoàn hảo thì TCP và UDP gần như giống hệt nhau — khác biệt chỉ lộ ra khi mất gói. Dưới 10% loss, TCP mua độ tin cậy bằng đuôi trễ gấp gần 2000 lần UDP; UDP mua trễ thấp đều bằng việc chấp nhận mất. Và cái đo bằng trung vị suýt lừa tôi kết luận ngược. Đo thật bằng netem.