Я подозреваю, что основная причина ограничения заключается в том, чтобы избежать чрезмерного потребления памяти (каждый дескриптор открытого файла использует память ядра). Он также служит защитой от ошибок приложений, утекающих файловые дескрипторы и потребляющих системные ресурсы.
Но учитывая, насколько абсурдно много оперативной памяти современные системы по сравнению с системами 10 лет назад, я думаю, что сегодня значения по умолчанию довольно низкие.
В 2011 году жесткое ограничение по умолчанию для файловых дескрипторов в Linux было и увеличено с 1024 до 4096 .
Некоторое программное обеспечение (например, MongoDB) использует намного больше файловых дескрипторов, чем установлено по умолчанию. Специалисты MongoDB рекомендуют увеличить этот предел до 64 000 . Я использовал rlimit_nofile
из 300 000 для некоторых приложений.
Пока вы сохраняете мягкий предел по умолчанию (1024), вероятно, довольно безопасно увеличить жесткое ограничение. Программы должны вызывать setrlimit ()
, чтобы поднять свой предел выше мягкого, но все еще ограничены жестким пределом.
См. Также некоторые связанные вопросы:
Я не нашел способа заставить расширение искать общие библиотеки в / usr / local / lib
, но я нашел найдите способ заставить libgeos установить их в / usr / lib
, где их ищет расширение.
Просто используйте - префикс
при сборке libgeos:
./configure --prefix=/usr
В более новой версии привязки PHP теперь является самостоятельным проектом, поэтому ldconfig
необходимо запустить после сборки libgeos
и php-geos
, чтобы модуль PHP загружал динамические библиотеки из libgeos
правильно.