apachebench — медленная очередь на данные с помощью php-resque

я использую PHP-спасательное для очереди моей работы. И я делаю apache ab tool для оценки моей производительности.

php-resque хорошо работает, но работает медленно, так как каждый раз, когда он подключается к redis, что влияет на производительность (без подключения он обрабатывает ~130 Requests/sec и с Resque::enqueue его ~30 requests/sec).

Поэтому я подумал передать данные в другой файл через exec который соединит redis и queus задание в фоновом режиме, но обнаружил, что exec это очень медленно.

Что дальше ? Как я могу заставить его справиться с Redis в очереди быстрее.

Примечание. Я использую эту команду для проверки производительности.

ab -n 1000 -c 10 "http://localhost/index.php"

1

Решение

Я нашел путь.

Вот шаги:

После копания php-resque Я обнаружил, что он использует fsockopen что делает его медленным

Затем я установил php-redis на моей машине убунту. Выполнив следующую команду.

sudo apt-get install php5-redis

Затем перезапустил сервер Apache:

sudo service apache2 restart

А затем связаны с Redis с помощью следующих строк кода.

<?php
$redis = new Redis();
$result = $redis->connect('127.0.0.1');
$id = md5(uniqid('', true));
$redis->set("resque:job:$id",$args);
$redis->close();
unset($redis);

После этого тестирование кода дало лучшую производительность (~70 requests/second) что вдвое больше, чем раньше.

Примечание: здесь pconnect обозначает постоянное соединение, которое быстрее, чем connect,

Надеюсь, это кому-нибудь поможет.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]