增加请求大小的传输速率行为

时间:2011-11-29 19:59:32

标签: java multithreading serversocket apachebench

几周前,我为我的编程任务实现了一个简单的多线程HTTP服务器。在此分配中,用户通过浏览器指定了文档大小(如localhost:port / 250,用于250字节长的文档),我的程序创建了一个具有该大小的html页面。

我用一个名为apachebench的基准测试工具测试了它的性能。性能主要是我对多线程程序的期望。

但是,有一个有趣的测试结果现在让我烦恼了一段时间。 请求的传输速率随着请求大小的增加而急剧下降。 以下是使用此命令行参数的示例apachebench测试结果;

ab -n 1000 http://localhost:port/RequestSize

RequestSize      TX 
(bytes)         (KB/s)
70              212,21
150             268,75
250             364,58
350             447,23
500             497,36
650             496,73
800             491,48
1000            432,63
1250            405,17
1750            347,19
3000            241,95
5000            161,46
10000           84,58
20000           44,05

并发级别只会使这种分布不那么陡峭。

这种行为的原因是什么?

谢谢,

1 个答案:

答案 0 :(得分:0)

您可以相当容易地缩小服务器中某些微基准测试延迟的位置。但请注意,微基准可能会导致您走错了优化路径。不过,你至少应该能够清楚地知道你的时间花在哪里。

如果您正在动态生成有效负载,实际上可能是数据生成在较大尺寸上成为问题。环回链路上的MTU应远高于LAN / WAN链路的标准(1500),因此不应该是一个因素。