链接服务器 慢_redis服务器cpu100%的原因和解决方案

首先引起cpu100%可能的几大原因:

1.redis连接数过高
2.数据持久化导致的阻塞
3.主从存在频繁全量同步
4.value值过大
5.redis慢查询

为了模拟redis服务器cpu100%,临时买了一台阿里云ecs,并把那天清空前的redis备份还原到服务器上。下面我们按照顺序逐个排查,

redis连接数过高?

redis的默认链接数是10000,我们并没有更改这个值,前面提到了web的承载量是1600左右,所有可以排除

数据持久化导致的阻塞?

大家知道redis是可以持久化的,而redis持久化会采取LZF算法进行压缩,这种方式会减少磁盘的存储大小,而通过这种方式是需要消耗cpu的,我们看下redis的配置

74e1baa953e5bba77470766289708c2b.png

rdbcompression yes 表示压缩算法是打开的

还有3个关键的参数,这里解释一下:

save 900 1 //表示每15分钟且至少有1个key改变,就触发一次持久化
save 300 10 //表示每5分钟且至少有10个key改变,就触发一次持久化
save 60 10000 //表示每60秒至少有10000个key改变,就触发一次持久化

因为redis持久化的动作会记录日志,我们首先找出出问题的时间段里的持久化内容大小

6ac6ddbf01d04b6ac35cedb069b727ce.png

也才75M,看起来不会是它了,为了确保,我批量的高频次写入redis进行验证(这里代码就不贴了),直接看实验结果,数据量大概是上面的4倍

d619e8e70dd2266106bde7745662e1c9.png

写入的过程我实时的观察cpu运作情况(实验的服务器是单核的,所有直接看阿里云的监控页):

c1f2d53f87380750b62c836b7e7b4e4f.png

得出结论:毫无压力,所有这项也排除

主从存在频繁全量同步

因为我们是单服务器,没有做主从所以直接排除

value值过大

先看一下当时cpu时redis的key和存储量情况

246ab0c0e90d5883871efe33b6fbd007.png

462万多的key才使用900MB左右的内容,平均一个key才0.2kb左右,基本不可能,但是抱着严谨的态度还是决定模拟写入大的value值,测试之前现进行清空,然后写了一个数据读写脚本(这里就不展示代码了):

e2089bcc9d01b18b3c019c8b7edc4848.png

使单个key平均300KB左右提升了100多倍,cpu毫无压力,所有这个问题也可以排除。

redis慢查询

相信大家看到这里已经知道结论了,就是慢查询的问题。

73e3488161ba4453199390148dd61e0c.png

一个高频访问的网页程序请求redis使用keys命令,导致每次访问接近2秒,当2秒内访问超过服务器的最高承载量时,后面请求全部需要排队,导致大量的超时(504)...

看了一下官方对keys命令的说明,已经进行警告生产环境要慎用,会产生性能问题:

36cd46adad9dc7008c1bf9584189a611.png
原文链接:redis服务器cpu100%的原因和解决方案_数据库_weixin_44753686的博客-CSDN博客

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/304648.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

有人问我:AI这么火,要不要去追赶AI的热潮?

12月14日,吴恩达发布微博:我很高兴地宣布Landing.ai的成立,开始进入AI产业。 作为一家人工智能(AI)公司,Landing.ai旨在帮助企业在人工智能时代实现转型。这一动作让人们对AI的关注度在2017年的末尾又一次升…

Exchange2003管理

邮件的管理详细见邮件转载于:https://blog.51cto.com/ruzhulinux/187799

过完年,又不想上班了?

大家新年好,我是Z哥。每次过完年,不少人会多增加一份焦虑,这份焦虑表面上看是“不想上班”,但实际上可能是职业规划的缺失导致。因为缺少对未来的预期、憧憬,导致对自己的工作没有热情。这种情况的另一种叫法是「职业倦…

15天助你掌握问卷统计与Spss实战

最近总是有小伙伴咨询超模君关于数据分析的问题,比如数据分析是什么、怎样才能速成数据分析等等,今天超模君就抽个空跟大家谈谈数据分析那些事儿。首先,我们先来了解了解小伙伴所提到的数据分析。数据分析是指用适当的统计分析方法对收集来的…

aswing学习笔记3-在JPanel中,如何将.png格式的图片设置为背景?

在JPanel中,如何将.png格式的图片设置为背景?2009-03-04 19:21在JPanel中,如何将.png格式的图片设置为背景? 发表于 : 周三 6月 04, 2008 3:53 pm由 tvrcaiyy在JPanel中,如何将.png格式的图片设置为背景?能…

在.NET Core 中使用 FluentValidation 进行规则验证

