iqiyi/dpvs

DPVS is a high performance Layer-4 load balancer based on DPDK.

View on GitHub ↗Jump to charts ↓Open shareable report →

iqiyi/dpvs has 3k+ stars and 750+ forks on GitHub, is written in C, and was last pushed on Dec 31, 2025. Data as of . Signed-in members get hourly updates — create a free account.

Summary Information

Updated 2 hours ago
Added to GitGenius on September 21st, 2026
Created on October 10th, 2017
Open Issues & Pull Requests: 134 (+0)
GitHub issues: Enabled
Number of forks: 761
Total Stargazers: 3,244 (+0)
Total Subscribers: 189 (+0)

Repository Insights (GitGenius)

Median issue/PR response: 26.3 hours
Mean response time: 84.6 days
90th percentile: 21.7 days
Tracked items: 31

Charts & Analytics

Fetching additional details & charts...

Issue Activity (beta)

Open issues: 22
New in 7 days: 0
Closed in 7 days: 0
Avg open age: 754 days
Stale 30+ days: 22
Stale 90+ days: 21

Recent activity

Opened in 7 days: 0
Closed in 7 days: 0
Comments in 7 days: 0
Events in 7 days: 0

Top labels

  • issue/to-solve (3)
  • issue/solved (1)
  • issue/to-reproduce (1)

Most active issues this week

Sign in to see which issues are moving.
Sign in

Detailed Description

DPVS is a high-performance Layer-4 load balancer based on DPDK that derives from Linux Virtual Server and applies kernel-bypass techniques for throughput optimization.

The tool addresses the need for load balancing at scale by moving packet processing into user space and eliminating kernel overhead. It achieves high performance through kernel bypass, per-CPU lockless data structures, RX steering with CPU affinity, batched packet operations, zero-copy processing, and polling instead of interrupt-driven I/O. The implementation includes a lightweight user-space network stack supporting IPv4, IPv6, routing, ARP, and neighbor discovery.

DPVS suits organizations running high-traffic services that can dedicate hardware to load balancing and tolerate the operational complexity of user-space networking. It supports multiple load-balancing modes including FNAT, DR, tunnel, and DNAT, along with NAT64 for IPv6 adaptation and SNAT for outbound traffic. The tool provides scheduling algorithms such as round-robin, weighted least connections, Maglev hash, and consistent hash. Configuration is available through command-line tools, keepalived config files, or a REST API. Teams should evaluate whether the performance gains justify the learning curve and hardware requirements compared to kernel-based alternatives.

The project maintains active build and runtime testing workflows. Development shows consistent attention to both core functionality and operational tooling, with support for diverse network environments including VLAN, bonding, and IP tunneling. The codebase includes security features like TCP SYN proxy and ACL support alongside QoS capabilities for traffic control and connection limiting.