Обмеження сеансу оболонки
Обмеження, встановлені через, ulimit
впливають лише на процеси, створені поточним сеансом оболонки.
- "М'яка межа" - це фактична межа, яка використовується. Його можна встановити, наскільки це не більше "жорсткої межі".
- "Жорстка межа" також може бути встановлена, але лише до значення, меншого від поточного, і лише до значення, не меншого за "м'який межа".
- "Жорсткий ліміт", а також загальносистемні обмеження можуть бути підвищені
root
(адміністратором) шляхом виконання команд конфігурації системи або зміни файлів конфігурації системи.
Після припинення сеансу оболонки (на Ctrl+ D, exit
або закриття Terminal.app
вікна тощо) налаштування не зникають. Якщо ви хочете те ж саме налаштування в наступному сеансі оболонки, додайте його до сценарію запуску оболонки.
ПРИМІТКА. Якщо ви користуєтесь bash
, то це має бути ~/.bash_proile
або ~/.bash_login
. Якщо ви використовуєте інші оболонки, мабуть, так і має бути ~/.profile
.
Обмеження системи (вимагає перезавантаження, щоб набути чинності)
Для 10,9 (Mavericks), 10,10 (Yosemite), 10,11 (El Capitan) та 10,12 (Сьєрра):
Ви повинні створити файл за адресою /Library/LaunchDaemons/limit.maxfiles.plist
(власник:, root:wheel
режим:) 0644
:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN"
"http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>limit.maxfiles</string>
<key>ProgramArguments</key>
<array>
<string>launchctl</string>
<string>limit</string>
<string>maxfiles</string>
<string>262144</string>
<string>524288</string>
</array>
<key>RunAtLoad</key>
<true/>
<key>ServiceIPC</key>
<false/>
</dict>
</plist>
Ви повинні змінити цифри відповідно до своїх потреб. Вони є "м'якою межею" ( 262144
) і "жорсткою межею" ( 524288
) відповідно. Для отримання додаткових відомостей зверніться до сторінки керівництва, запустивши man launchd.plist
.
Для 10,8 (гірський лев):
Ви можете додати такі рядки до /etc/sysctl.conf
(власник:, root:wheel
режим:) 0644
:
kern.maxfiles=524288
kern.maxfilesperproc=262144
Ви повинні змінити цифри відповідно до своїх потреб. Вони є "загальносистемним лімітом" ( kern.maxfiles
) та "лімітом на кожен процес" ( kern.maxfilesperproc
) відповідно. Для отримання додаткових налаштувань зверніться до сторінки керівництва, запустивши man sysctl
чи прочитайте вихідний код за адресою /usr/include/sys/sysctl.h
.
Для старих Mac OS X (я думаю, він працює на 10.7 (Lion) або раніше):
Ви можете додати такий рядок до /etc/launchd.conf
(власник:, root:wheel
режим:) 0644
:
limit maxfiles 262144 524288
Ви повинні змінити цифри відповідно до своїх потреб. Вони є "м'якою межею" ( 262144
) і "жорсткою межею" ( 524288
) відповідно.
Якщо система не дозволяє встановити обмеження вище певного значення ...
Система не дозволяє встановити значення, що перевищує "жорсткий максимум" (запропонований Apple). Щоб збільшити цей "жорсткий максимум", вам потрібно придбати "OS X Server" у "App Store", після чого вам потрібно виконати таку команду один раз:
sudo serverinfo --setperfmode true
Це активує "режим роботи сервера" на вашій машині. Потім ви можете встановити максимум відповідно до конфігурації вашої машини (див. Це) . Я спробував це раніше (на Mountain and Mavericks), і це працює! Будь ласка, дивіться мою публікацію ( тут ) для отримання додаткової інформації.
Список літератури