数据库运行一段时间后,经常导致服务器大量的swap,我怀疑是innodb中的脏数据太多了,因为没有free

space了,mysql通知OS,把一些脏页交换出去,以上只是猜测。有一个现象是每次关数据库时都要关很久,并且在关数据库时,发现有大量的swap

in。如果是数据库进程异常关闭,打开数据库又会花很长的时间来作恢复。我想提高一下mysql检查点发生的频率。看了Adaptive

checkpointing,发现mysql检查点事件受两个因素的制约:一个是amount,另外一个是age.amount主要由

innodb_max_dirty_pages_pct参数控制;至于age,主要是由日志文件大小有关。因为修改日志文件大小,要重启数据库,所以没有

做这个尝试;于是尝试修改innodb_max_dirty_pages_pct参数。

查看当前innodb_max_dirty_pages_pct参数的值:

mysql> show variables like

'%pct%';

+----------------------------+-------+

| Variable_name       | Value |

+----------------------------+-------+

| innodb_max_dirty_pages_pct | 90  |

+----------------------------+-------+

1 row in set (0.00 sec)

查看当前的检查点位置(对于如何获取此信息,花了比较多的时间,才找到此方法)

show innodb status\G;

LOG

---

Log sequence number 16 881655880

Log flushed up to  16

881649862

Last checkpoint at 16 546135914

我们可以看到检查点与log sequence number,Log flushed up to都有相当大的差距。

----------------------

BUFFER POOL AND MEMORY

----------------------

Total memory allocated 19338953832; in additional pool allocated

13600768

Buffer pool size  1048576

Free buffers    17666

Database pages   1009478

Modified db pages 204553

修改的页占到整个数据库buffer

pool页将近20%,大小为204553*16k/1024=3.196G,有这么多的脏数据没有写到数据文件。如果此时关闭数据库,必然要花很长的时

间。如果数据库服务器因为掉电或者mysqld进程异常中断,那么打开,恢复的时间也会很长。

在咨询mysql界的朋友后,大家对innodb_max_dirty_pages_pct基本上也是采用默认值,不过,觉得这个方向是对的,就开

始一步步调此参数。因为脏页占整个pool的20%,所以直接将此参数从90调到20.反复执行命令show innodb

status\G;发现检查点仍然增长缓慢。过了一会儿,发现系统并无任何异常之处,继续调低此参数到15,此时间发现脏页Modified

db pages减少下来,检查点增长稍微快一点。最终综合考虑缓存大小,把此参数设为5.

mysql> set global

innodb_max_dirty_pages_pct=5;

Query OK, 0 rows affected (0.00 sec)

---

LOG

---

Log sequence number 16 1160564756

Log flushed up to  16

1160560077

Last checkpoint at 16

1037968260  --检查点追上来了

----------------------

BUFFER POOL AND MEMORY

----------------------

Total memory allocated 19338952464; in additional pool allocated

15022080

Buffer pool size  1048576

Free buffers    5291

Database pages   1021765

Modified db pages 61626     --这个值从204553快速下降

情况如自己预计的那样,脏页迅速减少,检查点追上来了。使用mysql的朋友,对于mysql服务器的交换,一直都采用直接关闭swap的做法。不

知道使用此方法,即提高检查点发生的频率,减少脏页数量,能否解决我们常见的mysql交换问题呢?让我们试目以待吧。过一段时间,再把结果发上来。

