Как увеличить количество открытых файлов на лимит процесса во FreeBSD 10.1?
У меня проблема с лимитом количества открытых файлов на процесс во FreeBSD 10.1-RELEASE. Чтобы доказать это, я делаю скрипт на python для генерации фиктивных файлов и открывал эти файлы. Скрипт доступен в
- Генератор: https://gist.github.com/juniorh/ef9273911dee551f1048
- Загрузчик: https://gist.github.com/juniorh/3b2fb0a80cddb8e407b3
Чтобы сгенерировать файлы 1M, выполните команду
# mkdir -p /tmp/1
# python dummyFileGenerator.py -d /tmp/1 -n 1000000 -r 1
Затем загрузите все файлы
# python dummyFileLoader.py -d /tmp/1 -n 1000000 -r 1
Ошибка открытия файла после загрузки файлов 32766
retry openfile 32766
Traceback (most recent call last):
File "dummyFileLoader.py", line 74, in <module>
File "dummyFileLoader.py", line 59, in openfile
IOError: [Errno 24] Too many open files: '/tmp/1/00/00/7f/fd'
Я пытался изменить maxfile, но не решил
# sysctl -a|grep maxfiles
kern.maxfiles: 1000000
kern.maxfilesperproc: 1000000
# ulimit -a
cpu time (seconds, -t) unlimited
file size (512-blocks, -f) unlimited
data seg size (kbytes, -d) 33554432
stack size (kbytes, -s) 524288
core file size (512-blocks, -c) unlimited
max memory size (kbytes, -m) unlimited
locked memory (kbytes, -l) unlimited
max user processes (-u) 6670
open files (-n) 58284
virtual mem size (kbytes, -v) unlimited
swap limit (kbytes, -w) unlimited
sbsize (bytes, -b) unlimited
pseudo-terminals (-p) unlimited
Есть идеи по этому поводу?
1 ответ
Вы подтвердили, что python также видит правильные ограничения?
import resource;
print resource.getrlimit(resource.RLIMIT_NOFILE)