| 语言 | 格式 | 评分 |
|---|---|---|
中文(简体) | .pdf | 3 |
| 摘要 | ||
本文档主要介绍了MySQL 8.0.17在openEuler 20.09系统下的调优方法,包括缓存参数调优、内核优化、网络参数调优、IO参数调优以及mysql进程绑核等内容。文档详细说明了通过调整Linux系统参数、优化内核配置、设置网络和IO调度参数,以提升服务器性能的方法。同时,还提供了BIOS配置优化和硬件调优的建议,旨在帮助用户更好地优化MySQL数据库性能。 | ||
| AI总结 | ||
### MySQL 8.0.17 调优指南(openEuler 20.09)总结
#### 1. MySQL 介绍
- MySQL 是一个关系型数据库管理系统,由瑞典MySQL AB公司开发,现属于Oracle旗下。
- MySQL 是目前最流行的Web应用数据库之一,支持标准化SQL语言,提供社区版和商业版。
- 其体积小、速度快、成本低,适合中小型网站。
---
#### 2. 调优原则
- **全面分析**:系统性能瓶颈可能是多方面(硬件、操作系统、数据库等)导致,需综合分析。
- **单参数调整**:每次只调整一个参数,便于分析影响。
- **工具影响**:性能分析工具本身会占用资源,需注意其对系统的影响。
- **正确性优先**:调优需确保程序运行正确,不能牺牲代码的可读性和可维护性。
- **迭代优化**:调优结果需反馈到后续开发中,逐步优化。
---
#### 3. 调优思路
- 定位性能瓶颈:从网络、硬件、操作系统、数据库到应用程序逐步排查。
- 分析关键指标:CPU、内存、磁盘I/O、网络I/O、等待事件、内存命中率等。
- 优化方法:根据瓶颈问题,调整硬件配置、操作系统参数或数据库配置。
---
#### 4. 操作系统调优
##### 4.1 网络参数调优
- **net.core.wmem_max**:发送套接字缓冲区大小,默认229376,建议调整为16777216。
```bash
echo 16777216 > /proc/sys/net/core/wmem_max
```
- **net.ipv4.tcp_rmem**:发送套接字缓冲区大小,默认4096 87380 16777216,建议调整为4096 87380 16777216。
```bash
echo "4096 87380 16777216" > /proc/sys/net/ipv4/tcp_rmem
```
- **net.ipv4.tcp_wmem**:写缓冲区大小,默认4096 16384 4194304,建议调整为4096 65536 16777216。
```bash
echo "4096 65536 16777216" > /proc/sys/net/ipv4/tcp_wmem
```
- **net.ipv4.tcp_max_syn_backlog**:最大TIME_WAIT套接字数量,默认2048,建议调整为360000。
```bash
echo 360000 > /proc/sys/net/ipv4/tcp_max_syn_backlog
```
##### 4.2 IO 参数调优
- **IO调度算法**:设置为`deadline`或`noop`,适用于MySQL场景。
```bash
echo deadline > /sys/block/$device/queue/scheduler
```
- **提升磁盘吞吐量**:调整`nr_requests`值,建议设置为2048。
```bash
echo 2048 > /sys/block/$device/queue/nr_requests
```
##### 4.3 缓存参数调优
- **swappiness**:值越小,越优先使用内存。建议设置为1。
```bash
echo 1 > /proc/sys/vm/swappiness
```
- **dirty_ratio**:内存脏数据百分比,默认20%,建议调整为5%。
```bash
echo 5 > /proc/sys/vm/dirty_ratio
```
##### 4.4 内核优化
- **关闭refcount_full**:在内核配置中关闭该功能。
- **idle_balance特性**:新增STEAL流程,简化判断逻辑,提升CPU利用率。
- **开启sched_steal_node_limit**:在GRUB配置中添加参数`sched_steal_node_limit=8`,重启生效。
```bash
echo STEAL > /sys/kernel/debug/sched_features
```
##### 4.5 MySQL 进程绑核
- 将MySQL进程绑定到指定CPU,并启用内存交错模式。
```bash
numactl -C 0-92 -i 0-3 /usr/local/mysql/bin/mysqld --defaults-file=/etc/my.cnf &
```
---
#### 5. 硬件调优
##### 5.1 BIOS 配置
- **关闭SMMU**:在非虚拟化场景下关闭SMMU。
- **关闭CPU预取**:在BIOS中设置`CPU Prefetching Configuration`为`Disabled`。
---
#### 6. 总结
- 通过操作系统、硬件和数据库的综合调优,可以显著提升MySQL性能。
- 调整参数时需注意系统稳定性,建议在测试环境中验证后再生产环境应用。 | ||
P1
P2
P3
P4
P5
P6
P7
P8
P9
P10
P11
下载文档到本地,方便使用
文档评分














MySQL 8.0.17 调优指南(openEuler 20.09)
谈谈MYSQL那点事