mysql的检查点_转载一篇关于mysql检查点的文章相关推荐

  1. linux mysql清除缓存_转载-清除Linux中MySQL的使用痕迹~/.mysql_history

    背景:我们在管理MySQL server的时候,常常使用mysql命令行工具连接MySQL server进行操作,此时我们可以像shell命令行一样,按向上的方向键, mysql会给出我们最近执行的S ...

  2. kali mysql停止服务器_第 2 篇 MySQL 安装

    上一篇我们了解了什么是 MySQL 数据库.本文介绍如何在 Windows 平台使用 MySQL Installer 工具安装 MySQL 数据库服务器以及各种组件. 下载 MySQL Install ...

  3. php mysql安装配置_转载:PHP,MySQL的安装与配置

    一.安装配置PHP 把php.ini-production另存为php.ini.修改其内容: 1)extension_dir = "D:/php-5.4.45/ext"设置指定的扩 ...

  4. 易语言执行mysql命令行_易语言教程之MySQL[3]执行SQL语句

    连接MySQL服务器后,接着就可以做点实际的操作了,比如读取记录,插入记录,修改记录等.操作MySQL有2种方法,本集讲的是第一种,适合懂MySQL语句的人,方便,学习成本低,效率高.但不懂MySQL ...

  5. mysql nb3 备份_第四节:MySQL的备份和恢复详解

    一. 简介 1. 备份分类 备份类型可以分为物理备份和逻辑备份两种. (1). 物理备份:是指通过拷贝数据库文件的方式完成备份,这种备份方式适用于数据库很大,数据重要且需要快速恢复的数据库. (2). ...

  6. mysql 添加分区_创建,增加,删除mysql表分区

    1.测试添加分区和删除分区 ###添加删除range分区 (1)创建一个分区: CREATE TABLE titles ( emp_no      INT NOT NULL, title        ...

  7. 新的mysql如何使用_如何使用新的MySQL更新日志

    使用新的MySQL更新日志的方法未必人人都会,下面就教您如何使用新的MySQL更新日志的方法,希望对您能够有所帮助.如果你只使用一 使用新的MySQL更新日志的方法未必人人都会,下面就教您如何使用新的 ...

  8. 阿里云rds for mysql平台介绍_阿里云RDS for MySQL 快速入门——笔记

    1初始化配置 1.1设置白名单 创建RDS实例后,需要设置RDS实例的白名单,以允许外部设备访问该RDS实例.默认的白名单只包含默认IP地址127.0.0.1,表示任何设备均无法访问该RDS实例. 设 ...

  9. mysql获取时间戳_服了!阿里Mysql三位封神专家总结1200多页性能优化的千金良方...

    MYSQL(关系型数据库管理系统) MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,属于 Oracle 旗下产品.MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应 ...

最新文章

  1. 武汉网络推广优化中网站关键词如何更合理布局分布?
  2. rinetd 做端口转发
  3. 如何把一些不同类型的数据混合存入一片内存中_如何从技术上增强以太坊的隐私性?...
  4. 华为服务器双系统教程,服务器上安装双系统
  5. mysql中文注入_SQL注入之Mysql报错注入
  6. 2021快手服饰行业数据价值报告
  7. 如何打造高质量的SSP广告引擎(内部干货分享)
  8. mysql常用系统函数归类
  9. sonar扫描java、js、jsp技术
  10. matlab复杂网络仿真,matlab在复杂网络上的应用
  11. 基于mpvue的toast组件
  12. 如何将html转换成url,HTML URL
  13. Node.js学习笔记(五)——WebSocket
  14. java实时汇率的接口_基于JAVA的汇率换算接口调用代码实例
  15. c语言文件中获取单词,从文本文件中读取单个单词并翻译 - C
  16. NRF24L01 无线模块
  17. 使用java编写中国象棋(内含源代码)
  18. 小蓝本 第一本《因式分解技巧》 第一章 提公因式 笔记(第一天)
  19. Java基本控制流程的理解之输出三角形和乘法表
  20. C#实现土豆优酷等网站视频的缩略图

热门文章

  1. 【推荐】ZendStudio 5.5.1 开发调试(Debug)配置说明
  2. Linux基础操作优化
  3. iOS高级教程:处理1000张图片的内存优化
  4. Supervisor行为分析和实践
  5. 端口聚合有哪几种方式?
  6. Javascript 评估用户输入密码的强度
  7. golang map 删除 清空
  8. tomcat 启动报栈溢出 解决方法
  9. python pip升级 指向不同python版本
  10. metasploit 模块和位置