Я пытаюсь провести стресс-тест на своем собственном сервере, используя осаду с помощью следующей команды:
$ 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?
Чтобы решить эту проблему для себя, мне пришлось настроить параметр ОС «ulimit»:
ulimit -a
- Проверить текущую настройку
ulimit -n 10000
- Изменить значение настройки
Источник: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=595527
Просто увеличьте максимальное количество файлов, которые могут быть открыты одним и тем же пользователем в рамках одного сеанса соответственно.
Источник: http://www.cyberciti.biz/faq/linux-increase-the-maximum-number-of-open-files/
Установка gcc-multilib
помог мне с этим (Ubuntu 16.04.3 LTS)
sudo apt-get install gcc-multilib
Сообщение об ошибке вводит в заблуждение, но в вашей команде есть erorr:
$ siege -c 500 myweb.com/somefile.php
После -c
вы должны указать количество одновременных симулируемых пользователей.
Не забудьте проверить права на файл журнала: по умолчанию это /var/log/siege.log
.
Или укажите свое, добавив --log=/home/user/siege.log