Я сделал забавное наблюдение в моем случае Redis развернутым на моем AWS EC2 Micro экземпляра (тестовая среда)производительность Redis на AWS EC2 Micro Instance
я измерения времени выполнения различных операций, которые должны ударить Redis. В итоге, время выполнения (в среднем), приведены ниже:
Jedis -> Redis Connection is 63 milliseconds
Read of top Element in a list using lrange(<listname>,0,1) is 44 milliseconds
Read of entire Elements of set is 5ms
Iteration over entire Set space is 60ms(Set space approx 130 elements)
Iteration over subset of elements of set is 5ms (Subset element size is 5)
Теперь то, что беспокоит меня первые 2 операции (подключение и извлечение верхнего элемента в списке).
Для подключения, код приведен ниже:
Jedis redis= new Jedis("localhost");
И для извлечения верхнего элемента в списке:
String currentDate = redis.lrange(holderDate,0,1).get(0);
Теперь из командной документации Redis lrange
:
Сложность времени: O (S + N), где S - начальное смещение, а N - количество элементов в spe округленный диапазон.
Теперь из моего кода S будет 0 и N будет 1.
Мой вопрос тогда: Что вызывает эти времена выполнения этих несколько тривиальных операций.
Существуют ли особенности экземпляра EC2 Micro, которые могут негативно повлиять на производительность этих операций.
Некоторые ключевые сведения о развертывании Redis:
redis_version:2.4.10
used_memory:2869280
used_memory_human:2.74M
used_memory_rss:4231168
used_memory_peak:2869480
used_memory_peak_human:2.74M
mem_fragmentation_ratio:1.47
Спасибо заранее.
Экземпляр EC2 micro сильно дросселируется. ИМО, пытаясь запустить тесты на них (или даже интерпретировать измерения производительности), является пустой тратой времени. –
@DidierSpezia: Это должно быть понято, но какие характеристики машины должны быть дросселированы для приложения, чтобы показывать такую статистику эффективности? Обратите внимание, что экземпляр Redis развернут на том же узле, что и приложение, сравнивающее его. Спасибо –