mysql的告警日志_运维日记|MySQL关于aborted告警日志的分析

又是一个季度一次的现场巡检,期待数据库能跑的又快又稳,毕竟这是对DBA最大的馈赠了。

结果不遂人意发现在错误日志内存在大量的如下报错:

f404d121748052f996280fac9051e581.png

查看当前数据库的状态值:

022f64dd3d296dc8ea8e0d2616610bed.png

查看数据库关于数据库会话的关键参数:

数据库环境及相关参数connect_timeout10

interactive_timeout28800

wait_timeout28800

max_connections151

net_write_timeout60

net_read_timeout30

可见,自数据库启动,440万尝试连接中,近140万会话异常退出,近200万会话未能正常连接到数据库环境。而排查错误日志中该报错无时间规律,同时客户反馈在业务层面,经常有长连接断开的现象。

TIP:

首先我们通过官方文档来了解Aborted_clients和Aborted_connects两个状态变量的代表意义,以及哪些情况或因素会导致这些状态变量变化呢?

388c654aa6aafc2da6e9499670889ad1.png

造成Aborted_connects状态变量增加的可能原因:

1.客户机试图访问数据库,但没有数据库的特权。

2.客户端使用了错误的密码。

3.连接包不包含正确的信息。

4.获取一个连接包需要的时间超过connect_timeout秒。

79dd41444002b24f8957232961d98d55.png

造成Aborted_clients 状态变量增加的可能原因:

1.程序退出前,客户机程序没有调用mysql_close()。

2.客户端睡眠时间超过了wait_timeout或interactive_timeout秒。

3.客户端程序在数据传输过程中突然终止。

简单来说即:数据库会话未能正常连接到数据库,会造成Aborted_connects变量增加。数据库会话已正常连接到数据库但未能正常退出,会造成Aborted_clients变量增加。

根据错误日志中报错:

Got timeout reading communication packets

出现如上错误,基本上可判断为数据库认证超时导致,或者业务线程异常退出。

客户反馈并无相关业务客户端异常退出等操作或现象。

可简单判断会话超过interactive_timeout/ wait_timeout限制时间(28800)导致会话被数据库杀掉,跟应用沟通之后,应用确认其业务逻辑会话均为长连接,不会主动进行断开操作。如上可初步解释为何Aborted_clients状态变量会如此之高。

那又该如何解释Aborted_connects这个状态变量如何之高?

能使该状态变量增加的几种可能性,我们依次来确认排查。

1.客户机试图访问数据库,但没有数据库的特权。

2.客户端使用了错误的密码。

3.连接包不包含正确的信息。

4.获取一个连接包需要的时间超过connect_timeout秒。

关于1、2、3这三点,可统一解释为 用户/密码/权限错误导致无法正常连接到数据库。这几个错误不会在错误日志中报该错误(Got timeout reading communication packets),错误日志中也不存在(Access denied for user)该类错误,且业务能正常运行。这样就能排除这三点的可能性。

那唯一可能就是由于连接认证超时时间超过connect_timeout秒,数据库层面connect_timeout参数设置为默认的10s。根据官方文档解释:

668d343df6985219ca1f2372b5b476ff.png

10s基本上能够支持业务使用。

那还有什么可能呢?

跟客户确认之后,了解到应用是通过MySQL Router连接到数据库服务器。检查Router 参数文件配置,发现如下参数设置

cf96c32322588f1ab8a8f83537e07054.png

发现在Router的配置中connect_timeout 配置为3s,那是否可能由于客户端连接数据库的认证超过该限制导致。

因此建议修改Router配置文件中该参数,然后运行一段时间后是否情况得到一定的改善。

后续排查往网络方向排查,简单可通过客户端长ping数据库服务端,查看网络是否存在波动现象。

TIP:

根据官方文档中介绍,还可能是由于网络或者硬件层面的问题造成这个问题。

8c9df63fd311eed3c308edbddcf1ca29.png

1. max_allowed_packet变量值太小,或者查询需要的内存比分配给mysqld的内存多。

2. 在Linux中使用以太网协议,包括半双工和全双工。一些Linux以太网驱动程序有这个bug。您应该通过在客户机和服务器机器之间使用FTP传输一个大文件来测试这个bug。如果传输以突发-暂停-突发-暂停模式进行,那么您正在经历一种Linux双工综合征。将网卡和集线器的双工模式切换到全双工或半双工模式,并测试结果以确定最佳设置。

3. 线程库中导致读取中断的问题。

4. 错误的TCP / IP配置。

5. 有故障的以太网、集线器、交换机、电缆等等。只有通过更换硬件才能正确诊断。

下面对各类Aborted connection的可能性进行一定的测试与分析:

测试环境说明:MySQL5.7

测试环境及相关参数connect_timeout10

interactive_timeout28800

wait_timeout28800

max_connections151

net_write_timeout60

