2016-08-23 5 views
0

Я читал документацию Redis, и я не понимаю, следующий абзац (из ссылки http://redis.io/topics/benchmarks):Почему количество клиентских подключений влияет на производительность Redis?

«Наивно итерацию по синхронному Redis команды сам не эталоном Redis, а измерить вашу сеть (или IPC) чтобы действительно проверить Redis, вам нужно несколько соединений и/или ... »

Я провел следующее тестирование, чтобы увидеть разницу в скорости между 1 соединением и 500 соединениями. Как мы видим, он намного медленнее, когда есть только 1 соединение. Но я не понимаю, почему и как количество соединений влияет на скорость работы Redis. Я новичок в компьютерной сети, любая помощь будет оценен по достоинству!

$ redis-benchmark -c 500 -t ping 
====== PING_INLINE ====== 
    10000 requests completed in 0.10 seconds 
    500 parallel clients 
    3 bytes payload 
    keep alive: 1 

$ redis-benchmark -c 1 -t ping 
====== PING_INLINE ====== 
    10000 requests completed in 0.19 seconds 
    1 parallel clients 
    3 bytes payload 
    keep alive: 1 

ответ

2

Когда задержка> пропускной способности, вам необходимо иметь несколько запросов в полете узким местом на пропускную способность, а не только туда-обратно латентности.

например. если кругооборот в сети составляет 10 мс, тогда клиент, ожидающий результата одного запроса перед отправкой другого, математически ограничен 100 запросами в секунду. Если ваш сервер может обрабатывать больше, вы не можете протестировать его с помощью одного клиента.


Логика такая же, как и для обычной передачи данных по сетям, например. Размер окна TCP. Эта статья wiki (https://en.wikipedia.org/wiki/Bandwidth-delay_product) может помочь прояснить концепцию необходимости держать несколько пакетов/операций в полете. Для запроса redis полная латентность включает время обработки + время сети. Если вы столкнулись с этим, вы не приблизитесь к тому, чтобы сервер (или сеть) сервера на 100% занят.

Обратите внимание, что достижение Instruction-Level Parallelism in a CPU - это та же концепция. (например, чтобы суммировать массив поплавков, вы должны использовать по меньшей мере 3 аккумулятора, если добавление FP имеет задержку в 3 цикла и одну на 1 c пропускную способность, то есть полностью конвейерную).

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

  • Нет связанных вопросов^_^