最近,我们注意到redis引起的生产环境cpu峰值,如下所示:

为了解决这个问题,我每天大约两次重启redis服务器:(这显然远非理想.我想确定根本原因.

以下是我目前研究过的一些事情:
1)查看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(示例女士黑客脚本,在评论中你可以看到原始版本下载山药的位置)
> https://translate.google.com/translate?hl=en&sl=zh-CN&u=http://www.zkreading.com/article/879816.html&prev=search(关于利用及其如何利用的中文文章的翻译)
> https://translate.google.com/translate?hl=en&sl=zh-CN&u=http://blog.csdn.net/u012573259/article/details/51803447&prev=search(另一篇中文帖子更侧重于后续步骤和清理)
> http://antirez.com/news/96一篇关于redis安全性的自称博客文章,描述了可能成为进入OP服务器的入侵源的入侵手段
> https://www.riskbasedsecurity.com/2016/07/redis-over-6000-installations-compromised/(概述了redis安全性差的服务器数量)
> https://news.ycombinator.com/item?id=13053647(一个报道黑客比特币风味的主题)

这是我的magento / redis,呃,性能问题清单:

>确保你使用的是redis的新版本,比如3.2,如果在CentOS上,我个人更喜欢来自IUS存储库的redis32u.
>检查redis数据库的大小,它应该在/ var / lib / redis中,并确保它相对较小.
>确认您有足够的ram用于redis.你已经指定了一个15GB的最大存储数,这对于magento来说真的太过分了.我通常使用接近256mb的东西.如果你使用redis那么多(!!!!!!),你的magento堆栈可能还有其他问题.
>确保在syscntl中设置了vm overcommit设置. https://redis.io/topics/admin(有关您需要的更多详情,请参阅此链接)
>确保您有足够的打开文件限制来处理与redis的连接数.

一般来说,日志文件不可疑,因为你的redis保存设置告诉redis每隔一分钟就会保存,如果有> 10000写,如果有的话,每隔五分钟> 10次​​写入,如果有> 15分钟,则每15分钟写入1写.所以它基本上每分钟都会将信息保存回磁盘,这不应该是那么繁琐.