net_read_timeout30

注:每次测试前均重启数据库重置状态值,方便后续比较

34bbd1f16ca6443b0184e10e807129c0.png

测试一:错误密码、错误用户

d01095953035e09fdb370b094b4f026d.png

错误用户:数据库不存在该用户。

查看数据库内状态值:

b342e476d60b1582d1ae38baf8ef68df.png

查看错误日志:

e9933b19280378c17a9c25fba8470c63.png

测试二:超时参数

当前数据库wait_timeout 及interactive_timeout均为默认的28800,下面调整这两个参数,测试对数据库连接的行为影响。

该实验同时修改两个参数为10:

c0dd8538c07e7af9768d628fb52f0b39.png

查看数据库内状态值:

65c0dbd447f8da1e1e74d6b32927e8bc.png

查看错误日志:

8f044946dd3fcec6930e40db349db20d.png

测试三:最大连接数

当前数据库max_connections参数默认为151,下面调整改参数,测试对数据库连接的行为影响。

fed7c1976ffecf6fc96979f79f797501.png

当开启第四个连接会话,报如下错误:

6d5677bcf6589f0ec26dd5933bd29132.png

查看数据库内状态值

28de01532f8115a9d84e132b2d40552b.png

此时错误日志无变化。

测试四

第三方工具SQLyog select结果没有出来的时候选择停止则出现:

c16ef7f662b329032928f1a8d950d5ab.png

查看数据库内状态值:

c00f1ebee4a4352d4ba64922511ae5db.png

此时错误日志无变化。

结论:

1.建议业务操作结束后使应用程序逻辑以正确关闭连接,以短连接替代长连接。

2.确保max_allowed_packet的值足够高,并且客户端没有收到“数据包太大”消息。

3.确保客户端应用程序不中止连接。

4.检查是否启用了skip-name-resolve,检查主机根据其IP地址而不是其主机名进行身份验证。

5.尝试增加MySQL的net_read_timeout和net_write_timeout值,看看是否减少了错误的数量。

参考文献

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

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

相关文章

html怎样将单元格的字竖式,数学竖式计算的标准格式是怎样的?需要注意哪些问题?...

小学阶段数学计算题是重中之重,也是为日后打基础的时间段,所以在小学的时候,要让孩子熟练掌握数学计算。数学计算在这段时期一般比较简单,通常情况下学生可以采用口算、心算的形式,但是有的学生因为这两个能力不强。于…

linux中安装多个mysql_liunx系统下安装多个MySql数据库并做主从配置

在网上搜索了很多资料,都没有看到像样的文档,思路不是很清晰,对第一次安装的朋友来说较为困难,经过长时间的安装尝试和查询网上零碎的知识点,终于成功的完成Linux系统下多MySql数据库安装和主从配置,现在分…

江苏省高等学校计算机一级成绩查询,江苏计算机一级考试成绩查询

想要了解江苏2020年9月计算机一级考试成绩查询入口的小伙伴快来看看吧!下面由出国留学网小编为你精心准备了“江苏2020年9月计算机一级考试成绩查询入口公布”,持续关注本站将可以持续获取更多的考试资讯!江苏2020年9月计算机一级考试成绩查询…

《树莓派实战秘籍》——1.17 技巧17添加重启按钮

本节书摘来异步社区《树莓派实战秘籍》一书中的第1章,第1.17节,作者:【美】Ruth Suehle ,Tom Callaway,更多章节内容可以访问云栖社区“异步社区”公众号查看 1.17 技巧17添加重启按钮 树莓派实战秘籍也许你已经注意到Pi缺少了某…

mysql临时关闭索引功能_MySQL优化之索引优化

$1.WHY : 找到MySQL Query执行慢的原因1.1 EXPLAIN通过Explain查看SQL Query语句的执行情况&#xff0c;从中找出导致MySQL查询性能差的原因EXPLAIN QUERY语句【字段解释】<1> id -- 表的读取顺序id相同时&#xff0c;按照从上至下的顺序执行id不同时&#xff0c;id值越…

K8S Calico

NetworkPolicy是kubernetes对pod的隔离手段&#xff0c;是宿主机上的一系列iptables规则。 Egress 表示出站流量&#xff0c;就是pod作为客户端访问外部服务&#xff0c;pod地址作为源地址。策略可以定义目标地址或者目的端口 Ingress 表示入站流量&#xff0c;pod地址和服务作…

每周总结(第十一周)

转载于:https://www.cnblogs.com/qinlihong/p/5510026.html

10个关于linux中Squid代理服务器的实用面试问答

10个关于linux中Squid代理服务器的实用面试问答 不仅是系统管理员和网络管理员时不时会听到“代理服务器”这个词&#xff0c;我们也经常听到。代理服务器已经成为一种企业常态&#xff0c;而且经常会接触到它。它现在也出现在一些小型的学校或者大型跨国公司的自助餐厅里。Squ…

