-
Notifications
You must be signed in to change notification settings - Fork 4k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
HTTP协议下,当返回数据较大时,reponse发送延迟极大且并行请求会一起堵塞很久 #2848
Comments
试试持续下载看有没有改善? |
抱歉,我们使用的是http直接请求,没有用brpc的client,然后主要问题在于返回1g的数据花了10多秒,根据日志显示应该是请求3秒内rpc方法已经处理完了,也就是返回数据写入socket到返回花了10秒时间,这和我们的网卡带宽和brpc的性能测试貌似不太对得上 |
可以抓包看看server发包情况吧 |
|
会不会是网络问题或者client收数据慢了呢?
|
rpc_waitepollout_count表示server写socket写到EAGAIN的次数,看起来server不是瓶颈。 |
client的窗口看着还好没有真正限制到发包过,网卡本身发包慢? |
有可能 |
这个现在定位了么 |
Describe the bug (描述bug)
HTTP协议的server下,如果请求返回的数据较大时,数据返回延迟过高(不是rpc方法延迟,方法内无阻塞,延迟经测试很低)。返回数据100mb时,并行50个请求需要等到很久后(45s)同时发出的请求才会陆续收到回报,显著慢于只打一个请求(1.3s), 单个请求返回1GB时耗时10s显著慢于网卡的吞吐
To Reproduce (复现方法)
http协议的server返回内容如下,value为大小为100MB或1GB的字符串
打http请求
Expected behavior (期望行为)
当并发50个http请求,返回value为100MB时,50个请求在发出请求45秒后统一陆续返回。如果只有一个请求,返回value 100MB只需要1.3s。
一次请求,如果返回value为1GB,leave method耗时要10多s(不考虑rpc方法内的时间),请求端很久收到返回,延迟过高。
Versions (各种版本)
OS: ubuntu20
Compiler: gcc13
brpc: 1.11.0
protobuf: 3.21.12
Additional context/screenshots (更多上下文/截图)
The text was updated successfully, but these errors were encountered: