Сначала я хочу сказать, что я использую Drupal в качестве CMS, и я знаю, что есть отдельный сайт для обмена стеками Drupal. Но моя проблема не связана с Drupal, она не на уровне пользователя или опытного пользователя. Это связано с PHP и сервером. ОК, теперь проблема.
Я разработал сайт, который еще не запущен. Выбираюсь из памяти ошибок случайных времен. И иногда сервер выходит из строя. Помогает перезагрузка. Там нет других людей, использующих приложение, так что нет большой нагрузки. В частности, я превышаю установленный лимит. Я пробовал некоторые общие вещи - увеличение / уменьшение предела памяти PHP, просмотр журналов ошибок, ведение журнала медленных запросов MySQL. Ничего ... То же самое.
Я выполнил команду 'top' linux. Существует 4-5 процессов Apache в зависимости от запросов браузера. Какой MEM использование (%) составляет 10, 5, 4, 3, 0,5. два процесса работают> 10 часов.
После перезапуска apache я получил + 40% свободной памяти.
Вот несколько вопросов и загадок для меня.
- Почему эти два процесса выполняются так долго, когда нет активного запроса от браузера? И как я могу их предотвратить?
- Почему я получил + 40% свободной памяти после перезапуска, когда у меня было 10 + 5 + 4 + 3 + 0,5 памяти, используемой apache? Это не должно быть равным?
- Может ли это быть утечка памяти? Как я могу их обнаружить?
- Какие приемы мне следует использовать для перехода с более высоких уровней на низкие? Представьте, что у меня есть «утечка памяти» в одной из моих функций, как мне получить его во всем приложении?
- Как я могу сравнить свои функции для использования памяти и процессора?
- Почему происходит сбой сервера? Даже при простом перезапуске httpd возвращается «fork: Cannot to memory». Может ли это быть признаком утечки памяти?
Пожалуйста, ответьте по пунктам.