Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум Apache

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: 2 GB ОЗУ и Parent: child process exited with status 3221225477 -- Restarting.
 
 автор: deberin   (14.06.2010 в 10:27)   письмо автору
 
 

Доброго времени суток.
Проблема над которой бьюсь уже 2 недели.
Есть зацикленный php скрипт который выполняет некоторые действия, за сутки сей скрипт съедает 2ГБ ОЗУ и Apache перезапускает процесс с логом в error.log "Parent: child process exited with status 3221225477 -- Restarting."
Собственно сам вопрос почему 2ГБ?
Win2003(x64) , ОЗУ 4ГБ
# Apache 2.0.63
# PHP 5.2.6
# MySQL 5.0.51b

  Ответить  
 
 автор: Trianon   (14.06.2010 в 11:18)   письмо автору
 
   для: deberin   (14.06.2010 в 10:27)
 

потому что процесс потребляет виртуальную память, а не физическую.
А у диспетчера памяти имеются свои ограничения

  Ответить  
 
 автор: deberin   (14.06.2010 в 11:20)   письмо автору
 
   для: Trianon   (14.06.2010 в 11:18)
 

кто виноват, что делать?

  Ответить  
 
 автор: Trianon   (14.06.2010 в 11:21)   письмо автору
 
   для: deberin   (14.06.2010 в 11:20)
 

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

А когда процессу 4GB хватать перестанет, что Вы делать надумаете?

  Ответить  
 
 автор: deberin   (14.06.2010 в 11:33)   письмо автору
 
   для: Trianon   (14.06.2010 в 11:21)
 

С утечкой памяти согласен, но всё таки, под виртуальную памяти выделено 6GB, чё ж Apachу не нравится?

  Ответить  
 
 автор: Trianon   (14.06.2010 в 13:09)   письмо автору
 
   для: deberin   (14.06.2010 в 11:33)
 

Не надо путать файл подкачки (некорректно называемый в виндовс виртуальной памятью) и виртуальное адресное пространство.

под виртуальное адресное пространство выделить больше 4GB в 32-разрядных системах невозможно в принципе.
Да и оно само уменьшается на окна, занимаемые системными нуждами.

Если на пальцах :
Да.
Есть 4Gb адресов,через которые можно/нужно есть память (и не только память, если быть честным). Это виртуальное адресное пространство.

Есть пул в 8Gb памяти (до 4G ОЗУ... + существенно больше с учетом файла подкачки. )
Только этот общий пул есть не у Вас, не у php и не у апача.
Он у системы.
У той же системы есть дохрена процессов (включая и свои собственные) которые этим пулом можно и нужно кормить.
И никому из процессов не обещано, что ему дадут съесть более половины теоретически адресуемого пространства.

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования