siege 压测-c 1000 报错buffer overflow detected怎么设置?
发布于 9 年前 作者 wangbinlml 6760 次浏览 最后一次编辑是 8 年前 来自 问答

如题.

8 回复

并发太大了,你机器扛不住, -c 50 左右 一般还是可以的

@fish -_- 我想知道web压测超过1000并发的都用什么工具,ab也有问题?

@wangbinlml 多机并发貌似才有出路

我也用siege,并发大,会出现超时,连接被重置, 其他错误还没碰到。 你可否截个图?一起找找原因。 并发不是问题,4096我都搞过。

进程fd上限也要提升,这个也会有影响的。 ulimit -n 65535 默认是1024个。

@coordcn 这个参数设置了,在继续增加客户端,超过1000就报buffer overflow detected.google 了很久没找到答案. ** 错误信息:** alex :~$ siege -f /home/alex/urls -c 2000 -t1 ** SIEGE 3.0.9 ** Preparing 2000 concurrent users for battle. The server is now under siege… HTTP/1.1 200 0.45 secs: 4461 bytes ==> GET /sb/circle?uuid=1&count=10&area=1 *** buffer overflow detected ***: siege terminated ======= Backtrace: ========= /lib/x86_64-linux-gnu/libc.so.6(+0x7338f)[0x7fc91dac738f] Aborted (core dumped)

@fish 我是在单机情况下找系统瓶颈.

@wangbinlml 服务端进程和客户端进程都调了fd上限么?两边都要调整,我现在用的是3.1.0版本。

有core文件可以编译个debug版本,用gdb看下core文件哪里出问题了。肯定不是并发数量的问题,我4096都没问题,顶多出现超时,或连接重置错误,崩溃还没碰到过。你也可以用valgrind运行下siege,也能帮你定位,编译出一个debug版本siege,然后再valgrind运行,出错了能定位错误位置,valgrind对内存错误很有效。

回到顶部