{"id":13846231,"url":"https://github.com/tiglabs/jupiter","last_synced_at":"2026-01-17T03:04:37.502Z","repository":{"id":52753645,"uuid":"113838689","full_name":"tiglabs/jupiter","owner":"tiglabs","description":"Jupiter is a high-performance 4-layer network load balance service based on DPDK.","archived":false,"fork":false,"pushed_at":"2019-01-24T06:57:02.000Z","size":15000,"stargazers_count":333,"open_issues_count":9,"forks_count":135,"subscribers_count":55,"default_branch":"master","last_synced_at":"2024-08-04T18:01:12.066Z","etag":null,"topics":["dpdk","high-performance","ipv6","jdos","kubernetes","l4","load-balance"],"latest_commit_sha":null,"homepage":"","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/tiglabs.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2017-12-11T09:26:50.000Z","updated_at":"2024-05-24T18:43:04.000Z","dependencies_parsed_at":"2022-08-22T21:01:33.454Z","dependency_job_id":null,"html_url":"https://github.com/tiglabs/jupiter","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tiglabs%2Fjupiter","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tiglabs%2Fjupiter/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tiglabs%2Fjupiter/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tiglabs%2Fjupiter/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tiglabs","download_url":"https://codeload.github.com/tiglabs/jupiter/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":225807229,"owners_count":17527213,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["dpdk","high-performance","ipv6","jdos","kubernetes","l4","load-balance"],"created_at":"2024-08-04T18:00:20.429Z","updated_at":"2026-01-17T03:04:37.484Z","avatar_url":"https://github.com/tiglabs.png","language":"C","funding_links":[],"categories":["Operators vs Controllers"],"sub_categories":["Networking"],"readme":"[Chinese](README.zh_cn.md)\n\n# Jupiter\n\n## Introduction\n\nJupiter 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](https://www.codeproject.com/Articles/56138/Consistent-hashing), rr, lc.\n\n* Support TCP, UDP protocol\n* Support session maintenance for application\n* Support load balance service scale out\n* Support million QPS for visitors\n\n## How to use\n\n### 1. Compilation\n\nRequired  OS release: Centos-7.2 or Centos-7.4\n\n```bash\ntar -xf jupiter.tar.gz\ncd jupiter\nmake rpm-pkg\nrpm -i rpmbuild/RPMS/x86_64/jupiter-0.1-1.x86_64.rpm\n```\n\n### 2. Startup\n\nThe default configuration path for jupiter-service is /etc/jupiter/jupiter.cfg. An example for jupiter.cfg as follows :\n\nEAL configuration reference [DPDK document](http://dpdk.org/doc/guides/testpmd_app_ug/run_app.html#eal-command-line-options).\n\n```vim\n[DPDK]\nargv = -c 0xf -n 4\n\n[DEVICE0]\nname = jupiter0\nipv4 = 1.1.1.2\nnetmask = 255.255.0.0\ngw = 1.1.1.254\nrxqsize = 256\ntxqsize = 512\nlocal-ipv4 = 10.0.2.1/32, 10.0.2.2/32\npci = 00:00.0\n```\n\nReserve huge pages memory:\n\n```bash\nmkdir -p /mnt/huge\nmount -t hugetlbfs nodev /mnt/huge\necho 4096 \u003e /sys/kernel/mm/hugepages/hugepages-2048kB/nr_hugepages\n```\n\nLoad [igb_uio](http://dpdk.org/doc/guides/linux_gsg/linux_drivers.html) module:\n\n```bash\nmodprobe uio\ninsmod /usr/share/jupiter/kmod/igb_uio.ko\n/usr/share/jupiter/tools/dpdk-devbind.py --bind=igb_uio eth1\n```\n\nLoad [rte_kni](http://dpdk.org/doc/guides/linux_gsg/enable_func.html#loading-the-dpdk-kni-kernel-module) module:\n\n```bash\ninsmod /usr/share/jupiter/kmod/rte_kni.ko\n```\n\nStart up jupier-service:\n\n```bash\njupiter-service --daemon\n```\n\n## Simple Test\n\n### 1. Test network diagram\n\n![Test network diagram](doc/1.png \"Test network diagram\")\n\n### 2. ab-client configuration\n\n```bash\nifconfig eth0 1.1.1.1/24 up\nroute add -net 10.0.1.0 netmask 255.255.255.0 gw 1.1.1.2\n```\n\n### 3. nginx-server configuration\n\n```bash\nifconfig eth0 1.1.1.3/24 up\nroute add -net 10.0.2.0 netmask 255.255.255.0 gw 1.1.1.2\n```\n\n### 4. jupiter-service configuration\n\nAdd a TCP virtual service 10.0.1.1:8888 and two nginx service 1.1.1.3:80, 1.1.1.4:80. [More information about command details.](doc/command.md)\n\n```bash\nifconfig jupiter0 1.1.1.2/24 up\njupiter-ctl vs/add 10.0.1.1:8888 tcp rr\njupiter-ctl rs/add 10.0.1.1:8888 tcp 1.1.1.3:80\njupiter-ctl rs/add 10.0.1.1:8888 tcp 1.1.1.4:80\n```\n\n### 5. ab-client request VIP service\n\n```bash\nab http://10.0.1.1:8888/\n```\n\n## Scale out\n\n![Scale out](doc/2.png \"Scale out\")\n\n## Performance\n\nCPU model: Intel(R) Xeon(R) CPU E5-2698 v4 @ 2.20GHz\n\nNIC model: Intel Corporation 82599ES 10-Gigabit SFI/SFP+ Network Connection\n\nJmeter version: apache-jmeter-3.1\n\nNginx version: nginx-1.10.2\n\nBind version: bind-9.9.4\n\nJupiter-service configuration: 8 lcore and 4G memory\n\n|protocol|schedule|TPS|ERROR|jupiter rx-pps|jupiter rx-bps|\n|-|-|-|-|-|-|\n|TCP|ipport|2064789.7|0|4.78M|8.41G|\n|TCP|rr|2060283.5|0|4.78M|8.41G|\n|TCP|lc|777078.5|0|-|-|\n|UDP|ipport|4212952|0|8.28M|7.75G|\n|UDP|rr|4272837.6|0|8.28M|7.75G|\n|UDP|lc|812356.2|0|-|-|\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftiglabs%2Fjupiter","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftiglabs%2Fjupiter","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftiglabs%2Fjupiter/lists"}