Логотип   Простое и понятное управление
  Уникальные возможности по настройке
  Open Server скачали уже 1 018 576 раз!

Форум

Добро пожаловать, Гость!

Apache 2.2.23 / ulimit -n 1024 / warn-phpd mmap cache

Вопросы по работе с Apache, Nginx, PHP, MySQL, Sendmail и т.д.
ikenni
Сообщения: 4
C нами: 4 года 1 мес

Непрочитанное сообщение ikenni » 24 окт 2012, 20:53

Open server 4.7.0
Windows 7
Apache 2.2.23
php 5.2.17
MySQL 5.1.65

В логах после каждого запроса куча ошибок следующего содержания:
[warn-phpd] mmap cache can't open %filepath%
%filepath% - закешированные php-скрипты, автоматически создаваемые php фреймворком Nette.

Решение загуглилось быстро, да только под Unix-системы. Ищется решение под Windows 7 для начала... Цитирую инструкцию для linux:
В логах повсеместно появилась ошибка
[warn-phpd] mmap cache can`t open /var/www/user/ … …/index.php — Too many open files (Pid xxxx)
Решаем так:
смотрим сколько у нас лимит файлов: ulimit -a
Ищем строку:
open files (-n) 1024
меняем лимит:
ulimit -n 2048
Рестартим апач. Все работает.

Аватара пользователя
Максим
Сообщения: 4872
C нами: 5 лет 11 мес
Контакты:

Непрочитанное сообщение Максим » 25 окт 2012, 00:40

Не думаю что дело в PHP или Apache. Cкорее всего дело в Windows - по умолчанию там доступно максимум 16535 или около того открытых файлов. В интернете я нагуглил решение, попробуйте такие изменения в реестре (если параметра нет, то создать):

HKLM\System\CurrentControlSet\Control\Session Manager\Memory Management.
Параметр IoPageLockLimit (REG_DWORD) = 65536 (Decimal) /10000 (Hex)

HKLM\System\CurentControlSet\Servises\lanmanserver\parameters.
Параметр Size (Dword) = 3

HKLM\System\CurentControlSet\Control\Session Manager\Memory Menegment
Параметр LargeSystemCache (Dword) = 1

Потом перезагрузка компьютера.

ikenni
Сообщения: 4
C нами: 4 года 1 мес

Непрочитанное сообщение ikenni » 25 окт 2012, 01:05

Произвел все указанные изменения в реестре. Не помогло, почти. Теперь в логи сыпит

[warn-phpd] mmap cache can't open D:\os\domains\test.kz\tmp\cache\_Nette.Configurator\_-68f.php (pid 384 th 3540)


* Сократил путь к файлу и название закешированного файла лишь для удобночитаемости.

------------------------

Примечание:
Разработка ведется на Mac OS X. Там использую MAMP PRO. С ним проблем нету, неоптимизированный код отдается за =< 60мс. На Open Server его что-то тормозит, обработка от 300мс и до 2000мс...

Open Server использую из коробки, ini-файлы не изменены. И да, с самого начала грешу на Windows...

Аватара пользователя
Максим
Сообщения: 4872
C нами: 5 лет 11 мес
Контакты:

Непрочитанное сообщение Максим » 25 окт 2012, 01:52

ikenni писал(а):И да, с самого начала грешу на Windows...


А еще в интернете советуют переходить на Windows Server. Других вариантов решить проблему я к сожалению не нагуглил.

ikenni
Сообщения: 4
C нами: 4 года 1 мес

Непрочитанное сообщение ikenni » 25 окт 2012, 02:14

Ситуация такова, что использование отдельного компьютера затратно для клиента. Я продолжу поиски решения, если что-то откопаю - сразу же об этом сообщу )

Чуть позже, попробую запустить Nette Framework на Windows XP, Vista, 8, FreeBSD и Ubuntu...
Пробовал запустить сайт на denwer'е, ошибок вроде бы не сыпит (по крайней мере логи пустые), но также медленно работает, даже порой медленеее ))

Спасибо за поддержку )

vitidev
Сообщения: 1
C нами: 3 года 7 мес

Непрочитанное сообщение vitidev » 24 апр 2013, 13:39

Максим писал(а):Не думаю что дело в PHP или Apache. Cкорее всего дело в Windows


Похоже все таки дело в PHP, вернее в ее windows реализации.
У меня такая же ерунда с Nette. Отключение open_basedir мигом решило проблему скорости и мусора в логах. Включил обратно - снова стало тормозить, хотя такие вот строки больше в лог не попадают.


Вернуться в «Модули и инструменты»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость