项目简介
本项目以Go语言为基础,针对Unix Socket和MySQL开展研究。通过pprof分析、sysbench性能监测以及SQL耗时分析等多种手段,对MySQL在不同连接方式下的性能表现进行全面研究,探究高并发存储时MySQL的资源占用情况,为数据库操作性能优化提供数据支持与可行策略。
项目的主要特性和功能
- 多维度性能分析:实现pprof协程和堆分析、不同连接方式下MySQL性能对比、sysbench数据库性能测试以及SQL耗时分析,全面评估数据库性能。
- 数据处理性能测试:测试单任务、多协程对同表或不同表插入数据等不同并发场景下的数据处理耗时,明确性能瓶颈。
- 远程与本地性能对比:对比远程和本地连接MySQL时的处理能力,直观展现网络因素对性能的影响。
安装使用步骤
1. 环境准备
确保已安装Go语言环境和MySQL数据库。同时,根据系统类型安装sysbench:
- CentOS:
shell
curl -s https://packagecloud.io/install/repositories/akopytov/sysbench/script.rpm.sh | sudo bash
sudo yum -y install sysbench
- Ubuntu:
shell
curl -s https://packagecloud.io/install/repositories/akopytov/sysbench/script.deb.sh | sudo bash
sudo apt -y install sysbench
- macOS:
shell
brew install sysbench
2. 数据准备
创建数据库:
shell
CREATE DATABASE IF NOT EXISTS sbtest DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
准备测试数据:
```shell
HOST=10.25.10.125
LUA_FILE=/usr/local/Cellar/sysbench/1.0.20_2/share/sysbench/tests/include/oltp_legacy/oltp.lua
HOST=localhost LUA_FILE=/usr/share/sysbench/tests/include/oltp_legacy/oltp.lua
sysbench $LUA_FILE \ --mysql-host=$HOST \ --mysql-port=3306 \ --mysql-socket=/var/lib/mysql/mysql.sock \ --mysql-user=root --mysql-password=root \ --oltp-test-mode=complex --oltp-tables-count=10 \ --oltp-table-size=100000 --threads=10 --time=120 \ --report-interval=10 \ prepare ```
3. 执行测试
将测试结果导出到文件:
shell
sysbench $LUA_FILE \
--mysql-host=$HOST \
--mysql-port=3306 \
--mysql-user=root --mysql-password=root \
--oltp-test-mode=complex --oltp-tables-count=10 \
--oltp-table-size=100000 --threads=10 --time=120 \
--report-interval=10 \
run >> mysysbench.log
4. 清理数据
shell
sysbench $LUA_FILE \
--mysql-host=$HOST \
--mysql-port=3306 \
--mysql-user=root --mysql-password=root \
--oltp-test-mode=complex --oltp-tables-count=10 \
--oltp-table-size=100000 --threads=10 --time=120 \
--report-interval=10 \
cleanup
5. SQL耗时分析
在MySQL中执行以下命令开启分析:
sql
set GLOBAL profiling = on;
set profiling = on;
后续可使用show profiles;
和show profile cpu, block io for query [Query_ID];
进行具体分析。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】