不用说,规则验证很重要,无效的参数,可能会导致程序的异常。如果使用Web API或MVC页面,那么可能习惯了自带的规则验证,我们的控制器很干净:public class User {[Required]public string FirstName { get; se…

scrcpy投屏_安卓投屏利器——PC一键控制多台手机

点击关注,我们共同每天进步一点点!之前给大家介绍了投屏开源工具scrcpy(Scrcpy投屏,在电脑上流畅操控你的手机!),今天要介绍的投屏工具是在scrcpy的基础上进行了二次开发,使用更加友好。《安卓投屏》基于Gi…

java emoji编码转换_java转换emoji表情

/*** Description 将字符串中的emoji表情转换成可以在utf-8字符集数据库中保存的格式(表情占4个字节,需要utf8mb4字符集)* param str* 待转换字符串* return 转换后字符串* throws UnsupportedEncodingException* exception*/public static String emojiConvert1(St…

【干货】通俗理解神经网络中激活函数作用

推荐阅读时间8min~13min主要内容:通俗理解激活函数,主要来自我在学习会的slides,讲解了激活函数的非线性能力和组合特征的作用下面我分别对激活函数的两个作用进行解释。1加入非线性因素,解决非线性问题好吧,很容易能够…

创建第一个WCF程序

WCF的三大核心是ABC A代表Address-where(对象在哪里) B代表Binding-how(通过什么协议取得对象) C代表Contact(契约)-what(定义的对象是什么,如何操纵) 创建一个空的解决方…

.NET微服务最佳实践eShopOnContainers

本文翻译自微软Docs, 内嵌译者多年使用的参悟,如理解有误,请不吝赐教。微软与社区专家合作,开发了功能齐全的云原生微服务示例应用eShopOnContainers。该应用旨在展示使用.NET、Docker以及可选的Azure,Kubernetes技术来…

爬取猎聘python_爬取猎聘大数据岗位相关信息--Python

猎聘网站搜索大数据关键字,只能显示100页,爬取这一百页的相关信息,以便做分析。__author__ ‘Fred Zhao‘import requestsfrom bs4 import BeautifulSoupimport osimport csvclass JobSearch():def __init__(self):self.headers {‘User-Ag…

java string底层实现_Java-学习日记(Shell与String底层原理)

Java杂记-2020.08.07Test中测试所有getter,setter方法最近一周在写codereview,相关技术是kmock1.0.19,gradlebuild.gradle中配置文件testCompile pl.pojo:pojo-tester:0.7.6testCompile(junit:junit:4.12)testCompile(kmock:kmock:1.0.19)Test中的使用&a…

正态分布为什么常见?

统计学里面,正态分布(normal distribution)最常见。男女身高、寿命、血压、考试成绩、测量误差等等,都属于正态分布。>>>> 作者: 阮一峰以前,我认为中间状态是事物的常态,过高和过低…

Hibernate HQL 语法大全(上)

Hibernate配备了一种非常强大的查询语言,这种语言看上去很像SQL。但是不要被语法结构上的相似所迷惑,HQL是非常有意识的被设计为完全面向对象的查询,它可以理解如继承、多态 和关联之类的概念。 1.大小写敏感性问题 除了Java类与属性的名称外…

python tuple args_Python基本数据类型之tuple

一、创建元组:ages (11, 22, 33, 44, 55)ages tuple((11, 22, 33, 44, 55))元组和列表几乎一样元组的元素不可修改,但是元组元素的元素是可以修改的tuple(iterable),可以存放所有可迭代的数据类型二、基本操作:索引name_tuple …

轻量级Excel读取器ExcelReader

用户上传Excel文件,要求读取里面数据,其实可以很简单!新版Excel2007以上的xlsx文件,本质上是OpenXml格式,只需要解开压缩包然后读取内部Xml即可得到想要的数据。ExcelReader 用于快速读取单Sheet的Excel数据&#xff0…

java代码实现链表_java单链表代码实现

用惯了C,java写起来果然不太爽。。。不废话了,上代码。。。package javaInnerclassDemo;class Link{class Node{private String name;private Node next;public Node(String name){this.namename;}public void setname(String name){this .name name;}p…

Python 写各大聊天系统的屏蔽脏话功能原理

来源:Cookie-Fei www.cnblogs.com/cookie1026/p/6121363.html突然想到一个视频里面弹幕被和谐的一满屏的*号觉得很有趣,然后就想用python来试试写写看,结果还真玩出了点效果,思路是首先你得有一个脏话存放的仓库好到时候检测&…

RHEL4- SAMBA服务(四)在x-window下图形界面简单搭建samba服务器

RHEL4- SAMBA服务(四)在x-window下图形界面简单搭建samba服务器在《RHEL4- SAMBA服务(一)samba服务的安装与启动》中我讲了如何安装和启动samba服务器,这一篇我来说一说如何使用图形界面配置简单的samba服务&#xff0…