MySql 配置优化
优化思路
针对MySQL优化,无非是涉及到内存、IO、CPU的优化,该文档将依次从这三个方面来介绍。
问题定位
如何定位是内存、IO、CPU当中的哪一个环节的问题。可以参考如下步骤:
- 使用
top
命令查看MySQL
进程的CPU及内存使用情况。如果内存占用低,可以考虑进行内存参数优化;如果CPU使用率低,可以考虑进行CPU参数优化。 - 使用
iotop
或者iostat
分析磁盘IO。关键考虑数据吞吐量和IOPS两个参数,如果吞吐量和IOPS过低,则需要进行磁盘参数优化。数据吞吐量可以通过iotop
查看,IOPS可以通过fio
测试得出。
使用iotop
查看磁盘读写最大的进程yum install iotop -y iotop
使用
iostat
分析磁盘IO占用yum install sysstat -y iostat -x -m -d 2 10
使用
fio
进行磁盘IOPS测试。注意:命令中的/tmp/iotest
需要改为MySQL数据文件所在的磁盘yum install fio -y fio -name=randread-4K -rw=randrw -rwmixwrite=50 -bs=4K -filename=/tmp/iotest -size=1G -iodepth=32 -ioengine=libaio -direct=1 -runtime=100 -invalidate=1 -time_based rm -rf /tmp/iotest
如上图所示,系统总IOPS为read(35.9k)+write(35.9k)=total(71.8k),即总IOPS为70000左右。系统总吞吐量为read(140MB)+write(140MB)=total(140MB),即总吞吐量为280MB左右。
内存优化
在常见的内存优化场景中,一般会涉及到内存大小设置及缓存命中率的问题。 一般的优化方式有:
innodb_buffer_pool_size
优化。Mysql优化之innodb_buffer_pool_size篇(opens new window)
磁盘优化
在常见的磁盘优化场景中,一般会涉及到MySQL磁盘IOPS设置的问题。 一般的优化方式有:
innodb_io_capacity
优化。mysql 参数调优(6)之磁盘IO性能相关的innodb_io_capacity_max 和innodb_io_capacity(opens new window)
CPU优化
在常见的磁盘优化场景中,一般会涉及到MySQL读写线程设置的问题。 一般的优化方式有:
innodb_read_io_threads
及innodb_read_io_threads
优化。MySQL 8.0.16 调优指南(鲲鹏920)(opens new window)
配置文件示例
以下配置适用于16核16GB内存,IOPS约为30000的服务器,单独部署MySQL的情况。
[mysqld]
#
# Remove leading # and set to the amount of RAM for the most important data
# cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%.
innodb_buffer_pool_size = 12G
#
# Remove the leading "# " to disable binary logging
# Binary logging captures changes between backups and is enabled by
# default. It's default setting is log_bin=binlog
disable_log_bin
#
# Remove leading # to set options mainly useful for reporting servers.
# The server defaults are faster for transactions and fast SELECTs.
# Adjust sizes as needed, experiment to find the optimal values.
join_buffer_size = 1G
sort_buffer_size = 200M
read_rnd_buffer_size = 200Mdefault-authentication-plugin=mysql_native_passwordsocket=/var/lib/mysql/mysql.sockmax_connections=1200
wait_timeout=1800
interactive_timeout=7200log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTIONskip_log_bin
innodb_read_io_threads=8
innodb_write_io_threads=8
innodb_io_capacity=15000
innodb_io_capacity_max=30000
MySql 配置优化相关推荐
- Mysql性能优化、Mysql参数优化、Mysql配置优化
码字不易,转载请附原链,搬砖繁忙回复不及时见谅,技术交流请加QQ群:909211071 Mysql性能优化.Mysql参数优化.Mysql配置优化.Mysql参数优化对于不同的网站,及在线量等,以及机 ...
- 4G内存服务器的MySQL配置优化
公司网站访问量越来越大(日均超10万PV),MySQL自然成为瓶颈,关于 MySQL 的优化,最基本的是 MySQL 系统参数的优化. MySQL对于web架构性能的影响最大,也是关键的核心部分.My ...
- Mysql配置优化浅谈
安装MySQL后,配置文件my.cnf在MySQL安装目录/share/mysql目录中,该目录中还包含多个配置文件可供参考,有my-large.cnf ,my-huge.cnf, my-mediu ...
- phpcms mysql debug_phpcms教程之mysql配置优化
1.页面缓存功能: 页面缓存功能降低MySQL的资源消耗的(系统本身就已经考虑,采用生成HTML页面,大大降低了数据库的压力). 2.mysql服务器的优化 2.1.修改全站搜索 修改my.ini(m ...
- mysql配置优化查询缓存_MySQL优化(4):查询缓存
查询缓存: MySQL提供的数据缓存QueryCache,用于缓存SELECT查询的结果 默认不开启,需要在配置文件中开启缓存(my.ini/my.cnf) 在[mysqld]段中,修改query_c ...
- mysql配置优化ya_mysql性能调优工具之mytop
Mysql性能调优工具之mytop的安装和使用 1.mytop的下载地址 2.首先安装mytop必要的组件. yum -y install perl-DBD-MySQL perl-DBIperl-Te ...
- druid mysql 配置优化_数据库连接池优化配置(druid,dbcp,c3p0)
考虑因素 1:当前连接DB的规模 2:并发情况 3:执行db的响应时间 配置考虑 1:初始化连接:可考虑设置为3个连接 .对于db规模特别大的情况下可考虑设置为1个.避免启动时间过长: 2:最小连 ...
- mysql 提高电脑配置_Mysql配置优化浅谈
Mysql配置优化浅谈安装MySQL后,配置文件my.cnf在MySQL 安装目录/share/mysql目录中,该目录中还包含多个配置文件可供参考,有my-large.cnf ,my-huge.cn ...
- MySQL数据库性能优化由浅入深(表设计、慢查询、SQL索引优化、Explain分析、Show Profile分析、配置优化)
文章目录 0 SQL性能分析 1 表的设计合理化 1.1 为什么需要范式 1.2 三范式原理 1.3 什么样的表才满足三范式 2 慢查询 2.1 慢查询介绍 2.2 慢查询步骤 3 添加适当索引 3. ...
最新文章
- 水杯测试----误人子弟啊!
- android api在线文档_通过 API 远程管理 Jenkins
- Azure上用API成功创建Lambda Function的截图
- C++中类和对象的一些注意事项
- log4j配置时的位置问题
- ISTQB 软件测试资质认证
- 魅族内斗;中兴危机;阿里百度要回 A 股 | CSDN极客头条
- 基于STM32的电池管理系统触摸屏设计方案
- Windows下安装pip
- 金融信息化及交易管理系统(股票交易系统APP)
- OpenCV基础——threshold函数的使用
- tumblr图片批量下载
- 中国游戏产业的多事之秋
- 18数藏,太一捡漏,抢购,
- Python Spider入门
- CSS( Cascading Style Sheets )简书
- 小游戏《别踩白块》-第十一个程序20200625
- 定义char dog[]=wang\0miao;那么sizeof(dog)与strlen(dog)分别是多少:
- 希腊神话、罗马神话与中国神话人物大比拼
- 【C语言】如何理解【void(*)(void)】