Phần 7: Kiểm Tra Chịu Tải & Tối Ưu Hiệu Năng Cho Production

Ép tải (Load testing) là trùm cuối (final boss) của Hệ thống Thiết kế (System Design). Một tay kỹ sư non tơ chạy thử một đoạn script, hí hửng vỗ ngực khi thấy “20,000 RPS” đi kèm với 0 lỗi, rồi đinh ninh vỗ đùi cái bép là hệ thống đã sẵn sàng rước khách. Một gã Kỹ sư Principal lão làng thì thừa biết thừa hiểu rằng: trừ phi mày đè cái Kernel Linux ra độ lại (tune), đâm lủng cái bẫy Coordinated Omission, và giả lập một màn hỗn loạn thực tế (realistic chaos), còn không thì cái con số hào nhoáng đó hoàn toàn là đồ dối trá (complete lie). ...

15 tháng 6, 2026 · 8 phút · Tuan Anh

Go 1.26: Green Tea GC, CGO Nhanh Hơn & Goroutine Leak Detection

🇬🇧 Read the English version of this article on tanhdev.com Answer-first: Go 1.26 ra mắt ba tính năng runtime mang tính bước ngoặt: Garbage Collector Green Tea (giảm từ 10–40% GC overhead), các cuộc gọi CGO (cgo calls) nhanh hơn khoảng ~30% cho các ứng dụng liên kết AI inference (suy luận AI), và một profile thử nghiệm về goroutine leak (rò rỉ goroutine) giúp phát hiện các goroutine bị block (khóa) vĩnh viễn thông qua phân tích khả năng tiếp cận của GC (GC reachability analysis). ...

12 tháng 6, 2026 · 22 phút · Tuan Anh

Chương 5: Tối Ưu Connection Pools Của Database Trong Golang Để Ngăn Chặn Thắt Cổ Chai

← Bài trước | Series hub | Tiếp theo → Chương 5: Mở Khóa Hiệu Suất Database Thông Qua Connection Pooling Nếu hệ thống Golang của bạn nghiền ngẫm business logic (logic nghiệp vụ) nhanh như chớp nhưng lại sặc nước nghẹn ứ ngay ở tầng Database, thì 90% nguyên nhân bắt nguồn từ một chiếc cấu hình *sql.DB lệch pha. 1. Thấu Hiểu *sql.DB Answer-first: Trong thế giới Golang, hàm sql.Open() KHÔNG HỀ khởi tạo một đường truyền kết nối chọc thẳng xuống database. Nó đóng vai trò khởi chạy một cỗ máy quản đốc Connection Pool (hồ chứa kết nối) an toàn luồng (thread-safe). Điều kiện bắt buộc là bạn chỉ được phép khởi tạo cái biến db này đúng một lần duy nhất trong suốt chu kỳ khởi động app. ...

9 tháng 6, 2026 · 5 phút · Tuan Anh

Go pprof: Profiling CPU & Bộ nhớ trên Production

🇬🇧 Read the English version of this article on tanhdev.com Yêu cầu tiên quyết: Hướng dẫn này đề cập đến việc profile và chẩn đoán các sự cố hiệu năng phức tạp trên production. Nếu bạn đang xử lý tình trạng số lượng goroutine tăng trưởng không kiểm soát, hãy chắc chắn rằng bạn đã hiểu các khái niệm nền tảng trong bài viết Phát hiện và Xử lý Goroutine Leak trên Production Go Services. ...

2 tháng 6, 2026 · 11 phút · Tuan Anh

Go pprof trong Kubernetes: Remote Profiling & Flame Graphs

🇬🇧 Read the English version of this article on tanhdev.com Bạn đã gắn các bộ thu thập đo lường cho service Go của mình với net/http/pprof, chạy thử lệnh go tool pprof cục bộ (local) kiểm tra file binary lúc dev, và đã nhìn rõ mồn một các “hot path” (đường nghẽn cổ chai tốn thời gian nhất) trên biểu đồ ngọn lửa (flame graph). Thế rồi bạn triển khai lên Kubernetes và các điểm nghẽn ấy biến mất hoàn toàn — bởi vì hồ sơ tải (workload profile) trong Kubernetes khác xa với việc test cục bộ (mix request khác nhau, áp lực pool kết nối khác nhau, hành vi GC cũng khác dưới mức chịu tải thực tế, và cả sự can thiệp từ bộ lập lịch (scheduler) của các pod nằm chung node). ...

1 tháng 6, 2026 · 23 phút · Tuan Anh

Kiến trúc Full-Stack Edge với Astro và Đặt WordPress sau CDN Cloudflare

🇬🇧 Read the English version of this article on tanhdev.com Việc chạy một trang web nội dung trên một con VPS truyền thống hoặc một host Node.js quản lý sẵn vẫn rất ổn cho đến khi nó hết ổn. Bạn phải trả tiền cho khối lượng tính toán (compute) nằm chơi xơi nước 95% thời gian, bạn phải tự quản lý việc gia hạn SSL, nơm nớp lo sợ lỗi cold start, và đứng nhìn điểm Lighthouse tụt dốc không phanh chỉ vì origin server của bạn nằm ở Singapore trong khi độc giả lại ở Frankfurt. ...

24 tháng 4, 2026 · 19 phút · Tuan Anh