All Projects → Hitachi → Istio Bench

Hitachi / Istio Bench

Licence: apache-2.0
A benchmark tool for Istio. It measures CPU, Memory, Network usage of istio per number of services

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to Istio Bench

eks-with-istio
Terraform template for a production ready EKS Cluster and ISTIO Service Mesh 🐳 📦 🚀
Stars: ✭ 32 (+60%)
Mutual labels:  service-mesh, istio
Admiral
Admiral provides automatic configuration generation, syncing and service discovery for multicluster Istio service mesh
Stars: ✭ 323 (+1515%)
Mutual labels:  service-mesh, istio
Charlescd
CharlesCD is an open source tool that makes deployments more agile, continuous and safe, which allows development teams to perform hypothesis validations with a specific group of users, simultaneously.
Stars: ✭ 275 (+1275%)
Mutual labels:  service-mesh, istio
meshRPC
Automatic Service Mesh and RPC generation for Go micro services, it's a humble alternative to gRPC with Istio.
Stars: ✭ 69 (+245%)
Mutual labels:  service-mesh, istio
Istio Operator
An operator that manages Istio deployments on Kubernetes
Stars: ✭ 482 (+2310%)
Mutual labels:  service-mesh, istio
meshery-operator
The service mesh operator.
Stars: ✭ 41 (+105%)
Mutual labels:  service-mesh, istio
Vertx Zero
Zero Framework:http://www.vertxup.cn
Stars: ✭ 320 (+1500%)
Mutual labels:  service-mesh, istio
micro-mesh
gRPC微服务架构实践
Stars: ✭ 52 (+160%)
Mutual labels:  service-mesh, istio
Istio
Istio官方文档中文版
Stars: ✭ 389 (+1845%)
Mutual labels:  service-mesh, istio
Istio Handbook
Istio Handbook - Istio Service Mesh Advanced Practical(Istio 服务网格进阶实战) - https://jimmysong.io/istio-handbook
Stars: ✭ 374 (+1770%)
Mutual labels:  service-mesh, istio
Kubernetes-and-Cloud-Native-Associate-KCNA
Useful notes for the KCNA - Kubernetes and Cloud Native Associate
Stars: ✭ 162 (+710%)
Mutual labels:  service-mesh, istio
Pitstop
This repo contains a sample application based on a Garage Management System for Pitstop - a fictitious garage. The primary goal of this sample is to demonstrate several software-architecture concepts like: Microservices, CQRS, Event Sourcing, Domain Driven Design (DDD), Eventual Consistency.
Stars: ✭ 708 (+3440%)
Mutual labels:  service-mesh, istio
kserve
Serverless Inferencing on Kubernetes
Stars: ✭ 1,621 (+8005%)
Mutual labels:  service-mesh, istio
service-mesh-labs
Lab scenarios for learning how to service mesh.
Stars: ✭ 22 (+10%)
Mutual labels:  service-mesh, istio
apiclarity
Reconstruct Open API Specifications from real-time workload traffic seamlessly.
Stars: ✭ 290 (+1350%)
Mutual labels:  service-mesh, istio
Dew
微服务一站式解决方案,提供:架构指南、容器优先/兼容Spring Cloud与Service Mesh的框架、最佳实践及Devops标准化流程。
Stars: ✭ 285 (+1325%)
Mutual labels:  service-mesh, istio
learn-layer5
A sample application for learning how to service mesh and for validating SMI conformance
Stars: ✭ 43 (+115%)
Mutual labels:  service-mesh, istio
micro-plugins
go-micro plugins, auth(JWT+Casbin)、go-micro服务加入istio服务网格
Stars: ✭ 27 (+35%)
Mutual labels:  service-mesh, istio
Nacos
an easy-to-use dynamic service discovery, configuration and service management platform for building cloud native applications.
Stars: ✭ 20,691 (+103355%)
Mutual labels:  service-mesh, istio
Istio Knowledge Map
Istio knowledge map 知识图谱
Stars: ✭ 526 (+2530%)
Mutual labels:  service-mesh, istio

istio-bench

A benchmark tool for Istio. It measures CPU, Memory, Network usage of istio-proxies and istio control planes per number of pod.

This script will repeat deploying dummy pods and collect the usage of resources. Then it will calculate an approximate curve for resource usage and output csv tables and charts. Its architecture is shown as follows.

architecture

Sample Results

Predicted Memory Usage of istio-proxy Memory Usage of controlplane

See all samples here.

Prerequirements

  • in local machine
    • Python >= 3.5.0
    • pip
    • kubectl >= 1.9.0
  • in remote cluster
    • Kubernetes Cluster >= 1.9.0 (enough compute resources are recommended)
    • Istio > 1.2 installed in istio-system Namespace
    • Prometheus installed in istio-system Namespace

Get Started

Install istio-bench

git clone https://github.com/Hitachi/istio-bench
cd istio-bench
pip install -r requirements.txt

And run it

./istio-bench.py

Command line arguments

usage: istio-bench.py [-h] [--by number] [--prometheus url] [--namespace file] [--deployment file]
                      [--service file] [--no-chart] [--no-predict] [-o dir] [--isolate]
                      [--verbose {0,1,2,3,4}] [-V]
                      services

measures cpu, memory, and network usage of Istio for each service

positional arguments:
  services               number of services to be deployed as a workload

optional arguments:
  -h, --help             show this help message and exit
  --by number            number of Services by namespace (default: 100)
  --prometheus url       url of Prometheus. The default url uses kubectl port-forward (default:
                         http://127.0.0.1:9090)
  --namespace file       path of Namespace template file (default: ./template/namespace.yaml)
  --deployment file      path of Deployment template file (default: ./template/deployment.yaml)
  --service file         path of Service template file (default: ./template/service.yaml)
  --no-chart             do not output chart image(svg) (default: False)
  --no-predict           do not predict resource usage (default: False)
  -o dir, --output dir   path of the output directory (default: ./output-istio-{version}-{unixepoch})
  --isolate              [NOT IMPLEMENTED] isolate envoy xDS by namespace (default: False)
  --verbose {0,1,2,3,4}  number for the log level verbosity (default: 0)
  -V, --version          show program's version number and exit```

Examples for usage and output

Measure the transition of resource usage when deploying 250 dummy pods step by step by 50 pods.

./istio-bench.py --max_pod 250 --interval 50

Here is the output.

Why istio-bench

In some cases, the usage of resource in Proxy and ControlPlane increases linearly with the number of pods in the cluster. Therefore, capacity must be well managed to prevent Pod and Node from stopping due to OOM Killer. Trends in resource usage will vary according to the version of Istio and cluster settings. Thus, it is effective to estimate the resource consumption according to the number of pods using a benchmarker.

Contributing

TBD

Authors

  • Ide, Takaya - Hitachi Ltd.
  • Yu, Jiye - Hitachi Ltd.
  • Naganuma, Yuki - Hitachi Ltd.
  • Hatasaki, Keisuke - Hitachi Ltd.

License

Copyright 2020 Istio-Bench Authors and Hitachi Ltd.

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].