首页 > 数据库 >MySQL性能抖动

MySQL性能抖动

时间:2024-11-06 20:31:28浏览次数:1  
标签:抖动 性能 刷脏页 内存 MySQL 磁盘 脏页

当内存数据页跟磁盘数据页内容不一致的时,称这个内存页为“脏页”。内存数据写入磁盘后,内存和磁盘上的数据页的内容就一致了,称为“干净页”。

平时执行很快的更新操作,就是在写内存和日志,而MySQL偶尔抖一下,可能是在刷脏页。

刷脏页的时机

  • redo log 写满了,数据库停止所有更新操作,将 check point 往前推进
  • 内存不够用,淘汰数据页时,如何数据页是脏页,需要将脏页写到磁盘
  • 后台定时刷脏页
  • MySQL 正常关闭时,将脏页写到磁盘

以下情况会影响性能:

  • 第一种情况,日志写满,更新全部堵住,写性能跌为0
  • 第二种情况,一个查询要淘汰的脏页个数太多,回导致查询时间变长

InnoDB 脏页控制策略

磁盘性能 innodb_io_capacit

fio -filename=$filename -direct=1 -iodepth 1 -thread -rw=randrw -ioengine=psync -bs=16k -size=500M -numjobs=10 -runtime=10 -group_reporting -name=mytest

脏页比例上限 innodb_max_dirty_pages_pct,默认 75%。

InnoDB 根据脏页比例和 redo log 空闲比例计算出两个值,取其中最大值,结合磁盘性能控制刷脏页速度。

innodb_flush_neighbors 刷脏页的连坐机制(SSD磁盘建议关闭)

标签:抖动,性能,刷脏页,内存,MySQL,磁盘,脏页
From: https://www.cnblogs.com/liaozibo/p/18530984

相关文章

  • MySQL 删除数据 批量删除(大量)数据
    目录一、删除大表的部分数据二、删除带索引的表三、MySQL中的表的删除操作一、删除大表的部分数据一个表有1亿6000万的数据,有一个自增ID。最大值就是1亿6000万,需要删除大于250万以后的数据,有什么办法可以快速删除?看到mysql文档有一种解决方案:http://dev.mysql.com/doc......
  • MySQL 字符串索引和前缀索引
    前缀索引创建前缀索引altertabletaddindexidx_email(email);altertabletaddindexidx_email(email(6));使用前缀索引,定义好长度,可以做到即节省空间,又不用额外增加太多查询成本。区分度建立索引时,区分度(不重复的值)越高越好。selectcount(distanceemail)fromt......
  • .NET 8 高性能跨平台图像处理库 ImageSharp
    合集-.NET开源项目(27) 1.推荐一款界面优雅、功能强大的.NET+Vue权限管理系统08-052..NET开源权限认证项目MiniAuth上线08-063..NET与LayUI实现高效敏捷开发框架08-084..NET8+Blazor多租户、模块化、DDD框架、开箱即用08-095.推荐一个优秀的.NETMAUI组件......
  • centos7安装mysql80
    安装1.添加MySQL8.0的官方YUM仓库MySQL8.0没有默认包含在CentOS7的官方仓库中,因此需要手动添加MySQL的官方仓库。yuminstallwget-ywgethttps://dev.mysql.com/get/mysql80-community-release-el7-11.noarch.rpmrpm-ivhmysql80-community-release-el7-11.n......
  • mysql5安全审计
    安装插件插件需要严格与数据库版本适配,不然安装过程中会出现问题解压插件cd插件所在路径unzipaudit-plugin-mysql-5.7-1.1.7-921-linux-x86_64.zip#查看mysql默认插件目录mysql>SHOWGLOBALVARIABLESLIKE'plugin_dir';#将插件移动到mysql默认插件目录下cp......
  • mysql 连接查询之内连接、外连接 代码示例
    mysql连接查询可以分为内连接与外连接,外连接又分为左外连接和右外连接,左外连接可以简称为左连接,右外连接可以简称为右连接表数据如下学生表:student学生课程:student_course内连接:将两表满足条件的记录进行笛卡尔乘积--以下3个查询等效,均为内连接select*fromstudentinn......
  • mysql根据一个表的数据更新另一个表数据的SQL写法
    ql中更新表数据的通用方法包括:使用join语句,匹配两个表并更新目标表的指定列;使用子查询,获取源表中匹配行的值并更新目标表;使用merge语句(mysql8.0及更高版本),合并两个表并按条件更新或插入数据。 根据一个表的数据更新另一个表数据的SQL写法最近大家都在看MySQLupda......
  • 安卓端和鸿蒙性能测试环境脚本-sh+python
    背景:做安卓和鸿蒙性能测试,需要搭建环境,把常用的几个pip包和虚拟环境等记录一下,在新的电脑上可以快速安装(仅作为个人记录)准备工作mac电脑python版本>=3.7.9sh脚本#!/usr/local/bin/bash##########################################################################Fil......
  • RK3588嵌入式主板赋能无人机,开启高性能航拍新时代
    随着科技的飞速发展,无人机(UAV)作为现代科技的重要成果,已经从最初的军事领域逐步渗透到民用市场的各个角落。从热门的电子消费品到影视拍摄的得力助手,再到灾害救援、环保检测、电力巡检及农业生产等多领域的关键工具,无人机的应用领域日益广泛,市场需求也持续攀升。特别是在追求智......
  • 在 Windows Server 2025 中,默认情况下,操作系统会为共享资源(如文件共享和打印共享)设置
    在WindowsServer2025中,默认情况下,操作系统会为共享资源(如文件共享和打印共享)设置一个最大并发连接数限制。这通常是出于系统性能和稳定性的考虑。在一些版本的WindowsServer中,您可能会看到类似于167772这样的默认限制,这个值通常对应于可同时连接到共享资源的用户数量......