Siege:描述符表已满 sock.c:119:打开的文件过多

Siege:描述符表已满 sock.c:119:打开的文件过多

我正在尝试使用 siege 在自己的服务器中进行压力测试,命令如下:

$ siege -c 500 myweb.com/somefile.php

但是我收到此错误:

[error] descriptor table full sock.c:119: Too many open files

我也收到这个警告:

libgcc_s.so.1 must be installed for pthread_cancel to work

但是我正在使用 Ubuntu 15.04(开发分支)并且已经安装了 libgcc1 包,所以我不知道它为什么会抱怨那个 .so 共享库。

我该如何解决打开文件过多和 libgcc 警告?

答案1

为了解决这个问题,我必须调整操作系统的“ulimit”设置:

ulimit -a-- 检查当前设置

ulimit -n 10000-- 编辑设置值

来源:https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=595527

答案2

只需相应增加同一用户在同一会话中可以打开的最大文件数。

来源:http://www.cyberciti.biz/faq/linux-increase-the-maximum-number-of-open-files/

答案3

错误消息具有误导性,但是您的命令中存在错误:

$ siege -c 500 myweb.com/somefile.php

之后-c您必须指定同时模拟的用户数量。

不要忘记检查日志文件的权限:默认情况下它是/var/log/siege.log

或者,通过添加来指定您自己的--log=/home/user/siege.log

答案4

安装gcc-multilib对我有帮助(Ubuntu 16.04.3 LTS)

sudo apt-get install gcc-multilib

相关内容