Страницы

Поиск по вопросам

Показаны сообщения с ярлыком limits. Показать все сообщения
Показаны сообщения с ярлыком limits. Показать все сообщения

воскресенье, 12 января 2020 г.

Ограничить пользователей ресурсами

#highload #производительность #limits #linux


Есть linux, пользователи пользуются ресурсами данной машины. Но делают это, не понимая,
что сервер один на всех )) и грузят его максимально тем самым мешая друг другу.Дано:
Виртуалка CentOS6.3 x64, 4GB RAMВот имею примерно такой вывод atop по самым пожирателям.NPROCS
  SYSCPU    USRCPU   VSIZE    RSIZE   RDDSK    WRDSK  RNET   SNET   CPU  RUID 1/155
   0.05s     1.88s   14.6G   877.6M      0K       0K     ?      ?   39%   user156 
  0.06s     0.45s   12.8G   603.1M      0K      32K     ?      ?   19%   user257  
 0.01s     0.04s   12.0G   594.8M      0K      24K     ?      ?   11%   user3 3   
0.00s     0.00s  401.9M    6632K      0K       0K     ?      ?    0%   user4Хочу в
/etc/sucurity/limits.conf зарезать немного их аппетиты, но пока выходит не очень.хочу
кол-во процессов на юзера сделать soft/hard - 50/65, уменьшить значение VSIZE (virtual
memory?), RSIZE (real memory?), и чтобы не жрали USRCPU (значение задается в минутах,
т.е. как я понимаю сейчас значение 1.88s = это 1 минута 88сек??? а почему не 2.28s
в любом случае процессор надо лимитировать)Все пользователи входят в группу @domainusers,
при попытке дать лимиты этой группе понял что это неверно т.к. все лимиты делятся пропорционально
на зашедших в систему юзеров и в итоге хватает ресурсов только на одного.. ))Остается
только пологинно перечислять всех в limits.confuser1  soft         nproc   50user1
 hard         nproc   65user1  soft         cpu     1user1  hard         cpu     2user1
 soft         as   1500000user1  hard         as   2000000user1  soft         rss 
400000user1  hard         rss  500000....user2 ....p.s. "as" как говорит (гугл) это
и есть виртуальная памятьВсе ли я верно делаю?P.S. эксперименты с limits.conf не внушают
мне надежды. Когда лимиты подходят к своему пределу система становиться нестабильна
и доходит до выпадания в корку. К примеру тупо не хватает свободных процессов, чтобы
открыть вкладку и, к примеру, браузер рушиться в этот момент какая-нибудь дебаг-тулуза
хочет отправить отчет и тоже валится и все крайне нестабильно начинает существовать.P.P.S.
Начал разбирать тему с cgroups/cgrules - этот механизм вроде более жизнеспособен.    


Ответы

Ответ 1



Вариант: PAM и его limits.conf

Ответ 2



cgroup самый правильный и скорее всего единственный инструмент в linux-e для этого

четверг, 20 июня 2019 г.

Лимит открытых файлов Apache

Обновился на Centos 7 и на домашнем сервере вылезла проблема. На сервере установлен virtualmin. Веб сервер работает на голом апаче без nginx, но с php-fpm, при помощи которого я переключаю версии php. Это мне нужно для работы.
Через какое-то время апач падает с вот такой ошибкой:
mod_fcgid: stderr: PHP Warning: Unknown: failed to open stream: Too many open files in Unknown on line 0
Погуглил, нашел как увеличить разрешение на количество файлов, применил.
# su printforms sh-4.2$ ulimit -n 400000
Но падения не прекратились. Создал на этом виртуалхосте файл php со следующим содержимым:
Получаю в ответ 1024
Как сделать так, чтобы апач принял системные значения? Или как прописать эти лимиты в апаче? Желательно глобально. А то я постоянно новые площадки создаю или убираю.


Ответ

Создайте файл /etc/systemd/system/httpd.service.d/10-limits.conf с содержимым:
[Service] LimitNOFILE=10240
Далее примените изменения:
systemctl daemon-reload systemctl restart httpd
Действующие лимиты:
cat /proc//limits