php-fpm – Redis服务器高CPU调试策略
最近,我们注意到redis引起的生产环境CPU峰值,如下所示:
为了解决这个问题,我每天大约两次重启redis服务器:(这显然远非理想.我想确定根本原因. 以下是我目前研究过的一些事情: 2)研究了nginx访问日志,看看我们是否遇到异常高的流量.答案是不. 3)New Relic透露,该问题始于11月21日,16日(约一个月前),但当时没有发布任何代码. 以下是有关我们设置的一些细节: Redis服务器:Redis服务器v = 2.8.17 sha = 00000000:0 malloc = jemalloc-3.6.0 bits = 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 如果有上述信息,请告诉我,我可以做些什么来减轻高CPU使用率.
非常重要的更新:
您的服务器可能已被黑客入侵.这不是导致高CPU使用率的redis,而是一个名为yam的单独命令(看看你的htop的最右边,我第一次错过了它). yam命令用于众所周知的redis漏洞利用程序,并且经常导致高CPU使用率.您需要仔细检查以确保您的服务器是安全的. 如果您想了解有关漏洞以及如何保护自己的更多信息,请参阅以下文章和链接: > https://gist.github.com/lokielse/d4e62ae1bb2d5da50ec04aadccc6edf1(示例女士黑客脚本,在评论中你可以看到原始版本下载山药的位置) 这是我的magento / redis,呃,性能问题清单: >确保你使用的是redis的新版本,比如3.2,如果在CentOS上,我个人更喜欢来自IUS存储库的redis32u. 一般来说,日志文件不可疑,因为你的redis保存设置告诉redis每隔一分钟就会保存,如果有> 10000写,如果有的话,每隔五分钟> 10次??写入,如果有> 15分钟,则每15分钟写入1写.所以它基本上每分钟都会将信息保存回磁盘,这不应该是那么繁琐. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |