Страница 1 из 1
PHP 5.4.6: error "дофега открытых файлов"..
Добавлено: 2012-11-04 12:55:18
dekloper
перестал отдаваться контент, в логах апача такой ерор:
Sun Nov 04 13:17:40 2012] [error] PHP Fatal error: require_once(): Failed opening required '/usr/local/www/чото_там.php' (include_path='.:/usr/local/share/pear') in /usr/local/www/чото_там.php on line 12
[Sun Nov 04 13:24:40 2012] [crit] [client 192.168.121.4] (23)Too many open files in system: /.htaccess pcfg_openfile: unable to check htaccess file, ensure it is readable
Код: Выделить всё
root@ws53:/root # php -v
PHP 5.4.6 (cli) (built: Aug 24 2012 15:55:10)
Copyright (c) 1997-2012 The PHP Group
Zend Engine v2.4.0, Copyright (c) 1998-2012 Zend Technologies
как можно потюнить пшп иль апач?
Re: PHP 5.4.6: error "дофега открытых файлов"..
Добавлено: 2012-11-04 13:25:55
FreeBSP
Код: Выделить всё
> sysctl -a | grep fil
kern.maxfiles: 7816
kern.bootfile: /boot/kernel/kernel
kern.maxfilesperproc: 7034
kern.openfiles: 241
kern.corefile: %N.core
...
> sysctl -d kern.maxfiles kern.maxfilesperproc kern.openfiles
kern.maxfiles: Maximum number of files
kern.maxfilesperproc: Maximum files allowed open per process
kern.openfiles: System-wide number of open files
не?
Re: PHP 5.4.6: error "дофега открытых файлов"..
Добавлено: 2012-11-04 14:40:41
dekloper
а какие цифры лучше туда воткнуть?
уменя так
Код: Выделить всё
root@ws53:/root # sysctl -a | grep fil
kern.maxfiles: 12328
kern.bootfile: /boot/kernel/kernel
kern.maxfilesperproc: 11095
kern.openfiles: 514
были подозрения на заббикс (он у меня на том же хосте вертелся)
када я ево притушил, ошибок какоето время не наблюдалось
а вот шас опять.. и без заббикса таже фигня..
Re: PHP 5.4.6: error "дофега открытых файлов"..
Добавлено: 2012-11-04 15:28:44
FreeBSP
php как mpm работает? по идее можно попробовать уменьшить время жизни воркеров, они будут умирать и освобождать файлы
в портах есть утилитка lsof
ну и для диагностики воткни в крон скрипт типа
Код: Выделить всё
echo -n `date` >> logfile;
echo -n `sysctl kern.openfiles` >> logfile;
echo `lsof -p <httpd> >> logfile`
и посмотри что будет в логе перед падением
еще в портах есть утилитка lsof
потом, можно поправить sysctl - прмерно maxfiles где нить до 32к, maxfilesperproc=30к
Re: PHP 5.4.6: error "дофега открытых файлов"..
Добавлено: 2012-11-05 16:35:36
Alex Keda
ну это точно не php виноват.
поищщите по форуму - была похожая тема - я создавал там и решение было...
года три назад.
чё-то из этой оперы:
Код: Выделить всё
--- /tmp/select.h.orig 2010-05-13 16:37:45.000000000 +0400
+++ /usr/src/sys/sys/select.h 2010-05-13 16:38:03.000000000 +0400
@@ -56,7 +56,7 @@
* be enough for most uses.
*/
#ifndef FD_SETSIZE
-#define FD_SETSIZE 1024U
+#define FD_SETSIZE 32768U
#endif
#define _NFDBITS (sizeof(__fd_mask) * 8) /* bits per mask */
в 9.1 или даже 9.0 это уже поправили, там какое-то адекватное число по дефолту стало...