Шпаргалка по user-limits
Изменение лимитов
Увеличить лимит открытых файлов для всех пользователей:
/etc/security/limits.conf
* hard nofile 500000 * soft nofile 500000 root hard nofile 500000 root soft nofile 500000
То-же самое через PAM:
в файл /etc/pam.d/common-session
добавить:
session required pam_limits.so
Общестемное ограничение:
В файле /etc/sysctl.conf
fs.file-max = 2097152
после чего перечитать файл
sysctl -p
Лимиты в системе systemd
limits.conf действует только на pam пользователей. Демоны, которые запускаются через systemd получают свои лимиты. устанавливать так (на примере nginx):
mkdir /etc/systemd/system/nginx.service.d echo "[Service] LimitNOFILE=65536" > /etc/systemd/system/nginx.service.d/override.conf systemctl daemon-reload systemctl restart nginx
или глобально для всех демонов:
echo "DefaultLimitNOFILE=65536" >> /etc/systemd/system.conf systemctl daemon-reload
Проверка лимитов
Общесистемное ограничение:
cat /proc/sys/fs/file-max
Для текущего пользователя:
ulimit -aHS
Для любого пользователя (например для www-data):
su - www-data -c 'ulimit -aHS' -s '/bin/bash'
Для процесса (где XXX=pid процесса):
cat /proc/XXX/limits
Посмотреть количество открытых файлов:
ls -1 /proc/<PID>/fd | wc -l
Установить лимиты для контейнера LXC в Proxmox-4
создаем файл /root/increase_parent_ulimit.sh
1 2 3 4 5 6 7 | #!/bin/bash if [ $# -eq 0 ]; then exit 1 fi /usr/bin/prlimit -p `ps -o ppid= $PPID` -n$1# |
Добавляем в конфиг контейнера (/etc/pve/lxs/XXX.conf):
lxc.hook.pre-start: /root/increase_parent_ulimit.sh 500000
Установить лимиты для контейнера LXC в Proxmox-5.1
В конфиге контейнера указываем
lxc.limit.kernel.nofile: 500000
Установить лимиты для контейнера LXC в Proxmox-5.2
В конфиге контейнера указываем
lxc.prlimit.nofile: 500000
После чего выставляем лимиты внутри контейнера как обычно через /etc/security/limits.conf
Enjoy!