## QPS связанные
QPS — количество запросов, обрабатываемых в секунду. В определенной степени это может отражать ситуацию с давлением службы в настоящее время. Далее можно проанализировать, как примерно оценить количество запросов в секунду службы через обращение.
Справочная информация. Событие, которое было запущено вчера, будет отправлять купоны в соответствии со временем исполнения и вычислять количество запросов в секунду для этого поведения отправки купонов.
Анализ: будет журнал для каждого поведения доставки купона, как показано ниже.
2017-10-27 15:10:16 songtime=355 userid=56135899 giftid=20331 addednumbers=1
Таким образом, количество запросов песенного времени в секунду можно рассчитать как целевое значение.
Таким образом, вы можете использовать следующую команду:
developer@hosttx:~$ sudo devpssh -i -h /opt/iplist.all.svn 'grep songtime /home/log/baofang-yanzhishengdian.log' | grep 10-27 | cut -d " " -f 2 | uniq -c
Поскольку количество посетителей относительно невелико, количество запросов в секунду обычно составляет 2–3.
Объяснение: Вам может быть интересно, как это рассчитывается? Поясним, наша цель — проверить количество логов songtime за определенную секунду.
- Определить, содержит ли журнал
songtime
, вы можете использовать команду grep. - Чтобы найти записи журнала между несколькими компьютерами GET онлайн, вы можете использовать
sudo devpssh -i -h /opt/iplist.all.svn 'grep songtime /home/log/baofang-yanzhishengdian.log'
- Вы можете использовать команду cut для разделения журнала второго уровня,
-d "delimiter"
используется для указания символов-разделителей,-fN
Какое поле используется для отображения, по умолчанию считается от 1. - Команда uniq короткая и лаконичная,
-c
Параметр используется для статистики, но только один и тот же лог в двух соседних строках будет накапливаться по порядковому номеру перед первой.
Смоделируйте процесс синхронизации Redis
Сначала проверьте, запущена ли в данный момент служба Redis на компьютере:
Вроде нет, тогда можно запустить несколько redis-серверов, т.к. он на одной машине, поэтому хорошо указать разные порты.
Аналогичным образом используйтеredis-server --port 7777
Запустите другую службу Redis.
Наконец, давайте посмотрим, запущена ли служба.
Что ж, теперь есть два совершенно новых сервиса Redis. Прежде чем приступить к подготовке конкретных операций репликации и синхронизации master-slave, укажите отношение master-slave.
- Порт 6666 как мастер
- Порт 7777 как подчиненный
Затем отслеживайте ведомое устройство с помощью команды монитора redis-cli, чтобы увидеть, как ведомое устройство реагирует на изменение некоторых ключей в ведущем устройстве.
Пусть 7777 будет рабом 6666 ниже.
В то же время под терминалом 7777сервера появится некоторый вывод как слейв 6666.
В то же время 6666, являющийся ведущим, также будет отвечать на запрос синхронизации, отправленный 7777.
Чтобы имитировать синхронизацию, вам нужно только установить несколько ключей в мастере в это время и посмотреть на вывод в окне монитора ведомого.
Видно, что ведомое устройство будет синхронизировать данные на ведущем в режиме реального времени для достижения согласованности данных. Таким образом выполняется простая синхронизация master-slave.
Но следует отметить, что redis в качестве слейва писать нельзя. Например, мы случайным образом устанавливаем несколько ключей на подчиненном устройстве, чтобы увидеть, если это не так, вы увидите следующие результаты.
Это потому, что Redisslave-read-only
По умолчаниюyes
То есть он находится в состоянии только для чтения, поэтому эту переменную нужно модифицировать после завершения синхронизации.config set slave-read-only no
может.
Операции на слейве не повлияют на мастер, что необходимо.
После завершения окончательной синхронизации, если вы не хотите, чтобы 7777 был подчиненным 6666, вы можете использоватьslaveof no one
реализовать.
Онлайн-обновление Redis
Redis работает онлайн, как правило, для стабильности, а версия не очень высокая. Но он не может быть слишком низким, поэтому иногда необходимо обновить Redis, что неизбежно. Однако онлайн-редис обычно содержит большой объем данных, который может быть на N больше, чем G, и не может напрямую выполнять синхронизацию ведущий-ведомый, поэтому запросы синхронизации от подчиненных будут вытеснять запросы внешних пользователей. Заставляет службу выдавать сигнал тревоги.
обычно онлайнRedis
Чтобы сделать обновление, есть такой способ мышления:найти замену, а затем выполните следующие действия.
- сделать замену
slave
стать онлайн-машиной, после завершения синхронизацииslave-read-only
Установить какno
. - Привлекайте интернет-трафик к
slave
вверх, в это времяslave
Станьте онлайн-машиной, просмотрите онлайн-машинуQPS
, до 0. - В это время удалите онлайн
旧Redis
, затем установите новую версиюRedis
. - новая версия
Redis
в видеslave
синхронизировать онлайнRedis
данные, после завершения синхронизации то же самое будетslave-read-only
Установить какno
, а затем верните онлайн-трафик, проверьте предыдущий替身Redis
изQPS
Может быть 0.
Во время этого процесса см.redis
просилQPS
Лучший путь черезmonitor
реализовать.
redis-cli -h 127.0.0.1 -p 6379 monitor | cut -d "." -f1 | uniq -c
пока на линии апгрейдаRedis
Когда количество внешних подключений, особенно количество внешних подключений, иногда это обычный бизнес-запрос, иногда этоcrontab
Скрипты работают по статистическим данным, в любом случае ситуация разнообразная, можно пройтиss -anp | grep redis:port
Команда для проверки состояния соединения.
Следует отметить, что вам необходимо использовать привилегии суперпользователя, чтобы увидеть конкретную информацию о PID.
Тогда вы можете пройтиps aux
Команда определяет, какая команда запущена. Затем назначьте правильное лекарство и завершите всю операцию.
Суммировать
Напомним, что эта статья в основном посвящена онлайн-redis
Опыт обновления, а также повествование о некотором здравом смысле. Чтобы двигаться шаг за шагом,QPS
иRedis
Конкретные этапы работы синхронизации ведущий-ведомый и, наконец, приводят к этапам и процессу обновления.
На самом деле шаги не важны, важна общая идея, а также умение пользоваться инструментами.