Я тестировал phpredis по соображениям производительности и стабильности. Производительность отличная, однако после непрерывного тестирования я вижу повторяющуюся ошибку трассировки стека - запуск одного и того же скрипта через «ab».Redis PhpRedis Stack Trace
Узор выполняется этот тест 3 до 4 раз
Ab -n 10000 -с 10 -k "HTTP: // локальный: 84/index.php rw_app_id = 1 & код = тест & device_id = тест"
(Если я запускаю запрос от браузера я не могу показаться, чтобы получить ошибка появляется, хотя это может потому, что я не могу загрузить процессы вверх.)
обычно в течение 3-го или 4-й итерации журнала ошибок Apache сообщает следующее:
Журнал ошибок Apache:
[предупреждение] [клиент 127.0.0.1] mod_fcgid: stderr: PHP Неустранимая ошибка: исключить исключение «RedisException» с сообщением «Сервер Redis удален» в/var/www/web1/web/index .php: 108
[предупредит] [клиент 127.0.0.1] mod_fcgid: STDERR: Stack след: [ср 18 апреля 16:39:49 2012] [предупредит] [клиент 127.0.0.1] mod_fcgid: STDERR: # 0 /var/www/web1/web/index.php(108): Redis-> hGet ('rw_promo_code: 1 ...', 'unlock_code')
[warn] [клиент 127.0.0.1] mod_fcgid: stderr: # 1 /var/www/web1/web/index.php(172): RedeemAPI-> redeem()
[предупредить] [клиент 127.0.0.1] mod_fcgid: STDERR: # 2 {главная}
[предупредить] [клиент 127.0.0.1] mod_fcgid: STDERR: Следующее исключение 'RedisException' с сообщением 'сервер Redis ушел' в /var/www/web1/web/index.php:0
[предупредит] [клиент 127.0.0.1] mod_fcgid: STDERR: Стек след:
[предупредит] [клиент 127.0.0.1] mod_fcgid: STDERR: # 0 /var/www/web1/web/index.php(172): Redis -> __ разрушится()
[предупредит] [клиент 127.0.0.1] mod_fcgid: STDERR: # 1/Var/WWW/web1/мы б/index.php (172): RedeemAPI-> искупить()
[предупредит] [клиент 127.0.0.1] mod_fcgid: STDERR: # 2 {} Основной
[предупредит] [клиент 127.0.0.1] mod_fcgid: stderr: thrown in /var/www/web1/web/index.php on line 0
[warn] [клиент 127.0.0.1] mod_fcgid: stderr: PHP Неустранимая ошибка: исключить исключение «RedisException» с сообщением ' сервер Redis ушел»в /var/www/web1/web/index.php:108
[предупредит] [клиент 127.0.0.1] mod_fcgid: STDERR: Stack след:
[warn] [клиент 127.0.0.1] mod_fcgid: stderr: # 0 /var/www/web1/web/index.php(108): Redis-> hGet ('rw_promo_code: 1 ...', 'unlock_code')
[предупредить] [клиент 127.0.0.1] mod_fcgid: STDERR: # 1 /var/www/web1/web/index.php(172): RedeemAPI-> искупить()
[предупредит] [ клиент 127.0.0.1] mod_fcgid: stderr: # 2 {main}
[предупреждение] [клиент 127.0.0.1] mod_fcgid: stderr: следующее исключение «RedisException» с сообщением «Сервер Redis удален» в/var/www/web1/web /index.php:0
[предупредит] [клиент 127.0.0.1] mod_fcgid: STDERR: Стек трассировки:
[предупредит] [клиент 127.0.0.1] mod_fcgid: STDERR: # 0/вар/WWW/web1/web/index.php (172): Redis -> __ destruct()
[warn] [клиент 127.0.0.1] mod_fcgid: stderr: # 1 /var/www/web1/web/index.php(172): RedeemAPI-> redeem()
[предупредит] [клиент 127.0.0.1] mod_fcgid: STDERR: # 2 {} Основной
[предупредит] [клиент 127.0.0.1] mod_fcgid: STDERR: брошен в/вар/WWW/web1/Web/индекса. php on line 0
[warn] [клиент 127.0.0.1] mod_fcgid: stderr: PHP Неустранимая ошибка: исключить исключение «RedisException» с сообщением «Redis server ушел» в/var/www/web1/web/index. PHP: 108
и т.д ....
Перезапустите Apache и Redis и может повторить цикл. Иногда он снова подключается и успешно обрабатывает некоторые запросы.
Я могу попытаться поймать исключение и попробовать повторно подключиться, однако процессы не восстанавливаются.
Ubuntu 11.10 x86_64 Redis версии 2.4 Apache/2.2.20 (Ubuntu) mod_fastcgi/mod_fastcgi-SNAP-0910052141 mod_fcgid/2.3.6 mod_perl/2.0.5 Perl/v5.12.4