【发布时间】:2011-11-13 03:24:46
【问题描述】:
当我尝试使用高请求率的 httperf 执行负载测试时,我收到以下错误:
» httperf --client=0/1 --server=www.xxxxx.com --port=80 --uri=/ --send-buffer=4096 --recv-buffer=16384 --num-conns=200 --rate=30
httperf --client=0/1 --server=staging.truecar.com --port=80 --uri=/ --rate=30 --send-buffer=4096 --recv-buffer=16384 --num-conns=200 --num-calls=1
httperf: warning: open file limit > FD_SETSIZE; limiting max. # of open files to FD_SETSIZE
**Segmentation fault: 11**
当“速率”> 15 时引发错误
版本:
httperf 0.9.0
OS X 10.7.1
【问题讨论】:
-
我在 OSX 10.6.8 上看到了同样的情况,httperf 0.8.1 和 0.9.0
-
我看到了这一点,即使将速率设置为 > 1。在段错误为 2 之前它似乎运行时间更长,但 3 段错误很快。
-
检查是否内存不足。
-
您的系统文件描述符不足。 IIRC,这发生在使用太小的方式的 RPM 包
__FD_SETSIZE(如 1024)。 Afaik 你需要重新编译限制性 RPM 包(例如 glibc、Apache、PHP 等)以增加__FD_SETSIZE,所以我建议将问题迁移到 Server Fault。 -
我在运行 Apache 2.2.15 的 CentOS 6 x64 上遇到了同样的问题,但在运行 Nginx 1.2.3 的 Debian 6 x64 上却没有,两者都使用 httperf-0.9.0。两者的打开文件限制相同 (1024)。