smallnest / 1m Go Tcp Server
benchmarks for implementation of servers which support 1 million connections
Stars: ✭ 1,193
Projects that are alternatives of or similar to 1m Go Tcp Server
Http Benchmarks
Benchmarks for common embedded Java and Kotlin web frameworks
Stars: ✭ 65 (-94.55%)
Mutual labels: benchmark
Ncnn Benchmark
The benchmark of ncnn that is a high-performance neural network inference framework optimized for the mobile platform
Stars: ✭ 70 (-94.13%)
Mutual labels: benchmark
Evalne
Source code for EvalNE, a Python library for evaluating Network Embedding methods.
Stars: ✭ 67 (-94.38%)
Mutual labels: benchmark
Freqbench
Comprehensive CPU frequency performance/power benchmark
Stars: ✭ 65 (-94.55%)
Mutual labels: benchmark
Memento
Fairly basic redis-like hashmap implementation on top of a epoll TCP server.
Stars: ✭ 74 (-93.8%)
Mutual labels: epoll
Quantum Benchmarks
benchmarking quantum circuit emulators for your daily research usage
Stars: ✭ 70 (-94.13%)
Mutual labels: benchmark
Crypto Bench
Benchmarks for crypto libraries (in Rust, or with Rust bindings)
Stars: ✭ 67 (-94.38%)
Mutual labels: benchmark
Web Components Benchmark
Web Components benchmark for a various Web Components technologies
Stars: ✭ 69 (-94.22%)
Mutual labels: benchmark
Ossf Cve Benchmark
The OpenSSF CVE Benchmark consists of code and metadata for over 200 real life CVEs, as well as tooling to analyze the vulnerable codebases using a variety of static analysis security testing (SAST) tools and generate reports to evaluate those tools.
Stars: ✭ 71 (-94.05%)
Mutual labels: benchmark
Umesimd
UME::SIMD A library for explicit simd vectorization.
Stars: ✭ 66 (-94.47%)
Mutual labels: benchmark
Jsperf.com
jsperf.com v2. https://github.com/h5bp/lazyweb-requests/issues/174
Stars: ✭ 1,178 (-1.26%)
Mutual labels: benchmark
Gl vs vk
Comparison of OpenGL and Vulkan API in terms of performance.
Stars: ✭ 65 (-94.55%)
Mutual labels: benchmark
Attabench
Microbenchmarking app for Swift with nice log-log plots
Stars: ✭ 1,167 (-2.18%)
Mutual labels: benchmark
Unsafe
Assorted java classes that make use of sun.misc.Unsafe
Stars: ✭ 74 (-93.8%)
Mutual labels: benchmark
Asr benchmark
Program to benchmark various speech recognition APIs
Stars: ✭ 71 (-94.05%)
Mutual labels: benchmark
Benchmark for implementation of servers that support 1m connections
inspired by handling 1M websockets connections in Go
Servers
-
1_simple_tcp_server: a 1m-connections server implemented based on
goroutines per connection
-
2_epoll_server: a 1m-connections server implemented based on
epoll
- 3_epoll_server_throughputs: add throughputs and latency test for 2_epoll_server
-
4_epoll_client: implement the client based on
epoll
-
5_multiple_client: use
multiple epoll
to manage connections in client -
6_multiple_server: use
multiple epoll
to manage connections in server -
7_server_prefork: use
prefork
style of apache to implement server -
8_server_workerpool: use
Reactor
pattern to implement multiple event loops -
9_few_clients_high_throughputs: a simple
goroutines per connection
server for test throughtputs and latency -
10_io_intensive_epoll_server: an io-bound
multiple epoll
server -
11_io_intensive_goroutine: an io-bound
goroutines per connection
server -
12_cpu_intensive_epoll_server: a cpu-bound
multiple epoll
server -
13_cpu_intensive_goroutine: an cpu-bound
goroutines per connection
server
Test Environment
- two
E5-2630 V4
cpus, total 20 cores, 40 logicial cores. - 32G memory
tune the linux:
sysctl -w fs.file-max=2000500
sysctl -w fs.nr_open=2000500
sysctl -w net.nf_conntrack_max=2000500
ulimit -n 2000500
sysctl -w net.ipv4.tcp_tw_recycle=1
sysctl -w net.ipv4.tcp_tw_reuse=1
client sends the next request only when it has received the response. it has not used the pipeline
style to test.
Benchmarks
1m connections
throughputs (tps) | latency | |
---|---|---|
goroutine-per-conn | 202830 | 4.9s |
single epoll(both server and client) | 42495 | 23s |
single epoll server | 42402 | 0.8s |
multiple epoll server | 197814 | 0.9s |
prefork | 444415 | 1.5s |
workerpool | 190022 | 0.3s |
中文介绍:
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].