阿里云 2C4G mysql压测?

在阿里云上使用 2核4G(2C4G)的服务器部署 MySQL 并进行压测,是一种常见的性能测试方式。下面我将从以下几个方面来帮助你完成这项工作:


一、准备工作

1. 环境准备

  • 服务器配置:ECS 实例(2C4G)
  • 操作系统:建议 CentOS / Ubuntu / Alibaba Cloud Linux
  • MySQL 版本:推荐 5.7 或 8.0(根据项目需求选择)
  • 数据库引擎:InnoDB(默认)

2. 安装 MySQL

你可以通过 yum/apt 包管理器安装,或者使用 Docker 部署。

示例(CentOS 下安装 MySQL 8.0):

sudo rpm -Uvh https://dev.mysql.com/get/mysql80-community-release-el7-7.noarch.rpm
sudo yum install mysql-community-server
sudo systemctl start mysqld
sudo systemctl enable mysqld

首次启动后,获取临时密码:

grep 'temporary password' /var/log/mysqld.log

登录并修改密码:

mysql -uroot -p
ALTER USER 'root'@'localhost' IDENTIFIED BY 'YourNewPass';

二、压测工具选择

常用的 MySQL 压测工具有:

工具 描述
sysbench 最常用,功能强大,支持 OLTP 测试
mysqlslap MySQL 自带,简单易用
JMeter 可以模拟复杂业务逻辑
HammerDB 支持 GUI,适合企业级测试

这里我们以 sysbench 为例进行演示。


三、使用 sysbench 进行压测

1. 安装 sysbench

# CentOS/RHEL
sudo yum install sysbench

# Ubuntu/Debian
sudo apt-get install sysbench

2. 初始化测试数据库和表

创建测试库:

CREATE DATABASE sbtest;

准备数据(例如生成 10 张表,每张表 100,000 条记录):

sysbench 
  --db-driver=mysql 
  --mysql-host=127.0.0.1 
  --mysql-port=3306 
  --mysql-user=root 
  --mysql-password='YourPass' 
  --mysql-db=sbtest 
  --tables=10 
  --table-size=100000 
  oltp_common 
  prepare

3. 执行压测

执行读写混合测试(比如运行 60 秒):

sysbench 
  --db-driver=mysql 
  --mysql-host=127.0.0.1 
  --mysql-port=3306 
  --mysql-user=root 
  --mysql-password='YourPass' 
  --mysql-db=sbtest 
  --threads=16 
  --time=60 
  --report-interval=10 
  oltp_read_write 
  run

4. 清理测试数据

sysbench 
  --db-driver=mysql 
  --mysql-host=127.0.0.1 
  --mysql-port=3306 
  --mysql-user=root 
  --mysql-password='YourPass' 
  --mysql-db=sbtest 
  oltp_common 
  cleanup

四、优化与调参建议(针对 2C4G)

由于资源有限,建议调整以下参数以提升性能:

1. 修改 MySQL 配置文件 /etc/my.cnf

[mysqld]
innodb_buffer_pool_size = 1G
innodb_log_file_size = 256M
max_connections = 100
query_cache_type = 0
query_cache_size = 0
tmp_table_size = 64M
max_allowed_packet = 64M
thread_cache_size = 8
table_open_cache = 200
innodb_flush_log_at_trx_commit = 2

重启 MySQL 生效:

sudo systemctl restart mysqld

2. 监控系统资源

使用 tophtopiotopvmstatsar 等工具监控 CPU、内存、磁盘 I/O 使用情况。


五、压测结果分析(关键指标)

指标 说明
TPS Transactions per second
QPS Queries per second
Latency 请求延迟(平均、95%、最大)
Threads 并发线程数
CPU/Mem 使用率 资源瓶颈判断依据

六、扩展建议

  • 如果 2C4G 性能不足,可升级 ECS 规格(如 4C8G、8C16G)
  • 使用 RDS MySQL 替代自建数据库,更稳定可靠
  • 结合云监控服务查看实时性能数据(阿里云监控平台)
  • 使用缓存(Redis)降低数据库压力

七、常见问题排查

  • 连接超时:检查防火墙、端口开放(3306)、max_connections 设置
  • 慢查询:开启慢查询日志,优化 SQL
  • OOM 内存溢出:调整 innodb_buffer_pool_size
  • IO 瓶颈:考虑 SSD 磁盘或更高 IO 性能的实例类型

如果你提供具体的压测目标(如并发用户数、QPS 目标等),我可以进一步给出定制化的压测脚本和优化建议。

是否需要我为你生成一个完整的 sysbench 脚本?

未经允许不得转载:CLOUD技术博 » 阿里云 2C4G mysql压测?