Back to articles
Technology Insight

Tối ưu hóa VPS chạy Valkey đạt 500k RPS: Thay thế Redis Toàn Diện

May 26, 2026

Giới thiệu về Valkey: Kỷ nguyên mới thay thế Redis

Kể từ khi Redis thay đổi giấy phép mã nguồn mở sang các điều khoản thương mại có phần hạn chế, cộng đồng công nghệ toàn cầu đã nhanh chóng tìm kiếm giải pháp thay thế. Dưới sự bảo trợ của Linux Foundation và sự đồng hành của các tập đoàn công nghệ hàng đầu như AWS, Google Cloud, Oracle và Ericsson, Valkey đã chính thức ra đời. Không chỉ kế thừa toàn bộ sức mạnh của Redis, Valkey còn được cải tiến mạnh mẽ về kiến trúc lõi để mang lại hiệu năng tối ưu vượt trội.

Đối với các hệ thống doanh nghiệp xử lý lượng dữ liệu lớn (High-Traffic), việc đạt mốc 500.000 Requests Per Second (RPS) trên một máy chủ ảo (VPS) là một bài toán tối ưu hóa hạ tầng cực kỳ quan trọng. Bài viết này sẽ hướng dẫn bạn từng bước cấu hình từ tầng Hệ điều hành Linux cho đến cấu hình sâu trong Valkey để giải phóng toàn bộ tiềm năng phần cứng.

1. Lựa chọn cấu hình VPS phù hợp

Để đạt được mốc hiệu năng 500k RPS, cấu hình phần cứng VPS đóng vai trò nền tảng. Bạn không thể đạt con số này trên các gói VPS cấu hình thấp hoặc chia sẻ tài nguyên quá mức. Cấu hình khuyến nghị tối thiểu bao gồm:

  • CPU: Tối thiểu 8 vCPU (Ưu tiên các dòng chip có xung nhịp đơn nhân cao như AMD EPYC, Intel Xeon thế hệ mới hoặc AWS Graviton).
  • RAM: 16GB trở lên (Phụ thuộc vào kích thước tập dữ liệu của bạn, ưu tiên RAM DDR5 có băng thông lớn).
  • Network: Băng thông cổng mạng tối thiểu 10 Gbps. Trong thực tế, băng thông mạng thường là điểm nghẽn trước cả năng lực xử lý của CPU khi chạy các lệnh có payload lớn.

2. Tối ưu hóa hệ điều hành Linux (Kernel Tuning)

Mặc định, các bản phân phối Linux như Ubuntu Server hay Rocky Linux được cấu hình cho các tác vụ tổng hợp. Để xử lý nửa triệu kết nối mạng mỗi giây, chúng ta bắt buộc phải can thiệp vào các tham số hệ thống thông qua tệp /etc/sysctl.conf.

Cấu hình mạng và socket nâng cao

Thêm các cấu hình sau vào cuối tệp /etc/sysctl.conf để hệ thống không bị từ chối kết nối khi lưu lượng truy cập tăng đột biến:

# Tăng giới hạn số lượng kết nối tối đa đang chờ xử lý
net.core.somaxconn = 65535

# Tăng số lượng tệp tin mở tối đa toàn hệ thống
fs.file-max = 2097152

# Tối ưu hóa hàng đợi nhận gói tin mạng
net.core.netdev_max_backlog = 65536

# Cho phép tái sử dụng nhanh các socket ở trạng thái TIME_WAIT
net.ipv4.tcp_tw_reuse = 1

# Cấu hình bộ đệm đọc/ghi TCP tối đa
net.core.rmem_max = 16777216
net.core.wmem_max = 16777216

Sau khi chỉnh sửa, thực thi lệnh sudo sysctl -p để các thay đổi có hiệu lực ngay lập tức.

Vô hiệu hóa Transparent Huge Pages (THP)

Giống như Redis, Valkey sử dụng cơ chế sao chép khi ghi (Copy-on-Write) để tạo bản lưu (Snapshot). Tính năng Transparent Huge Pages của Linux sẽ gây tăng đột biến độ trễ (latency) và tiêu tốn nhiều bộ nhớ hơn khi Valkey thực hiện lưu dữ liệu xuống đĩa. Hãy tắt tính năng này bằng cách chạy lệnh:

echo never | sudo tee /sys/kernel/mm/transparent_hugepage/enabled

3. Tối ưu hóa cấu hình Valkey (valkey.conf)

Valkey giới thiệu nhiều cải tiến lớn về xử lý đa luồng so với các phiên bản tiền nhiệm. Việc tinh chỉnh tệp cấu hình valkey.conf giúp tối ưu tối đa hiệu năng luồng xử lý dữ liệu.

