Отвечая на ваши вопросы.
1. Какому количеству ядер ЦП соответствует уровень емкости M4?
Cloud Memorystore для Redis - это служба, управляемая Google, что означает, что Google может зарезервировать внутренние данные (ресурсы) виртуальной машины, на которой запущен сервис Redis. Тем не менее ожидается, что чем выше уровень емкости, тем больше ресурсов (ЦП) будет у виртуальной машины. В частности, для вашего случая добавление ЦП не решит проблем, связанных с использованием ЦП, потому что сама служба redis однопоточный.
Как видно из предыдущей ссылки:
Чтобы максимизировать использование ЦП, вы можете запустить несколько экземпляров Redis.
Если вы хотите использовать несколько ЦП, вы можете подумать о каком-либо способе сегментирования раньше.
2. Действительно ли опасно, что загрузка ЦП превышает 100%?
Да, высокая загрузка ЦП вызывает тревогу, потому что это может привести к ошибкам подключения или высокой задержке. Использование ЦП важно, но также и то, достаточно ли эффективен экземпляр Redis для поддержания вашей пропускной способности при заданной задержке. Вы можете проверить задержку redis с помощью команды redis-cli --latency
, пока CPU% высок.
3. Ожидаем ли мы каких-либо заметных проблем с производительностью?
Это действительно сложно сказать или предсказать, потому что это зависит от нескольких факторов (клиентское обслуживание, выполнение команд в установленные сроки, рабочая нагрузка). Некоторые из наиболее распространенных причин высокой задержки и проблем с производительностью:
Клиентские виртуальные машины или службы перегружены и не используют сообщения от Redis: когда клиент открывает TCP-соединение для redis, сервер redis имеет буфер сообщений для отправки в это соединение. Если у клиентской службы полностью загружен ЦП, что не дает ядру времени на получение сообщений от Redis, они заполняются на сервере Redis.
Выполняемые команды потребляют много ресурсов ЦП. Известно, что следующие команды потенциально очень дороги в обработке:
EVAL / EVALSHA
KEYS
LRANGE
ZRANGE / ZREVRANGE
4.-Какие есть варианты решения проблем с производительностью (если таковые имеются), вызванных более высокой загрузкой ЦП (›= 100%)?
Этот вопрос в основном касается масштабируемого проекта вашей реализации. . Поскольку redis является однопоточным, лучшим подходом к снижению процента ЦП было бы сегментирование данных в нескольких экземплярах redis и наличие прокси перед ним для распределения нагрузки. Взгляните на график в разделе Twemproxy
из этого ссылка.
5. - Решит ли переход на уровень емкости M5 высокую загрузку ЦП и соответствующие проблемы?
Переход на более высокий уровень емкости должен временно помочь с задержкой, но это называется вертикальным масштабированием, которое ограничен уровнями, которые предлагает Cloud Memorystore.
person
Antonio Ramirez
schedule
26.03.2021