单个rpcserver的多连接带宽上限如何突破
- 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
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