2012-04-25 7 views
1

Мы тестируем нагрузку на приложение PHP (Kohana). Одна забавная вещь, которую мы заметили, состоит в том, что каждый запрос, кажется, каждый раз создает 4 процесса и увеличивает нагрузку на ранг в 4 раза. И когда есть, например, 500 пользователей в секунду, попадающих в него, действуют как 500 * 4.4 процесса, созданные для каждого запроса?

Я действительно не понимаю, что могло бы создать все эти процессы. Я понимаю, что каждый запрос PHP создает один поток, он не должен создавать процессы, особенно не 4. Может ли быть проблемой Apache? Или проблема с PHP?

Об этом Google не нашлось. Любое предложение о том, что может вызвать эту проблему, будет оценено по достоинству.

+2

У вас есть вызов Ajax? Тогда это может быть браузер, который будет делать 4 запроса одновременно. Вы можете посмотреть http://stackoverflow.com/questions/985431/max-parallel-http-connections-in-a-browser –

ответ

0

Мое первое предположение: вы просто видите эффект настройки Apache MinSpareServers. Вместо того, чтобы развернуть процесс, когда приходит запрос, у Apache будет один готовый и ожидающий. Поэтому, если для этого параметра установлено значение 4, Apache всегда будет пытаться активировать активные процессы + 4.

Это также может быть параметр ThreadsPerChild, в зависимости от того, как вы настроили Apache. В этом случае каждый ребенок всегда закручивает число потоков, указанных так, чтобы они были готовы.

Многие процессы или потоки не обязательно являются проблемой. Они могут ничего не делать, кроме как ждать обработки входящего трафика.

Смежные вопросы