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

如何最大化HTTP网络吞吐量?,http,networking,couchdb,Http,Networking,Couchdb,当我在CouchDB上运行基准测试时,我注意到即使使用大型批量插入,并行运行其中一些插入的速度也几乎是原来的两倍。我还知道web浏览器使用许多并行连接来加速页面加载 多个连接比一个连接快的原因是什么?它们通过同一条线路,甚至到本地主机 如何确定理想的并行请求数?有没有经验法则,比如“threadpool size=#cores+1”?选通因素不是线路本身,毕竟它运行得很快(忽略路由器延迟),而是两端的软件开销。每次物理传输都必须进行设置,发送和存储数据,然后完全处理,然后才能进行其他操作。因此,

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

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


如何确定理想的并行请求数?有没有经验法则,比如“threadpool size=#cores+1”?

选通因素不是线路本身,毕竟它运行得很快(忽略路由器延迟),而是两端的软件开销。每次物理传输都必须进行设置,发送和存储数据,然后完全处理,然后才能进行其他操作。因此,每个连接都是有效同步的,不管它声称是在套接字级别:一个异步操作的套接字仍然以同步方式来回移动数据,因为软件需要同步性

第二个连接可以利用延迟(即线路上的死区时间),这是软件为第一个连接执行操作时产生的。因此,即使每个连接都是同步的,多个连接也会让事情发生得更快。事情似乎(但当然只是)同时发生

您可能想看看HTTP规范。它将告诉您发生在HTTP连接上的交换


我不能说关于并行请求的最佳数量,这是浏览器和服务器之间的问题

选通因素不是线路本身,毕竟它运行得很快(忽略路由器延迟),而是两端的软件开销。每次物理传输都必须进行设置,发送和存储数据,然后完全处理,然后才能进行其他操作。因此,每个连接都是有效同步的,不管它声称是在套接字级别:一个异步操作的套接字仍然以同步方式来回移动数据,因为软件需要同步性

第二个连接可以利用延迟(即线路上的死区时间),这是软件为第一个连接执行操作时产生的。因此,即使每个连接都是同步的,多个连接也会让事情发生得更快。事情似乎(但当然只是)同时发生

您可能想看看HTTP规范。它将告诉您发生在HTTP连接上的交换


我不能说关于并行请求的最佳数量,这是浏览器和服务器之间的问题

每个连接使用一个自己的线程。每个线程都有一个消耗CPU、网络和其他资源的量。主要是CPU

当您启动并行调用时,线程将争用CPU时间并“同时”运行

这是对事物的高层次概述。我建议您阅读异步调用和线程编程,以便更好地理解它

[]的


和过去的

每个连接消耗一个自己的线程。每个线程都有一个消耗CPU、网络和其他资源的量。主要是CPU

当您启动并行调用时,线程将争用CPU时间并“同时”运行

这是对事物的高层次概述。我建议您阅读异步调用和线程编程,以便更好地理解它

[]的

过去的