Назад | Перейти на главную страницу

Осада: таблица дескрипторов заполнена sock.c: 119: слишком много открытых файлов

Я пытаюсь провести стресс-тест на своем собственном сервере, используя осаду с помощью следующей команды:

$ 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