几周前,我为我的编程任务实现了一个简单的多线程 HTTP 服务器。在这个作业中,用户通过浏览器指定了一个文档大小(例如 localhost:port/250 用于 250 字节长的文档),我的程序创建了一个具有该大小的 html 页面。
我已经使用称为 apachebench 的基准测试工具测试了它的性能。性能主要是我对多线程程序的期望。
但是,有一个有趣的测试结果困扰了我一段时间。请求的传输率随着请求大小的增加而急剧下降。这是我使用此命令行参数的示例 apachebench 测试结果;
ab -n 1000 http://localhost:port/RequestSize
请求大小发送 (字节) (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
并发水平只会使这种分布不那么陡峭。
这种行为的原因是什么?
谢谢,