imho.ws |
![]() |
![]() |
![]() |
# 1 |
::VIP::
Регистрация: 03.11.2004
Адрес: Москва, Россия
Пол: Male
Сообщения: 982
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Нестабильная работа php
Привет всем!
Меня попросили разобраться с проблемами выполнения сложного php скрипта, который генерит структуру сайта. На одном сайте используются несколько скриптов на PHP, которые выполняют большую работу, как-то: рассылка, генерация структуры разделов итд… Симптомы нестабильной работы разные, или скрипт говорит про ошибки с памятью, или вылетает по тайм-ауту, в общем, по-всякому бывает. Скрипты "рабочие", написаны профессионалами (из РБК), и весьма навороченные (достаточно сложные для понимания). Под небольшой нагрузкой сервера работают нормально. Скажем, с утра скрипт работает, а к обеду - нет. Технические параметры на сервере : Linux 2.4.20 Apache 2.0 PHP 4.3.2 memory_limit 8M max_execution_time 30 max_input_time 60 Сайт хостится на РБК (это достаточно дорогой хостинг), где еще находится, наверное, около сотни сайтов. Скрипт, который вызывает самую большую головную боль, выполняется примерно раз в день, он занимается генерацией другого php скрипта (который и выводит сайт). Так вот, примерно 9 попыток из 10 запустить этот скрипт заканчивается неудачей (вылетом с сообщением об ошибке). Какие можно дать советы по устранению этой проблемы? Проблемные куски нестабильного php кода у меня на руках... Последний раз редактировалось Oleg; 21.11.2005 в 16:19. |
![]() |
![]() |
# 2 | |
МОД-Оператор ЭВМ
Регистрация: 18.04.2002
Адрес: Питер
Сообщения: 4 343
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Цитата:
|
|
![]() |
![]() |
# 3 |
Full Member
Регистрация: 29.05.2002
Сообщения: 544
![]() ![]() ![]() ![]() ![]() |
1. Почему нельзя изменить максимальный лимит по времени в конкретном скрипте? Например, на мастерхосте это можно сделать функцией set_time_limit, для скриптов, запускаемых из-под cron-а(как cgi) это работает. У меня там несолько парсеров висят, которые могут выполняться минут 20-30...Правда php(5.1 dev) я собирал сам(cgi).
С перлом аналогично(синхронизатор бд у нас работает достаточно долго). 2. Ограничение по-памяти — это логично, и тут нужно как-то выкручиваться, либо «бить» скрипт на стадии, либо вообще переписывать его на c. Ну и код в студию.
__________________
убрано по просьбе администратора ![]() |
![]() |
![]() |
# 4 |
::VIP::
Регистрация: 03.11.2004
Адрес: Москва, Россия
Пол: Male
Сообщения: 982
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Код по соображениям безопасности опубликовать не могу, но ...
Проблема решилась! Добавили две строчки в начало скрипта, и все работает! Код:
ini_set ("max_execution_time", "60"); ini_set ("memory_limit", "32M"); |
![]() |