http - 如何最大化 HTTP 网络吞吐量?

标签 http networking couchdb

我在 CouchDB 上运行基准测试时注意到,即使有大量的批量插入,并行运行其中的一些也几乎快两倍。我也知道网络浏览器使用许多并行连接来加快页面加载。

多个连接比一个连接快的原因是什么?他们通过同一条线路,甚至到达本地主机。

如何确定理想的并行请求数?是否有经验法则,例如“线程池大小 = # 核心数 + 1”?

最佳答案

门控因素不是线路本身,毕竟它运行得非常快(忽略路由器延迟),而是两端的软件开销。必须设置每个物理传输,发送和存储数据,然后在任何事情发生之前完全处理。因此,每个连接实际上都是同步的,无论它在套接字级别声称是什么:一个异步操作的套接字仍在以同步方式来回移动数据,因为软件需要同步性。

第二个连接可以利用延迟——线路上的停滞时间——这是由软件为第一次连接做的事情引起的。因此,即使每个连接都是同步的,多个连接也会让事情发生得更快。事情似乎(但当然只是似乎)并行发生。

您可能想看看 RFC 2616 , HTTP 规范。它会告诉您发生 HTTP 连接的交换。

关于并行请求的最佳数量我不能说什么,这是浏览器和服务器之间的事情。

关于http - 如何最大化 HTTP 网络吞吐量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7541389/

相关文章:

javascript - Couchdb 使用键连接两个文档

json - couchdb 查询带有关键参数的 View

java - 学习如何使用 HTTP 请求

javascript - 确定 cookie 的来源是 javascript 还是跟踪像素

windows - WinSock 最佳 accept() 实践

Android 模拟器在 webview 中的 loadUrl 后多次卡住

python - 我的 Python3 HTTP 头解析代码可以吗?

http - 我可以在服务器端应用程序(PHP、Ruby、Python 等)上读取 URL 的哈希部分吗?

networking - 检查文件夹是.NET中的本地资源还是网络资源

javascript - 如何在 couchdb 中获取表的数据