Вопрос по ubuntu, ulimit – Из терминала в Ubuntu измените ulimit для номера дескриптора файла

3

В терминале я пытаюсь изменить количество открытых описаний файлов, и они не будут зависать. Как из терминала поменять ulimit? Согласно приведенному ниже, когда я запускаю uwsgi из терминала, fd находятся на 1024.

<code>[email protected]:/tmp$ uwsgi --loop gevent --socket :3031 --wsgi-file /home/ubuntu/workspace/rtbopsConfig/rtbServers/rtbAsyncServers/bottleServer.py --master --async 100 --listen 300 --processes 1
*** Starting uWSGI 1.2.1 (64bit) on [Sat May 12 05:24:25 2012] ***
compiled with version: 4.5.2 on 11 May 2012 03:42:53
detected number of CPU cores: 2
current working directory: /tmp
detected binary path: /usr/local/bin/uwsgi
your memory page size is 4096 bytes
detected max file descriptor number: 1024
async fd table size: 1024
allocated 103200 bytes (100 KB) for 100 cores per worker.
lock engine: pthread robust mutexes
uwsgi socket 0 bound to TCP address :3031 fd 3
Python version: 2.7.1+ (r271:86832, Apr 11 2011, 18:37:12)  [GCC 4.5.2]
*** Python threads support is disabled. You can enable it with --enable-threads ***
Python main interpreter initialized at 0xd9bfd0
your server socket listen backlog is limited to 300 connections
*** Operational MODE: async ***
WSGI app 0 (mountpoint='') ready in 8 seconds on interpreter 0xd9bfd0 pid: 17688 (default app)
*** uWSGI is running in multiple interpreter mode ***
spawned uWSGI master process (pid: 17688)
spawned uWSGI worker 1 (pid: 17742, cores: 100)
*** running gevent loop engine [addr:0x4503f0] ***
!!! Running gevent without threads IS NOT recommended, enable them with --enable-threads !!!
</code>
Как именно вы пытаетесь это изменить? geekosaur
1) в той же оболочке ulimit 60000 затем 2) uwsgi --loop gevent --socket: 3031 --wsgi-file ... Tampa
И ты это проверилulimit выход изменился первым? В любом случае nonroot, вероятно, не может поднять его так высоко; Изучите разницу между мягкими и жесткими пределами, и кто может изменить каждый. geekosaur
Я попробовал следующее - ulimit 60000 Tampa
Давайте попробуем немного подробнее. Вы запускаете это в той же оболочке, и вы проверяете, что он сначала что-то сделал? Пожалуйста, предоставьте полную информацию о том, какую последовательность команд вы выполняете и где. geekosaur

Ваш Ответ

1   ответ
5

У меня была похожая проблема при попытке увеличить количество файловых дескрипторов для Nginx. Я должен был изменитьnofile в/etc/security/limits.conf для пользователя www-data:

www-data    hard    nofile    16384
www-data    soft    nofile    16384

После этого изменения ulimit все еще показывал ограничение 1024. Решением было включить * pam_limits * в/etc/pam.d/su, Я просто раскомментировал строку:

session    required    pam_limits.so

Изменение этого значения не потребовало перезагрузки, я просто снова вошел в систему как www-data. Сейчас работаетulimit -a раскрыл значение16384.

Надеюсь это поможет.

Ради будущих гуглов: очевидно, существует инструмент под названиемprlimit это может изменить пределы без запуска, но все же спустя годы его нет в util-linux. Есть небольшая утилитаhere это будет работать на любом новом ядре.

Похожие вопросы