Lập trình Go 22/09/2026 9 phút

Mutex profile trong Go: tìm khóa nào là nút thắt tranh chấp, thứ CPU profile không thấy

Benchmark cho biết chậm, nhưng không cho biết khóa nào nghẽn. Mutex profile đo tổng thời gian goroutine phải chờ khóa. Đo thật: 10 goroutine tranh một mutex nóng tích lũy 20,8 giây chờ, 100% quy về đúng khóa đó, khóa nguội bị loại. Cách bật, phân tích, và sửa. Go 1.23.

Lập trình Go 22/09/2026 9 phút

HTTP/2 multiplexing trong Go: nhiều request song song trên một kết nối, xóa head-of-line blocking

HTTP/2 chia mỗi request thành một stream độc lập chạy song song trên cùng một kết nối TCP, xóa head-of-line blocking của HTTP/1.1. Đo thật trong Go 1.23: 20 request trên một kết nối xong 54ms với HTTP/2 so với 1,136 giây với HTTP/1.1 — nhanh hơn 21 lần.

Lập trình Go 22/09/2026 10 phút

Viết hàm assembly Plan 9 trong Go: chạy được, nhưng vì sao thường lỗ

Hướng dẫn viết một hàm assembly từ đầu: khai báo Go không thân, cài đặt trong file .s, đọc tham số qua FP. Chạy thật cho kết quả đúng. Nhưng đo trung thực cho thấy hàm asm không inline được, nên với hàm nhỏ thường lỗ — nó chỉ đáng cho thứ compiler không diễn đạt được. Go 1.23.

Cơ sở dữ liệu 22/09/2026 6 phút

Tối ưu PostgreSQL bền vững: một vòng lặp, không phải một lần chỉnh rồi quên

Bài chốt series: tối ưu không có đích đến mà là một chu trình đo-sửa-xác nhận-giám sát lặp lại. Kèm health snapshot thật của một database khoẻ mạnh và ba nguyên tắc xuyên suốt 132 bài — đo đừng đoán, hiểu đánh đổi, sửa gốc không vá ngọn. PostgreSQL 16.

Cơ sở dữ liệu 22/09/2026 5 phút

Dashboard nhanh lúc vắng, chậm giờ cao điểm: tìm nút thắt dưới tải đồng thời

Một truy vấn chạy 25 mili giây khi test một mình lại thành 266 mili giây khi 32 người cùng mở dashboard. Bài này đo thật sự suy giảm theo số client, chẩn đoán bằng wait_event, và một cách sửa bất ngờ: tắt parallel query giúp nhanh 1,7 lần dưới tải cao. PostgreSQL 16.

Web 22/09/2026 7 phút

CORS không phải bảo mật server: hiểu cross-origin qua preflight và header thật

Nhiều người tưởng CORS bảo vệ server, hoặc cứ thấy lỗi CORS là tại backend chặn. Thực ra CORS là cơ chế của TRÌNH DUYỆT: same-origin policy chặn JS đọc chéo origin, còn server chủ động mở qua header Access-Control-Allow-*. Bài này dựng server thật chỉ cho một origin, đo preflight OPTIONS, và chứng minh origin lạ vẫn nhận 200 nhưng bị trình duyệt chặn.