php-fpm – Redis服务器高CPU调试策略的更多相关文章

  1. PhoneGap / iOS上的SQLite数据库 – 超过5mb可能

    我误解了什么吗?Phonegap中的sqlitedbs真的有5mb的限制吗?我正在使用Phonegap1.2和iOS5.解决方法您可以使用带有phonegap插件的原生sqliteDB,您将没有任何限制.在iOS5.1中,Websql被认为是可以随时删除的临时数据…

  2. ios – 使用带有NodeJs HTTPS的certificates.cer

    我为IOS推送通知生成了一个.cer文件,我希望将它与NodeJSHTTPS模块一起使用.我发现HTTPS模块的唯一例子是使用.pem和.sfx文件,而不是.cer:有解决方案吗解决方法.cer文件可以使用两种不同的格式进行编码:PEM和DER.如果您的文件使用PEM格式编码,您可以像使用任何其他.pem文件一样使用它(有关详细信息,请参见Node.jsdocumentation):如果您的文件使

  3. ios – Veracode,调试符号和XCode

    我正在尝试通过Veracode扫描iOS应用程序:一个应用程序安全平台.为了使它们扫描.IPA,.IPA需要包含调试符号.对于正在使用的Archive构建配置和项目/目标,我已指定:>生成调试符号:是>复制期间剥离调试符号:NO>死代码剥离:没有>默认隐藏的符号:NO>剥离链接产品:没有然而,在提交.IPA时,Veracode仍然给我以下错误:没有调试符号编译的主文件–1个文件我需要采取另一个步骤来创建调试符号,或许是存档吗?

  4. ios – CFNetwork内部错误:URLConnectionLoader.cpp:289

    当我在一段时间后打开我的应用程序时,我收到了日志:440:CFNetworkinternalerror(0xc01a:/buildroot/Library/Caches/com.apple.xbs/Sources/CFNetwork/CFNetwork-758.4.3/Loading/URLConnectionLoader.cpp:289)它从未出现在过去.我的项目使用网络库AFNetworkin

  5. ios – 使用大写符号在字符串swift中获取URL的正则表达式

    我尝试在文本中获取URL.所以,在此之前,我使用了这样一个表达式:但是当用户输入带有大写符号的URL时(例如Http://Google.com,它与它不匹配)我遇到了问题.我试过了:但什么都没发生.解决方法您可以使用正则表达式中的i内联标志关闭区分大小写,有关可用正则表达式功能的详细信息,请参阅FoundationFrameworkReference.(?ismwx-ismwx)Flagsetti

  6. 从VS调试iOS时,程序’Mono’已从代码0(0x0)退出

    我有一个问题,当我尝试使用VS2013调试我的iOS应用程序时,我收到以下错误:Theprogram‘Mono’hasexitedwithcode0.我知道以下answer.清理解决方案确实解决了问题,但是下次调试时我需要再次执行…如果有人有长期解决方案,我们将非常感激.解决方法在发射期间它会崩溃吗?

  7. 如何调试ios共享扩展?

    如何从扩展中打印Xcode的lldb调试器中的日志?解决方法简单回答:>不打印日志消息,但是您可以在断点处停止,然后使用lldb打印所有内容.>运行你的应用程序>在应用程序运行时,转到Debug–>通过PID或名称附加到进程>写下您的扩展名的名称或包ID,然后单击附加>然后以您在设备上执行此操作的任何方式运行扩展程序.>等待调试器在断点处停止扩展.

  8. ios – xcode在更新可可豆荚后出现体系结构错误的重复符号

    编辑:执行下面显示的解决方案后,我的项目只编译iPadAir,我不能再存档,我仍然得到相同的错误…

  9. ios – UIWebView中的WebSQL / SQLite数据库的最大大小(phonegap)

    我知道一般来说,Web应用程序的本地存储空间有5MB的限制.本地网页浏览应用程式是否也有这个限制?

  10. ios – 我可以使用自签名SSL证书服务器在空中部署企业应用吗?

    iOS7.1之后,如果我们要通过空中部署我们的Enterprise应用程序,则manifest.plist文件的URL必须是HTTPS.例如:在我的服务器中,我使用自签名SSL证书.当我点击iPhone上的URL时,它表示无法连接到并记录典型的所以,我想知道我是否可以使用自签名SSL证书?如果可以,我如何解决我遇到的问题的问题?

随机推荐

  1. PHP个人网站架设连环讲(一)

    先下一个OmnihttpdProffesinalV2.06,装上就有PHP4beta3可以用了。PHP4给我们带来一个简单的方法,就是使用SESSION(会话)级变量。但是如果不是PHP4又该怎么办?我们可以假设某人在15分钟以内对你的网页的请求都不属于一个新的人次,这样你可以做个计数的过程存在INC里,在每一个页面引用,访客第一次进入时将访问时间送到cookie里。以后每个页面被访问时都检查cookie上次访问时间值。

  2. PHP函数学习之PHP函数点评

    PHP函数使用说明,应用举例,精简点评,希望对您学习php有所帮助

  3. ecshop2.7.3 在php5.4下的各种错误问题处理

    将方法内的函数,分拆为2个部分。这个和gd库没有一点关系,是ecshop程序的问题。会出现这种问题,不外乎就是当前会员的session或者程序对cookie的处理存在漏洞。进过本地测试,includes\modules\integrates\ecshop.php这个整合自身会员的类中没有重写integrate.php中的check_cookie()方法导致,验证cookie时返回的username为空,丢失了登录状态,在ecshop.php中重写了此方法就可以了。把他加到ecshop.php的最后面去就可

  4. NT IIS下用ODBC连接数据库

    $connection=intodbc_connect建立数据库连接,$query_string="查询记录的条件"如:$query_string="select*fromtable"用$cur=intodbc_exec检索数据库,将记录集放入$cur变量中。再用while{$var1=odbc_result;$var2=odbc_result;...}读取odbc_exec()返回的数据集$cur。最后是odbc_close关闭数据库的连接。odbc_result()函数是取当前记录的指定字段值。

  5. PHP使用JpGraph绘制折线图操作示例【附源码下载】

    这篇文章主要介绍了PHP使用JpGraph绘制折线图操作,结合实例形式分析了php使用JpGraph的相关操作技巧与注意事项,并附带源码供读者下载参考,需要的朋友可以参考下

  6. zen_cart实现支付前生成订单的方法

    这篇文章主要介绍了zen_cart实现支付前生成订单的方法,结合实例形式详细分析了zen_cart支付前生成订单的具体步骤与相关实现技巧,需要的朋友可以参考下

  7. Thinkphp5框架实现获取数据库数据到视图的方法

    这篇文章主要介绍了Thinkphp5框架实现获取数据库数据到视图的方法,涉及thinkPHP5数据库配置、读取、模型操作及视图调用相关操作技巧,需要的朋友可以参考下

  8. PHP+jquery+CSS制作头像登录窗(仿QQ登陆)

    本篇文章介绍了PHP结合jQ和CSS制作头像登录窗(仿QQ登陆),实现了类似QQ的登陆界面,很有参考价值,有需要的朋友可以了解一下。

  9. 基于win2003虚拟机中apache服务器的访问

    下面小编就为大家带来一篇基于win2003虚拟机中apache服务器的访问。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧

  10. Yii2中组件的注册与创建方法

    这篇文章主要介绍了Yii2之组件的注册与创建的实现方法,非常不错,具有参考借鉴价值,需要的朋友可以参考下

返回
顶部