上一篇讲述了由于redis服务器cpu100%导致网站502的问题,今天延续上一篇的内容,说明一下原因和分析过程。
首先引起cpu100%可能的几大原因:
1.redis连接数过高
2.数据持久化导致的阻塞
3.主从存在频繁全量同步
4.value值过大
5.redis慢查询
为了模拟redis服务器cpu100%,临时买了一台阿里云ecs,并把那天清空前的redis备份还原到服务器上。下面我们按照顺序逐个排查,
redis连接数过高?
redis的默认链接数是10000,我们并没有更改这个值,前面提到了web的承载量是1600左右,所有可以排除
数据持久化导致的阻塞?
大家知道redis是可以持久化的,而redis持久化会采取LZF算法进行压缩,这种方式会减少磁盘的存储大小,而通过这种方式是需要消耗cpu的,我们看下redis的配置
rdbcompression yes 表示压缩算法是打开的
还有3个关键的参数,这里解释一下:
save 900 1 //表示每15分钟且至少有1个key改变,就触发一次持久化
sav