Linux 01/09/2026 8 phút

Cấu hình container dừng nhanh nhất — 113 ms — lại là cấu hình duy nhất mất dữ liệu: nó bỏ qua sạch bước dọn dẹp

Mọi container bị dừng thường xuyên hơn bị lỗi. Tôi đo sáu cách đóng gói cùng một ứng dụng: cái dừng trong 113 ms trông đẹp nhất trên bảng điều khiển nhưng là cái duy nhất không chạy dọn dẹp. Dừng nhanh không phải dừng êm — chỉ số đúng là mã thoát 0 cộng bằng chứng trong log, và hai lỗi đóng gói khác nhau cho cùng một triệu chứng.

Linux 01/09/2026 9 phút

Bắt tay TLS thêm 995 µs, và người ta bảo đó là 'một vòng khứ hồi' — tôi đo ra nó tốn CPU gấp 33 lần một vòng mạng

TLS 1.3 hay được mô tả là 'thêm một vòng khứ hồi'. Tôi đo cùng máy, cùng chương trình, chỉ khác cổng: bắt tay thêm 995 µs còn mỗi vòng sau đó chỉ thêm 18 µs. Và 995 µs ấy gần như toàn bộ là CPU — chữ ký RSA, không phải độ trễ mạng. Đó đổi hẳn cách bạn tối ưu HTTPS.

Linux 01/09/2026 8 phút

Nhảy giữa các nhân CPU làm chậm gấp đôi khi dữ liệu vừa bộ nhớ đệm — và không ảnh hưởng một chút nào khi dữ liệu vượt bộ nhớ đệm; đó là lý do 'ghim CPU cho nhanh' thường vô ích

Ghim tiến trình vào một nhân là lời khuyên tinh chỉnh quen thuộc, nhưng đo thật cho thấy nó chỉ đáng khi hai điều kiện cùng đúng. Với tập 1 MB vừa L2, nhảy nhân làm chậm 2,04 lần; với tập 256 MB thì 1,00 lần — vì lúc đó nhân nào cũng phải ra RAM. Bộ nhớ đệm L1/L2 thuộc về từng nhân, và bỏ nhân là bỏ lại toàn bộ cache đã nóng.

Linux 01/09/2026 8 phút

Cùng một lượng đọc đĩa, iowait đi từ 35% xuống 4% chỉ vì tôi cho CPU thêm việc — chỉ số 'chờ I/O' thấp không hề chứng minh đĩa không nghẽn

Ba con số us, sy, wa có trong mọi công cụ đo Linux, và mỗi loại tải để lại một dấu vết riêng. Nhưng phép đo quan trọng nhất bài là chỗ wa nói dối: giữ nguyên tải đĩa, thêm 14 tiến trình tính toán, iowait tụt từ 35 xuống 4 trong khi số tiến trình bị chặn ở I/O không đổi một chút nào. Trên máy chủ đầy tải, wa gần như luôn thấp — đúng lúc cần nó nhất thì nó im.

DevOps 01/09/2026 8 phút

Cùng một ứng dụng: Compose khởi động 0,9 giây, Kubernetes 1,2 giây — và Kubernetes trần trụi vẫn mất yêu cầu khi cập nhật y hệt Compose

Câu hỏi 'Kubernetes hay chỉ Docker Compose' thường được trả lời bằng niềm tin. Dựng cùng một ứng dụng hai container bằng cả hai rồi đo song song: bốn chỉ số đầu gần hoà (K8s không chậm hơn, không tốn RAM container hơn), nhưng K8s mang 743 MB hạ tầng cố định. Khác biệt thật ở cập nhật: K8s một bản không probe mất yêu cầu y như Compose; chỉ nhiều bản + readinessProbe + preStop mới cho 0 lỗi. Kubernetes không tặng uptime, nó tặng cơ chế.

DevOps 01/09/2026 9 phút

PostgreSQL trong Kubernetes chạy 10.366 tps và khởi động lại trong 0,3 giây — nhưng cordon đúng một node là pod Pending vĩnh viễn, vì dữ liệu không đi theo được

Dựng PostgreSQL bằng StatefulSet, đo phần chạy tốt rồi đo đúng chỗ nó gãy. Phần tốt: 10.366 tps, dừng sạch trong 13 ms, khởi động lại 0,3 giây, giữ nguyên định danh và volume. Phần không sửa được bằng YAML: PersistentVolume ghim vào một node, cordon node đó là pod Pending mãi mãi vì dữ liệu nằm trên đĩa node đó. Kubernetes dựng lại pod giỏi, nhưng chỉ ở nơi có dữ liệu — và nó không biết cái nào là bản chính.