Giter Site home page Giter Site logo

inkdou / jupiter Goto Github PK

View Code? Open in Web Editor NEW

This project forked from tiglabs/jupiter

0.0 1.0 0.0 13.42 MB

Jupiter is a high-performance 4-layer network load balance service based on DPDK.

License: MIT License

Makefile 2.16% C 94.76% C++ 1.96% Shell 0.31% Python 0.50% Objective-C 0.32%

jupiter's Introduction

Chinese

Jupiter

Introduction

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
  • Support query limit 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.

[EAL]
cores = 1-3
memory = 4096,0
mem-channels = 4

[NETDEV]
name-prefix = jupiter
ip-local-address = 10.0.2.1, 10.0.2.2
kni-ipv4 = 1.1.1.2
kni-netmask = 255.255.255.0
kni-gateway = 1.1.1.254

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/dpdk-devbind.py --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 1.1.1.1/24 up
route add -net 10.0.1.0 netmask 255.255.255.0 gw 1.1.1.2

3. nginx-server configuration

ifconfig eth0 1.1.1.3/24 up
route add -net 10.0.2.0 netmask 255.255.255.0 gw 1.1.1.2

4. jupiter-service configuration

Add a TCP virtual service 10.0.1.1:8888 and two nginx service 1.1.1.3:80, 1.1.1.4:80.

ifconfig jupiter0 1.1.1.2/24 up
jupiter-ctl vs/add 10.0.1.1:8888 tcp
jupiter-ctl rs/add 10.0.1.1:8888 tcp 1.1.1.3:80
jupiter-ctl rs/add 10.0.1.1:8888 tcp 1.1.1.4:80

5. ab-client request VIP service

ab http://10.0.1.1:8888/

Scale out

Scale out

Performance

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 - -

jupiter's People

Contributors

jsonkey avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.