Operations 18 min read

DPVS v1.9.0 Release: High-Performance Network Load Balancer Update

DPVS v1.9.0, the latest open‑source four‑layer network load balancer from iQIYI, now fully supports DPDK‑20.11 LTS, offers streamlined compilation, universal flow management, dynamic mbuf fields, enhanced per‑core scheduling and UDP health checks, and has been running stably in production for three months.

iQIYI Technical Product Team
iQIYI Technical Product Team
iQIYI Technical Product Team
DPVS v1.9.0 Release: High-Performance Network Load Balancer Update

DPVS (Data Plane Virtual Server), an open-source high-performance network load balancer developed by iQIYI's network virtualization team, has officially released version v1.9.0 on September 1, 2021. This release fully adapts to DPDK-20.11(LTS), supporting DPDK API/ABI and various device driver updates and optimizations. DPVS v1.9.0 has been deployed in iQIYI's core data centers and has been running stably for three months.

DPVS is a high-performance four-layer network software load balancer based on DPDK (Data Plane Development Kit) and LVS (Linux Virtual Server). It supports six load balancing forwarding methods (FullNAT/DR/Tunnel/SNAT/NAT64/NAT) and multiple network protocols (IPv4/IPv6/TCP/UDP/ICMP/ICMPv6). Single-core performance reaches 2.3M PPS (230 million packets per second), and single-machine performance can achieve gigabit network card line rate (approximately 15M PPS). iQIYI's four-layer load balancing services and SNAT proxy services are almost entirely implemented based on DPVS. Since its open-source release in October 2017, DPVS has attracted core contributors from many well-known domestic and international companies including NetEase, Xiaomi, China Mobile, Shopee, and ByteDance.

DPVS v1.9.0 is developed based on v1.8.10, with core updates including comprehensive adaptation to DPDK-20.11(LTS). Support for DPDK-18.11(LTS) has been moved to DPVS-1.8-LTS, and support for DPDK-17.11(LTS) has been terminated.

Key updates in DPVS v1.9.0 include:

1. More user-friendly compilation and installation methods: DPVS v1.9.0 adapts to DPDK 20.11's build system, using pkg-config to automatically find dependent DPDK header files and libraries, solving complex environment dependency issues during DPVS installation.

2. More universal flow configuration management: DPVS v1.9.0 adapts to the new rte_flow interface, providing a more universal network card flow rule configuration interface. The netif_flow module manages flow rules for different types of devices in DPVS.

3. More reasonable mbuf custom data: DPVS v1.9.0 utilizes DPDK 20.11's dynamic fields mechanism, providing independent storage space for different types of user data and eliminating data conflict concerns.

4. More complete scheduling algorithms: DPVS v1.9.0 solves the problem of uneven load distribution on RS in rr/wrr/wlc scheduling algorithms by implementing a per-core initialization strategy.

5. More efficient keepalived UDP health check: DPVS v1.9.0 adds UDP_CHECK health check method, improving the reliability and efficiency of UDP service health checks.

Future version plans include DPVS v1.8.12 (Q4 2021) with features like ipset module, traffic control based on tc/ipset, and access control based on netfilter/ipset; DPVS v1.9.2 (Q1 2022) with performance optimizations and new features; and long-term versions with log optimization, FullNAT46 and XOA kernel modules, DPVS memory pool design, and more.

software developmentopen sourcehigh performanceDPDKNetwork Virtualizationload balancerDPVS
iQIYI Technical Product Team
Written by

iQIYI Technical Product Team

The technical product team of iQIYI

0 followers
Reader feedback

How this landed with the community

login Sign in to like

Rate this article

Was this worth your time?

Sign in to rate
Discussion

0 Comments

Thoughtful readers leave field notes, pushback, and hard-won operational detail here.