Zeroserve hỗ trợ Caddyfile: Hiệu suất gấp 3 lần, độ trễ giảm 70%

Phần mềm14 tháng 6, 2026·2 phút đọc

Zeroserve, máy chủ HTTPS hiệu suất cao sử dụng eBPF, hiện đã hỗ trợ chế độ tương thích với Caddyfile. Khi biên dịch cấu hình Caddy sang eBPF và mã máy gốc, zeroserve đạt thông lượng gấp 3 lần và giảm 70% độ trễ so với Caddy truyền thống.

Zeroserve hỗ trợ Caddyfile: Hiệu suất gấp 3 lần, độ trễ giảm 70%

Zeroserve, một máy chủ HTTPS hiệu suất cao chạy các tập lệnh eBPF trong không gian người dùng (userspace), vừa cập nhật tính năng mới đáng chú ý: chế độ tương thích với Caddy. Với bản cập nhật này, người dùng có thể sử dụng tệp cấu hình Caddyfile quen thuộc, nhưng thay vì chạy bằng Go như Caddy thông thường, zeroserve sẽ biên dịch JIT (Just-In-Time) cấu hình đó sang eBPF và sau đó thành mã máy gốc x86_64/ARM64.

Quá trình này được thực hiện trong vòng lặp sự kiện io_uring, giúp tối ưu hóa đáng kể hiệu suất xử lý I/O.

Tăng đột biến hiệu suất

Theo kết quả benchmark trên môi trường AMD Ryzen 7 3700X với cấu hình HTTPS reverse proxy sử dụng 2 luồng (threads), zeroserve thể hiện sức mạnh áp đảo so với Caddy tiêu chuẩn và cạnh tranh sòng phẳng với Nginx.

Dưới đây là bảng so sánh hiệu suất chi tiết:

  • zeroserve-clang: 38.948 req/s, độ trễ p50 1.45ms, p99 3.91ms, bộ nhớ (RSS) 30.9 MiB.
  • zeroserve-tcc: 36.653 req/s, độ trễ p50 1.67ms, p99 4.00ms, bộ nhớ (RSS) 34.2 MiB.
  • Caddy: 12.529 req/s, độ trễ p50 4.74ms, p99 13.11ms, bộ nhớ (RSS) 67.4 MiB.
  • Nginx: 37.424 req/s, độ trễ p50 1.57ms, p99 4.24ms, bộ nhớ (RSS) 25.7 MiB.

Nhìn vào các con số, có thể thấy zeroserve cung cấp thông lượng (throughput) cao gấp 3 lần và giảm 70% độ trễ so với Caddy. Trong khi đó, mức sử dụng bộ nhớ của zeroserve chỉ bằng khoảng một nửa so với Caddy.

Cơ chế hoạt động và tùy biến nâng cao

Điểm mạnh của zeroserve nằm ở khả năng chạy eBPF Turing-complete. Điều này cho phép các nhà phát triển gọi mã tùy chỉnh trực tiếp từ Caddyfile, mở ra khả năng tùy biến sâu mà vẫn giữ được sự đơn giản trong cấu hình.

Ví dụ, để reverse proxy một đường dẫn tới một bộ chứa S3-compatible với xác thực AWS SigV4, người dùng có thể tải plugin io.su3.aws-sigv4.c và cấu hình như sau:

example.com {
    route /s3/* {
        uri strip_prefix /s3
        rewrite * /my-bucket{uri}
        # Gọi phương thức `sign_request` trong eBPF middleware `io.su3.aws-sigv4.o`
        zeroserve_call io.su3.aws-sigv4 sign_request {
            access_key_id "minioadmin"
            secret_access_key "minioadmin"
        }
        reverse_proxy http://127.0.0.1:9000
    }
}

Để trải nghiệm zeroserve với Caddyfile hiện có của bạn, chỉ cần thực hiện vài lệnh đơn giản sau để tải và chạy:

curl -fL -o zeroserve https://github.com/losfair/zeroserve/releases/download/v0.2.11/zeroserve-$(uname -m)-linux
chmod +x zeroserve
./zeroserve --caddy /etc/caddy/Caddyfile
curl http://127.0.0.1:8080

Sự kết hợp giữa tính dễ dùng của cấu hình Caddy và sức mạnh thô sơ của eBPF/mã máy khiến zeroserve trở thành một giải pháp thay thế đầy hứa hẹn cho các hệ thống web server hiện đại.

Chia sẻ:FacebookX
Nội dung tổng hợp bằng AI, mang tính tham khảo. Xem bài gốc ↗