[mysql]-linux参数调优

本文深入探讨了MySQL服务器性能优化的关键配置参数,如read_buffer_size、thread_cache_size、innodb_flush_log_at_trx_commit等,解释了它们如何影响数据库性能,并提供了具体的优化建议。

whereis my.conf

read_buffer_size = 2M
MySQL读入缓冲区大小。
对表进行顺序扫描的请求将分配一个读入缓冲区,
MySQL会为它分配一段内存缓冲区。
read_buffer_size变量控制这一缓冲区的大小。
如果对表的顺序扫描请求非常频繁,
并且你认为频繁扫描进行得太慢,
可以通过增加该变量值以及内存缓冲区大小提高其性能

thread_cache_size = 8

这个值(默认8)表示可以重新利用保存在缓存中线程的数量,
当断开连接时如果缓存中还有空间,那么客户端的线程将被放到缓存中,
如果线程重新被请求,那么请求将从缓存中读取,如果缓存中是空的或者是新的请求,那么这个线程将被重新创建,如果有很多新的线程,
增加这个值可以改善系统性能.通过比较Connections和Threads_created状态的变量,可以看到这个变量的作用。(–>表示要调整的值)
根据物理内存设置规则如下:
1G —> 8
2G —> 16
3G —> 32
大于3G —> 64

innodb_flush_log_at_trx_commit = 2

0:如果innodb_flush_log_at_trx_commit的值为0,log buffer每秒就会被刷写日志文件到磁盘,提交事务的时候不做任何操作(执行是由mysql的master thread线程来执行的。
主线程中每秒会将重做日志缓冲写入磁盘的重做日志文件(REDO LOG)中。不论事务是否已经提交)默认的日志文件是ib_logfile0,ib_logfile1
1:当设为默认值1的时候,每次提交事务的时候,都会将log buffer刷写到日志。
2:如果设为2,每次提交事务都会写日志,但并不会执行刷的操作。每秒定时会刷到日志文件。要注意的是,并不能保证100%每秒一定都会刷到磁盘,这要取决于进程的调度。
每次事务提交的时候将数据写入事务日志,而这里的写入仅是调用了文件系统的写入操作,而文件系统是有 缓存的,所以这个写入并不能保证数据已经写入到物理磁盘
默认值1是为了保证完整的ACID。当然,你可以将这个配置项设为1以外的值来换取更高的性能,但是在系统崩溃的时候,你将会丢失1秒的数据。
设为0的话,mysqld进程崩溃的时候,就会丢失最后1秒的事务。设为2,只有在操作系统崩溃或者断电的时候才会丢失最后1秒的数据。InnoDB在做恢复的时候会忽略这个值。
设为1当然是最安全的,但性能页是最差的(相对其他两个参数而言,但不是不能接受)。如果对数据一致性和完整性要求不高,完全可以设为2,如果只最求性能,例如高并发写的日志服务器,设为0来获得更高性能

innodb_log_buffer_size = 2M

此参数确定些日志文件所用的内存大小,以M为单位。缓冲区更大能提高性能,但意外的故障将会丢失数据。MySQL开发人员建议设置为1-8M之间

innodb_log_file_size = 32M

此参数确定数据日志文件的大小,更大的设置可以提高性能,但也会增加恢复故障数据库所需的时间

innodb_log_files_in_group = 3

为提高性能,MySQL可以以循环方式将日志文件写到多个文件。推荐设置为3

https://www.cnblogs.com/lyq863987322/p/8074749.html

由于没有提供具体的引用内容,以下是一般情况下a - tune智能MySQL的大致步骤: ### 安装和配置a - tune 首先需要在系统上安装a - tune。以常见的Linux系统为例,使用包管理器进行安装。 ```bash # 以yum为例 yum install a - tune ``` 安装完成后,启动a - tune服务并设置为开机自启。 ```bash systemctl start a - tune systemctl enable a - tune ``` ### 配置MySQL环境 确保MySQL服务已经正常安装和运行。可以通过以下命令检查MySQL服务状态: ```bash systemctl status mysqld ``` 如果MySQL未启动,使用以下命令启动: ```bash systemctl start mysqld ``` ### 配置a - tune策略 a - tune通过策略文件来定义规则。创建一个针对MySQL的策略文件,例如`mysql_tuning.yaml`,示例内容如下: ```yaml version: "1" profile: - guided: - name: "mysql_tuning" settings: - subsystem: "mysql" parameters: - key: "innodb_buffer_pool_size" value: "auto" - key: "max_connections" value: "auto" ``` 这个策略文件中,设置了`innodb_buffer_pool_size`和`max_connections`为自动。 ### 启动 使用a - tune命令启动针对MySQL: ```bash a - tune -c mysql_tuning.yaml ``` a - tune会根据策略文件对MySQL进行,过程中会不断参数并监测性能指标。 ### 监控过程 可以使用a - tune提供的命令来监控过程和结果: ```bash a - tune -s ``` 该命令可以查看当前的状态和相关信息。 ### 应用结果 完成后,a - tune会将化后的参数应用到MySQL配置中。可以通过查看MySQL配置文件确认参数是否已经更新。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值