Kích hoạt Multi-Threaded I/O chuyên sâu

Theo kiến trúc mặc định, Valkey xử lý các lệnh một cách tuần tự (Single-threaded) để đảm bảo tính nhất quán dữ liệu, nhưng phần xử lý I/O mạng có thể được chuyển giao cho các luồng phụ (I/O threads). Đối với một VPS có 8 vCPU, hãy cấu hình như sau:

  • io-threads 6: Cấu hình số lượng luồng I/O phù hợp với số nhân CPU (thường giữ lại 2 nhân cho luồng chính và hệ thống).
  • io-threads-do-reads yes: Cho phép các luồng phụ xử lý cả thao tác đọc dữ liệu từ socket mạng, giúp giải phóng hoàn toàn luồng xử lý chính.

Quản lý kết nối và Client

Tăng số lượng kết nối đồng thời tối đa mà Valkey có thể tiếp nhận. Nếu cấu hình quá thấp, ứng dụng của bạn sẽ gặp lỗi "max number of clients reached".

maxclients 100000

Chính sách lưu trữ dữ liệu (Persistence Policy)

Việc ghi dữ liệu liên tục xuống ổ cứng thông qua AOF (Append Only File) hoặc RDB snapshot là tác nhân chính kéo tụt RPS. Nếu bạn sử dụng Valkey hoàn toàn làm lớp bộ nhớ đệm (Caching Layer) và dữ liệu có thể khôi phục từ Database gốc, hãy tắt tính năng ghi đĩa:

save ""

Trong trường hợp bắt buộc phải lưu trữ dữ liệu, hãy tinh chỉnh chính sách AOF thành appendfsync everysec để cân bằng giữa an toàn dữ liệu và hiệu năng.

4. Ghim luồng xử lý vào lõi CPU (CPU Affinity / Pinning)

Một trong những bí quyết để đưa hiệu năng Valkey tiệm cận và vượt mốc 500k RPS đến 1 triệu RPS là giảm thiểu hiện tượng Context Switching (chuyển đổi ngữ cảnh giữa các nhân CPU). Bằng cách cố định tiến trình Valkey vào các nhân CPU cụ thể, bộ đệm L1/L2/L3 Cache của CPU sẽ được tận dụng triệt để.

Nếu bạn triển khai Valkey qua Docker, hãy sử dụng cờ --cpuset-cpus để ghim tiến trình. Ví dụ ghim vào các nhân từ 2 đến 7:

docker run --cpuset-cpus="2-7" --name valkey-prod -d valkey/valkey-bundle:latest

5. Kỹ thuật từ phía ứng dụng (Client-Side Best Practices)

Dù máy chủ VPS của bạn có tối ưu đến đâu, hiệu năng tổng thể vẫn phụ thuộc vào cách ứng dụng của bạn tương tác với Valkey.

  1. Sử dụng Pipelining: Đóng gói nhiều lệnh gửi đi cùng một lúc thay vì gửi từng lệnh riêng lẻ. Kỹ thuật này cắt giảm đáng kể chi phí RTT (Round Trip Time) của mạng.
  2. Sử dụng Connection Pooling: Duy trì một nhóm các kết nối mở sẵn (Pool) để tái sử dụng, tránh việc liên tục khởi tạo và đóng kết nối TCP gây quá tải cho hệ điều hành.
  3. Sử dụng thư viện tối ưu: Chuyển sang sử dụng các thư viện kết nối chính thức của hệ sinh thái như Valkey GLIDE. Được phát triển dựa trên lõi Rust hiệu năng cao, GLIDE tự động xử lý định tuyến, quản lý kết nối và tối ưu hóa tài nguyên cực tốt.

Lời kết

Đạt mốc 500.000 RPS trên một VPS chạy Valkey không phải là điều quá xa xỉ nếu bạn áp dụng đúng các kỹ thuật tối ưu hóa đồng bộ: từ tinh chỉnh thông số Mạng/Kernel của Linux, tận dụng kiến trúc Multi-Threaded I/O mới của Valkey, cho đến việc ghim nhân CPU và áp dụng Pipelining ở phía Client. Với lợi thế hoàn toàn miễn phí, mã nguồn mở 100% thuộc Linux Foundation, Valkey chắc chắn là sự đầu tư bền vững và hiệu quả nhất cho hạ tầng doanh nghiệp của bạn trong kỷ nguyên hiện tại.

Tối ưu hóa VPS chạy Valkey đạt 500k RPS: Thay thế Redis Toàn Diện | DPTCloud