北京矿大计算机考研每年分数线,2021中国矿业大学北京考研国家线公布时间_国家线是多少分...

中国矿业大学北京考研国家线怎么看&#xff1f;中国矿业大学北京考研国家线是多少分&#xff1f;山西人事考试网整理中国矿业大学北京考研考研国家线怎么看、国家线公布时间、历年中国矿业大学北京考研国家线&#xff0c;希望考生及时关注考研成绩国家线公布信息&#xff0c;为…

工厂模式-依赖倒置原则

老板&#xff1a;阿飞啊&#xff0c;我们公司最近接了个项目&#xff0c;你看着设计一下&#xff0c;我给你说下需求。项目组长阿飞&#xff1a;好啊&#xff0c;什么需求&#xff1f;老板&#xff1a;我们找了一个合作的商铺&#xff0c;他们要设计一套面包销售系统。主要功能…

(6)css盒子模型(基础下)

一、理解多个盒子模型之间的相互关系 现在大部分的网页都是很复杂的&#xff0c;原因是一个“给人用的”网页中是可能存在着大量的盒子&#xff0c;并且它们以各种关系相互影响着。 html与DOM的关系 详情了解“DOM” &#xff1a;http://baike.baidu.com/link?urlSeSj8sRDE-JZ…

easyui获取下拉框选中的文本值_Word中文本显示不全的常见3种情况及解决方法

在日常工作使用Word文档时&#xff0c;经常会遇到文本显示不全的情况&#xff0c;比如文本框或表格里的文本显示不全等情况&#xff0c;你一般是怎么操作呢&#xff1f;以下这3种常见情况你可能也遇到过&#xff0c;一起看看是什么原因并解决它们吧&#xff01;1、文本显示不全…

CSS中属性的值和单位

CSS中值的单位 1.颜色值 被各种浏览器支持&#xff0c;并且作为 CSS 规范推荐的颜色名称只有 16 种&#xff0c;如下表所示。 百分比表示 color: rgb(100%, 100%, 100%); 这个声明将红、蓝、绿 3 种原色都设置为最大值&#xff0c;结果组合显示为白色。相反&#xff0c;可以设置…

《走进SAP(第2版)》——2.8 SAP的目标是什么

本节书摘来自异步社区《走进SAP&#xff08;第2版&#xff09;》一书中的第2章&#xff0c;第2.8节,作者&#xff1a; 【德】Nancy Muir , Ian Kimbell , 等 更多章节内容可以访问云栖社区“异步社区”公众号查看。 2.8 SAP的目标是什么 走进SAP&#xff08;第2版&#xff09;…

8 包含min函数的栈

0 引言 题目&#xff1a;定义栈的数据结构&#xff0c;请在该类型中实现一个能够得到栈的最小元素的min函数。在该栈中&#xff0c;调用min、push及pop的时间复杂度都是O&#xff08;1&#xff09;. 1 抽象问题具体化 2 具体问题抽象分析 需要解决的两个主要问题如下。 &#x…

《Adobe Illustrator大师班:经典作品与完美技巧赏析》—Svetlana Makarova

本节书摘来自异步社区《Adobe Illustrator大师班&#xff1a;经典作品与完美技巧赏析》一书中的Svetlana Makarova&#xff0c;作者【英】Sharon Milne,更多章节内容可以访问云栖社区“异步社区”公众号查看。 Svetlana MakarovaAdobe Illustrator大师班&#xff1a;经典作品与…

有关软件测试的证书,软件测试证书有用吗

要想知道证书有什么用&#xff0c;我们就要详细了解软件评测师考试&#xff0c;以及拿到证书的价值。那么下面和小编来看看这篇软件测试证书有用吗&#xff0c;一定会有收获。一、证书考试软件评测师考试是全国计算机技术与软件技术资格考试的一个中级考试。考试不规定学历和资…

python D29 socketserver以及FTB

一、socketserver 基于tcp协议下的socket只能和一个客户端通信&#xff0c;如果用socketserver可以实现和多个客户端通信。 他是在socket的基础上进行封装&#xff0c;也就是说底层还是调用的socket&#xff0c;在py2.7里面叫做SocketServer也就是大写了两个S&#xff0c;在py3…

sphinx mysql存储引擎_基于Sphinx+MySQL的千万级数据全文检索(搜索引擎)架构设计...

Sphinx&#xff0c;单一索引最大可包含1亿条记录&#xff0c;在1千万条记录情况下的查询速度为0.x秒(毫秒级)。Sphinx创建索引的速度为&#xff1a;创建100万条记录的索引只需3&#xff5e;4分钟&#xff0c;创建1000万条记录的索引可以在50分钟内完成&#xff0c;而只包含最新…

4-1 线程安全性-原子性-atomic-1

转载于:https://www.cnblogs.com/ZHONGZHENHUA/p/10026627.html