Awesome Open Source
Awesome Open Source




Jupiter is a high-performance 4-layer network load balance service based on DPDK. It supports TCP and UDP packet forwarding in FULLNAT mode. The load balancing algorithms supported by jupiter include consistent hashing, rr, lc.

  • Support TCP, UDP protocol
  • Support session maintenance for application
  • Support load balance service scale out
  • Support million QPS for visitors

How to use

1. Compilation

Required OS release: Centos-7.2 or Centos-7.4

tar -xf jupiter.tar.gz
cd jupiter
make rpm-pkg
rpm -i rpmbuild/RPMS/x86_64/jupiter-0.1-1.x86_64.rpm

2. Startup

The default configuration path for jupiter-service is /etc/jupiter/jupiter.cfg. An example for jupiter.cfg as follows :

EAL configuration reference DPDK document.

argv = -c 0xf -n 4

name = jupiter0
ipv4 =
netmask =
gw =
rxqsize = 256
txqsize = 512
local-ipv4 =,
pci = 00:00.0

Reserve huge pages memory:

mkdir -p /mnt/huge
mount -t hugetlbfs nodev /mnt/huge
echo 4096 > /sys/kernel/mm/hugepages/hugepages-2048kB/nr_hugepages

Load igb_uio module:

modprobe uio
insmod /usr/share/jupiter/kmod/igb_uio.ko
/usr/share/jupiter/tools/ --bind=igb_uio eth1

Load rte_kni module:

insmod /usr/share/jupiter/kmod/rte_kni.ko

Start up jupier-service:

jupiter-service --daemon

Simple Test

1. Test network diagram

Test network diagram

2. ab-client configuration

ifconfig eth0 up
route add -net netmask gw

3. nginx-server configuration

ifconfig eth0 up
route add -net netmask gw

4. jupiter-service configuration

Add a TCP virtual service and two nginx service, More information about command details.

ifconfig jupiter0 up
jupiter-ctl vs/add tcp rr
jupiter-ctl rs/add tcp
jupiter-ctl rs/add tcp

5. ab-client request VIP service


Scale out

Scale out


CPU model: Intel(R) Xeon(R) CPU E5-2698 v4 @ 2.20GHz

NIC model: Intel Corporation 82599ES 10-Gigabit SFI/SFP+ Network Connection

Jmeter version: apache-jmeter-3.1

Nginx version: nginx-1.10.2

Bind version: bind-9.9.4

Jupiter-service configuration: 8 lcore and 4G memory

protocol schedule TPS ERROR jupiter rx-pps jupiter rx-bps
TCP ipport 2064789.7 0 4.78M 8.41G
TCP rr 2060283.5 0 4.78M 8.41G
TCP lc 777078.5 0 - -
UDP ipport 4212952 0 8.28M 7.75G
UDP rr 4272837.6 0 8.28M 7.75G
UDP lc 812356.2 0 - -

Get A Weekly Email With Trending Projects For These Topics
No Spam. Unsubscribe easily at any time.
c (14,526
kubernetes (1,655
high-performance (192
ipv6 (95
dpdk (25

Find Open Source By Browsing 7,000 Topics Across 59 Categories