Стратегии отладки высокого уровня ЦП на сервере Redis

Недавно мы заметили скачки производительности ЦП в нашей производственной среде, вызванные Redis, которые можно увидеть ниже:

enter image description here

Чтобы решить эту проблему, я перезапускаю сервер Redis примерно два раза в день :( что явно далеко от идеала. Я хотел бы определить основную причину.

Вот некоторые вещи, которые я изучил, поэтому far:
1) Изучите любые аномалии в файле журнала redis. Следующее кажется подозрительным:

enter image description here

2) Изучил журналы доступа nginx, чтобы узнать, нет ли у нас необычно высокого трафика. Ответ - нет.

3) New Relic обнаружил, что проблема началась 21 ноября 16` года (около месяца назад), но к тому времени не было выпущено никакого кода.

Вот некоторые сведения о нашей настройке:

Сервер Redis: Сервер Redis v = 2.8.17 sha = 00000000: 0 malloc = jemalloc-3.6.0 бит = 64 build = 64a9cf396cbcc4c7

PHP: 5.3.27 с fpm

Конфигурация Redis:

daemonize yes
pidfile /var/run/redis/redis.pid
port 6379
timeout 0
tcp-keepalive 0
loglevel notice
logfile /var/log/redis/redis.log
syslog-enabled yes
databases 16
save 900 1
save 300 10
save 60 10000
stop-writes-on-bgsave-error no
rdbcompression yes
rdbchecksum yes
dbfilename redis.rdb
dir /var/lib/redis/
slave-serve-stale-data yes
slave-read-only yes
repl-disable-tcp-nodelay no
slave-priority 100
maxmemory 15GB
appendonly no
appendfsync everysec
no-appendfsync-on-rewrite no
auto-aof-rewrite-percentage 100
auto-aof-rewrite-min-size 64mb
lua-time-limit 5000
slowlog-max-len 128
notify-keyspace-events ""
hash-max-ziplist-entries 512
hash-max-ziplist-value 64
list-max-ziplist-entries 512
list-max-ziplist-value 64
set-max-intset-entries 512
zset-max-ziplist-entries 128
zset-max-ziplist-value 64
activerehashing yes
client-output-buffer-limit normal 0 0 0
client-output-buffer-limit slave 256mb 64mb 60
client-output-buffer-limit pubsub 32mb 8mb 60
hz 10
aof-rewrite-incremental-fsync yes
include /etc/redis/conf.d/local.conf

Фреймворк: Magento 1.7.2 с Cm_Cache_Backend_Redis

Пожалуйста, дайте мне знать, если, учитывая приведенную выше информацию, я могу что-нибудь сделать, чтобы уменьшить высокий использование процессора.

3
задан 12 December 2016 в 22:49
1 ответ

ОЧЕНЬ ВАЖНОЕ ОБНОВЛЕНИЕ :

Ваш сервер мог быть взломан. Не redis вызывает высокую загрузку ЦП, а отдельная команда под названием yam (взгляните на крайний правый угол вашего htop, я пропустил ее в первый раз). Команда yam используется в хорошо известном эксплойте Redis и часто приводит к высокой загрузке процессора. Вам нужно перепроверить, чтобы убедиться, что ваш сервер безопасен.

Вот несколько статей и ссылок, на которые вы можете обратиться, если хотите узнать больше об уязвимости и о том, как обезопасить себя:


Вот мой контрольный список для проблем с производительностью magento / redis, э-э…

  1. Убедитесь, что вы используете новую версию redis, например 3.2,Я лично предпочитаю redis32u из репозитория IUS на CentOS.
  2. Проверьте размер вашей базы данных redis, он должен быть в / var / lib / redis , и убедитесь, что он относительно небольшой.
  3. Убедитесь, что у вас достаточно оперативной памяти для Redis. Вы указали maxmemory размером 15 ГБ, что для Magento действительно слишком много. Обычно я использую что-то близкое к 256 МБ . Если вы так часто используете redis (!!!!!!), у вас, вероятно, есть другие проблемы в вашем стеке magento.
  4. Убедитесь, что в syscntl установлен параметр vm overcommit. https://redis.io/topics/admin (подробнее о том, что вам нужно, см. По этой ссылке)
  5. Убедитесь, что у вас есть достаточные ограничения на количество открытых файлов, чтобы обрабатывать количество подключений к redis.

Вообще говоря, файл журнала не вызывает подозрений, потому что ваши настройки сохранения redis говорят redis сохранять каждую минуту, если было> 10000 записей, каждые пять минут, если было> 10 записей, и каждые 15 минут, если было > 1 пиши. Таким образом, по сути, информация сохраняется на диск каждую минуту, что не должно быть таким обременительным.

3
ответ дан 3 December 2019 в 06:28

Теги

Похожие вопросы