- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу

В 2023 году Одноклассники пресекли более 9 млн подозрительных входов в учетные записи
И выявили более 7 млн подозрительных пользователей
Оксана Мамчуева

Что делать, если ваша email-рассылка попала в спам
10 распространенных причин и решений
Екатерина Ткаченко
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Есть сервер под линуксом. Фронтэндом стоит nginx, раздает статику. Динамику раздает апач 1.3.41 + php 5.2.8
Сайт довольно нагруженный, но ресурсов пока хватает.
Памяти 4G, в настройках php memory_limit установлено 32M
C недавних пор стали валиться ошибки:
1. PHP Fatal error: Out of memory (allocated 1835008) (tried to allocate 77824 bytes) in xxx.php on line 3187
2. PHP Fatal error: out of dynamic memory in yy_create_buffer() in Unknown on line 0
1-я выдается в абсолютно произвольных местах на разных исходниках. Правда все исходники указывают только на движок форума (phpbb 3.0).
Ошибки никак не связаны с пиками нагрузки и появляются даже в абсолютный минимум ее.
После каких действий появились ошибки - я не заметил. Единственное, на сайте стоит cpanel, которая периодически обновляется. Но апач и пхп она сама не обновляет.
memory_limit пробовал увеличивать до 64M, но результат не меняется. В инете ничего конкретного на этот случай не нашел :(
Подскажите плз, в какую сторону копать для решения проблемы?
Maxxi, Выложите результат команды TOP или Atop
Есть сервер под линуксом. Фронтэндом стоит nginx, раздает статику. Динамику раздает апач 1.3.41 + php 5.2.8
Сайт довольно нагруженный, но ресурсов пока хватает.
Памяти 4G, в настройках php memory_limit установлено 32M
C недавних пор стали валиться ошибки:
1. PHP Fatal error: Out of memory (allocated 1835008) (tried to allocate 77824 bytes) in xxx.php on line 3187
2. PHP Fatal error: out of dynamic memory in yy_create_buffer() in Unknown on line 0
1-я выдается в абсолютно произвольных местах на разных исходниках. Правда все исходники указывают только на движок форума (phpbb 3.0).
Ошибки никак не связаны с пиками нагрузки и появляются даже в абсолютный минимум ее.
После каких действий появились ошибки - я не заметил. Единственное, на сайте стоит cpanel, которая периодически обновляется. Но апач и пхп она сама не обновляет.
memory_limit пробовал увеличивать до 64M, но результат не меняется. В инете ничего конкретного на этот случай не нашел :(
Подскажите плз, в какую сторону копать для решения проблемы?
php как модуль или как cgi?
копайте в сторону ulimit/rlimit.
Первая ошибка - точно превышение memory_limit. возможно, вы на самом деле не смогли увеличить эту настройку php.
Первая ошибка - точно превышение memory_limit. возможно, вы на самом деле не смогли увеличить эту настройку php.
Fatal error: Allowed memory size of x bytes exhausted (tried to allocate n) - при превышении memory limit.
Fatal error: Out of memory (allocated x) (tried to allocate n bytes) - при неудачном malloc (или что он там делает).
Maxxi, Выложите результат команды TOP или Atop
Результат могу выложить чуть позже, но там ничего криминального нет. Сверху ~5 процессов апача, ниже nginx. Проц загружен до 40%.
Maxxi добавил 26.03.2009 в 16:01
Первая ошибка - точно превышение memory_limit. возможно, вы на самом деле не смогли увеличить эту настройку php.
phpinfo показывает то значение, которое я ставлю в конфиге.
Если бы это было превышением memory_limit, то значение allocated + tried to allocate должно было превышать установленное, но оно далеко не дотягивает.
php установлен как модуль.
Вроде, поборол я свою беду..
Если кому интересно, поделюсь.
Сначала оказалось, что база mysql (innodb) уже не влезала в память. Увеличил под нее место. Лог ошибок значительно уменьшился, но все равно иногда выскакивали.
Затем уменьшил MaxRequestsPerChild с 10000 до 1000 (в десять раз) - ошибки исчезли.
А вот как выглядят диаграммы выделения памяти при MaxRequestsPerChild 10000 и 1000 соответственно:
Я так понимаю, что при больших MaxRequestsPerChild память потихоньку утекает. При 0 она вообще постепенно вся съедается. Но вопрос - куда?? Неосвобождение в php скриптах? так ведь php сам после завершения скрипта все должен освобождать. Какие еще варианты?
Утечкой памяти называют совсем другое поведение. Здесь просто потомки apache потребляют память, но не отдают отбратно операционной системе при каждом запросе. Чем потомок больше работает - тем больше шансов на разрастание.
Обычно это правильная стратегия, ведь каждому следущему запросу вероятно потребуется столько же памяти сколько и предыдущему.
Регулируйте, раз нашли как :) MaxClients тоже неплохо бы подобрать не очень большое.
Утечкой памяти называют совсем другое поведение. Здесь просто потомки apache потребляют память, но не отдают отбратно операционной системе при каждом запросе. Чем потомок больше работает - тем больше шансов на разрастание.
Обычно это правильная стратегия, ведь каждому следущему запросу вероятно потребуется столько же памяти сколько и предыдущему.
Т.е. если потомок вырос скажем до 500 мб, то это означает, что на обработку какого-то из запросов потребовалось столько памяти?
Maxxi, именно так. если конечно нет утечки, но это уже форс-мажор.
Кое-какой выход я тут предложил /ru/forum/comment/4565475.