Бенчмаркинг PHP APC и Memcache

Есть ли какой-нибудь простой тест, который я могу попробовать для сравнения APC и Memcache, просто чтобы понять преимущества их использования в производительности?

Я пробовал некоторые простые вещи, используя microtime() и зацикливая запросы к моей базе данных и сохраняя результаты сначала в кеше, а затем без него, но я не заметил значительного повышения производительности.

Спасибо.


person BannerMan    schedule 23.07.2010    source источник


Ответы (1)


Реальную выгоду не так-то просто проверить. Проблема в том, что они помогают, это параллелизм, а не только время выполнения страницы... И это нетривиальная вещь для тестирования.

Одним из вариантов может быть использование ab (Apache Bench) для отправки повторяющихся HTTP-запросов на одну и ту же страницу и измерения разницы в скорости запросов и нагрузке...

ab -c 20 -n 1000 http://www.example.com/index.php

-c 20 говорит использовать 20 одновременных клиентов (имитация 20 одновременных пользователей). -n 1000 говорит сделать в общей сложности 1000 запросов. Затем просмотрите поля «Время на запрос» и «Запросов в секунду». Поэкспериментируйте с различными настройками APC/Memcache (даже отключив их), чтобы посмотреть, как меняются эти цифры...

person ircmaxell    schedule 23.07.2010
comment
Большое спасибо. Когда я отключаю APC и Memcache и запускаю команду, я получаю следующее: apr_socket_recv: Существующее соединение было принудительно закрыто. Но когда APC и Memcache активны, я не получаю ошибку. Вы знаете, что может быть причиной этого? Я использую Windows и XAMPP (PHP 5.3.1) - person BannerMan; 23.07.2010
comment
Проверьте журналы ошибок PHP и Apache. Скорее всего, что-то либо segfault, либо php умер по каким-то другим причинам... - person ircmaxell; 23.07.2010