Есть ли исправление для ошибки «Слишком много открытых файлов в системе» на OS X 10.7.1?

Мне нужно избавиться от надоедливого «Слишком много открытых файлов в системе» на OS X 10.7.1.

Есть ли способ?

7 Solutions collect form web for “Есть ли исправление для ошибки «Слишком много открытых файлов в системе» на OS X 10.7.1?”

Согласно этой полезной статье (которую я рекомендую прочитать):

По умолчанию максимальное количество файлов, которые может открыть Mac OS X, составляет 12 288, и максимальное количество файлов, которые может открыть данный процесс, составляет 10 240.

Вы можете проверить их следующим образом:

  • sysctl kern.maxfiles
  • sysctl kern.maxfilesperproc

Вы можете увеличить лимиты (на свой страх и риск):

  • sysctl -w kern.maxfiles=20480 (или любой другой номер, который вы выберете)
  • sysctl -w kern.maxfilesperproc=18000 (или любой другой номер, который вы выберете)

Чтобы сделать изменение постоянным, используйте sudo чтобы поместить свои настройки в /etc/sysctl.conf (который, возможно, вам придется создать), например:

 kern.maxfiles=20480 kern.maxfilesperproc=18000 

(Примечание: параметр в /etc/launchd.conf такой как limit maxfiles , переопределит все, что вы limit maxfiles здесь.)

Опять же, из статьи:

Как только вы это сделаете, у самого ядра будет максимальное количество файлов, но оболочка может не работать. И поскольку большинство процессов, которые будут обрабатывать эти много файлов, будут инициироваться оболочкой, которую вы собираетесь увеличить.

Команда для этого:

 ulimit -S -n 2048 # or whatever number you choose 

Это изменение также является временным; Он длится только для текущего сеанса оболочки. Вы можете добавить его в свой файл конфигурации оболочки ( .bashrc , .zshrc или что-то еще), если вы хотите, чтобы он запускался каждый раз, когда вы открываете оболочку.

Похоже, что существует совершенно другой способ изменения предела открытых файлов для каждой версии OS X!

Для OS X Sierra (10.12.X) вам необходимо:

1. Создайте файл в /Library/LaunchDaemons/limit.maxfiles.plist и вставьте следующее (не стесняйтесь изменять два числа (которые являются мягкими и жесткими пределами соответственно):

 <?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>64000</string> <string>524288</string> </array> <key>RunAtLoad</key> <true/> <key>ServiceIPC</key> <false/> </dict> </plist> 

2. Измените владельца нового файла:

 sudo chown root:wheel /Library/LaunchDaemons/limit.maxfiles.plist 

3. Загрузите эти новые настройки:

 sudo launchctl load -w /Library/LaunchDaemons/limit.maxfiles.plist 

4. Наконец, проверьте правильность лимитов:

 launchctl limit maxfiles 

Вам нужно будет увеличить свои настройки ulimit – на данный момент в OS X довольно мало – 256 по умолчанию. Добавьте ulimit -n 4096 или аналогично вашему ~ / .profile или эквивалентному, и это решит его в вашей локальной среде. Запустите ulimit -a чтобы проверить текущие уровни

Чтобы увидеть системные настройки, запустите это:

 launchctl limit maxfiles 

Он установлен немного выше в Lion (10240) на основе каждого процесса, чем раньше. Но если вы все еще нажимаете на него, вы можете установить его выше, используя ту же команду с желаемыми уровнями. Чтобы изменения были постоянными /etc/launchd.conf, вам нужно добавить соответствующие строки.

Люди, на Mavericks 10.9.4

ulimit -n 2048 отлично работает. Возможно, вам придется запустить новый сеанс входа в систему.

Другой вариант может найти виновника:

 sudo lsof -n | cut -f1 -d' ' | uniq -c | sort | tail 

Для последнего вы могли видеть, какие файлы открыты:

 sudo lsof -n | grep socketfil 

И убить процесс, если это необходимо

 kill $pid 

Я столкнулся с этим, выполняя chmod -R, поэтому я получил его, выполнив меньшие шаги, например

 # for each directory find . -type d -exec chmod 755 {} \; 

Вы можете запустить

 lsof -n 

Который обрабатывает слишком много файлов.

Затем убейте его.

или

 sysctl -w kern.maxfiles=20480 

Измените его на более крупный.

  • Mac OS DVD Burning Software
  • Как вы переустанавливаете пакет с помощью Homebrew (Mac)?
  • Spotlight и команда locate не ищут * все * папки
  • Как получить Mac OS X Terminal.app и прокрутку экрана / vim, чтобы играть хорошо?
  • OS X: невозможно создать раздел, потому что диск заблокирован
  • Что делает Subversion для своего списка CA?
  • Mac mini (2010) не может загружаться
  • Легкий способ индексирования STDOUT (форматировать текст в столбцах)?
  • Google переводит клиент для OS X
  • Восстановление файлов Mac OS X
  • Rsync через SSH с cron в osx-environment
  • SSH не будет работать в новой версии OS X 10.8.4
  • Interesting Posts

    Как включить Bluetooth на Mac с помощью ярлыка или командной строки?

    Переустановка Windows 8 из Dreamspark

    В чем причина высокого использования ЦП «системы и сжатой памяти» в Windows 10?

    Как виртуализация отличается от эмуляции, с точки зрения структуры?

    В XP, как мне переименовать каталог файлов с помощью регулярного выражения или аналогичный, чтобы удалить часть имени файла и добавить префикс?

    Использование приложений на устройствах, отличных от iOS?

    Измените том, на котором находится файл страницы Windows.

    Получить ключ продукта xp от загрузки

    Почему Mac OS X настаивает на изменении моего MTU до 1500?

    Как получить имя дня в ячейке в Excel?

    Сценарий для поиска определенных слов и удаления этих строк в файле

    Multi Boot USB Stick

    Может ли планировщик задач Windows 7 запустить список воспроизведения в проигрывателе Windows Media 11?

    Windows 7 поставляется с чем-то вроде Virtual PC?

    Как разбить большой файл flac int и заполнить тег id3?

    Давайте будем гением компьютера.