我正在尝试对各种 Web 服务器设置进行基准测试和负载测试(mod_php 与 php 作为 fastcgi、最大/最小工作线程/线程配置等)。我从 ab 开始,但对这项工作的其他推荐工具感兴趣。Web 服务器是 Linux 服务器,但如果需要,我可以从我的台式机运行基于 Windows 的测试工具。
我也对任何有关技术的建议感兴趣。例如:
我假设在另一台不执行其他任何操作的机器上运行会得到更有用的结果(而不是在与 Web 服务器相同的机器上运行,或在我的台式机上作为后台进程运行)。这样对吗?
同样,我认为可以通过将该机器放在同一数据中心的私有 IP 上来减少网络问题对测试的影响。
我想要设置多个文件来进行任何类型的真实测试(我甚至可以用 ab 来做到这一点吗?)。
还有其他建议吗?
答案1
我喜欢建立一个计算机教室,运行围城。
我使用 wget 爬取了该网站一次
wget -r -l0 -np -O /dev/null http://domainname.com
// Note that the -l0 means that it will recurse infinitly, depending on your site,
// you might want to change that to something lower, say ... -l3
// This will crawl the site, and throw all the contents away.
然后我使用如下一行代码从服务器日志中获取所有唯一的 URL:
awk '{ print "http://domainname.com"$7 }' access.log | sort | uniq
然后可以设置围攻来使用这个文件,然后以随机顺序尝试它们。
siege -f siegeurls -i -b
它还可以配置为发送各种标题、设置用户代理等等。
我建议你看一下 siege。这是我自己测试网站装备时使用的设置。