apache / apache/brpc

单个rpcserver的多连接带宽上限如何突破

Open
#2,119 12 comments 0 reactions 0 assignees View on GitHub
Dominant language
C++
Stars
17.6k
Forks
4.1k
Avg merge
2d 12h
Merged PRs (30d)
69

Description

**问题描述**
在一台linux服务器上部署一个依赖brpc的进程A,压测发现进程A最大的入口带宽为2.5GB/s左右,无论如何更改A进程的内部线程模型或者brpc的各种参数,都无法继续增长;但是硬件指标都没有跑满,这时再部署相同的进程B,发现带宽又可以继续增加到4.5GB/s左右,以此类推,增加进程的个数,可以将硬件打满

**疑惑点**
根据brpc的项目描述,也确实曾经描述过单个server的带宽上限约为2.3GB/s每秒,但这个限制到底源于什么呢?为什么增加brpc server可以解决,但是通过扩充单个server的调度线程或worker线程,就无法解决呢?这实在让人疑惑

**Versions** (各种版本)
OS: CentOS Linux release 7.6.1810 (Core)
Compiler: gcc 4.8.5

Contributor guide

Open the contributing guide

Research direction

Start by reproducing the reported bandwidth ceiling for one brpc server on the stated CentOS and GCC versions, then compare it with multiple server processes. Investigate the server's scheduling and worker-thread behavior using the issue's 2.5 GB/s and 4.5 GB/s measurements; done means identifying the limiting factor and explaining why process-level scaling differs from adding threads.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp, linux
Domain
backend-api-design, networking, performance
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.