Хорошо, ребята,
У нас есть Apache 2.2.11, работающий с mod_php 5.2.9-2 на компьютере под управлением Windows Server 2003 (Small Business Edition), и каждый запрос выскакивает примерно от 4 до 8 МБ ОЗУ, а затем освобождается примерно от 2 до 6 МБ. , По сути, количество выпусков Apache всегда заметно меньше (в мегабайтах), чем количество, которое он выделяет во время запроса, и через несколько часов процесс httpd.exe завершает потребление всей доступной оперативной памяти, и сервер зависает.
Такое поведение не происходит вообще на наших блоках разработки под Windows XP с той же кодовой базой и следующими конфигами:
- XP / Apache 2.2.11 / PHP5.2.9-2 / MySQL 5.1.34
- XP / Apache 2.0.x (разные) /PHP5.2.7/MySQL 5.0.67
Простые PHP-скрипты на производственном сервере (Win2k3) не имеют утечки, например:
- Основные функции PHP эхо
- Создание и ссылки на классы
- Буферизация вывода
- PDO с постоянными подключениями и без них
Однако при запуске нашего полного приложения все начинает протекать. Единственное, о чем мы можем думать, это может вызвать использование объектов, деталей сеанса, глобальных переменных - но как я могу узнать, что такое утечка? И что это вызывает? Не нарушая слишком много единственной машины, которую мы можем продублировать на ??