All Projects → oatpp → Benchmark Websocket

oatpp / Benchmark Websocket

Licence: apache-2.0
Websocket Client and Server for benchmarks with Millions of concurrent connections.

Projects that are alternatives of or similar to Benchmark Websocket

Rtb
Benchmarking tool to stress real-time protocols
Stars: ✭ 35 (-43.55%)
Mutual labels:  websocket, benchmark
Agoo
A High Performance HTTP Server for Ruby
Stars: ✭ 679 (+995.16%)
Mutual labels:  websocket, benchmark
Dbbench
🏋️ dbbench is a simple database benchmarking tool which supports several databases and own scripts
Stars: ✭ 52 (-16.13%)
Mutual labels:  benchmark
Functional Components Benchmark
Directly calling functional components instead of mounting them is faster.
Stars: ✭ 59 (-4.84%)
Mutual labels:  benchmark
Pplbench
Evaluation Framework for Probabilistic Programming Languages
Stars: ✭ 57 (-8.06%)
Mutual labels:  benchmark
Websocket
A PHP implementation of WebSocket.
Stars: ✭ 54 (-12.9%)
Mutual labels:  websocket
Fish
golang h5捕鱼游戏
Stars: ✭ 58 (-6.45%)
Mutual labels:  websocket
Django Channels React Multiplayer
turn based strategy game using django channels, redux, and react hooks
Stars: ✭ 52 (-16.13%)
Mutual labels:  websocket
Gophergameserver
🏆 Feature packed, easy-to-use game server API for Go back-ends and Javascript clients. Tutorials and examples included!
Stars: ✭ 61 (-1.61%)
Mutual labels:  websocket
Javafx Dataviewer Wrapper
📊 Exposing charts from Java to JavaFX and the Web!
Stars: ✭ 56 (-9.68%)
Mutual labels:  websocket
Crypto Trading Bot
Cryptocurrency trading bot in javascript for Bitfinex, Bitmex, Binance, FTX, Bybit ... (public edition)
Stars: ✭ 1,089 (+1656.45%)
Mutual labels:  websocket
Tyloo Chat
vue + nestjs IM即时通讯聊天室(仿wechat)
Stars: ✭ 54 (-12.9%)
Mutual labels:  websocket
Pytest Django Queries
Generate performance reports from your django database performance tests.
Stars: ✭ 54 (-12.9%)
Mutual labels:  benchmark
Http Proxy Middleware
⚡ The one-liner node.js http-proxy middleware for connect, express and browser-sync
Stars: ✭ 8,730 (+13980.65%)
Mutual labels:  websocket
Hash Bench
Java Hashing, CRC and Checksum Benchmark (JMH)
Stars: ✭ 53 (-14.52%)
Mutual labels:  benchmark
Rb
A thread-safe fixed-size circular buffer written in safe Rust.
Stars: ✭ 59 (-4.84%)
Mutual labels:  benchmark
Channelstream
Channelstream is a websocket communication server for web applications
Stars: ✭ 52 (-16.13%)
Mutual labels:  websocket
Websocks
A proxy server base on websocket
Stars: ✭ 55 (-11.29%)
Mutual labels:  websocket
X11vnc Desktop
Docker image for Ubuntu with X11 and VNC
Stars: ✭ 57 (-8.06%)
Mutual labels:  websocket
Webconsole
Spigot plugin to manage your server remotely using a web interface
Stars: ✭ 62 (+0%)
Mutual labels:  websocket

benchmark-websocket Build Status

About recent results read here: 5 Million WebSockets

See also:

Overview

This repo contains both server and client used in oatpp-websocket-benchmarks. Both server and client are implemented based on oatpp Async API and oatpp-coroutines

Repo structure

|- client/
|    |- src/                    // client source code
|    |- CMakeLists.txt          // client CMakeLists.txt
|
|- server/
|    |- src/                    // server source code
|    |- CMakeLists.txt          // server CMakeLists.txt
|
|- prepare.sh                   // prepare script - will clone oatpp and oatpp-websocket. build and install.
|- sock-config.sh               // configure required sysctl(s)

Reproduce latest benchmark

Create two n1-highmem-16 (16 vCPUs, 104 GB memory) - Debian GNU/Linux 9 instances in same VPC on Google Cloud.

Execute the following commands for both instances (SSH).

  • Install git
$ sudo su
$ apt-get update
...
$ apt-get install -y git
...
$ git clone https://github.com/oatpp/benchmark-websocket
...
$ cd benchmark-websocket
  • Install oatpp and oatpp-websocket modules (run ./prepare.sh script).
$ ./prepare.sh
  • Configure environment (run ./sock-config-5m.sh script)
$ ./sock-config-5m.sh
$ ulimit -n 6000000

Build and Run Server

Commands for server instance only:

  • Build server
$ cd server/build/
$ cmake ..
$ make
  • Run server
$ ./wsb-server-exe --tp 16 --tio 8 --pc 500

where:
--tp - number of data-processing threads.
--tio - number of I/O workers.
--pc - number of ports to listen to.

Build and Run Client

Commands for client instance only:

  • Build client
$ cd client/build/
$ cmake ..
$ make
  • Run client
$ ./wsb-client-exe --tp 16 --tio 8 -h <server-private-ip> --socks-max 5000000 --socks-port 10000 --si 1000 --sf 30 --pc 500

where:
--tp - number of data-processing threads.
--tio - number of I/O workers.
-h <server-private-ip> - substitute private-ip of server instance here.
--socks-max - how many client connections to establish.
--socks-port - how many client connections per port.
--si 1000 --sf 30 - control how fast clients will connect to server. Here - each 1000 iterations sleep for 30 milliseconds.
--pc - number of available server ports to connect to.

Note - clients will not start load until all clients are connected.
Note - client app will fail with assertion if any of clients has failed.

Links

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