面试题答案
一键面试读密集型负载模拟
- 使用sysbench:
- 安装sysbench:如果是基于Debian或Ubuntu系统,可以使用
sudo apt - get install sysbench
;对于CentOS系统,可通过EPEL源安装,如sudo yum install sysbench
。 - 准备测试数据:
其中sysbench /usr/share/sysbench/oltp_read_only.lua \ --mysql - host = 127.0.0.1 \ --mysql - port = 3306 \ --mysql - user = root \ --mysql - password = password \ --table - size = 100000 \ --tables = 10 \ prepare
--table - size
指定每张表的行数,--tables
指定表的数量。 - 执行测试:
关键参数设置:sysbench /usr/share/sysbench/oltp_read_only.lua \ --mysql - host = 127.0.0.1 \ --mysql - port = 3306 \ --mysql - user = root \ --mysql - password = password \ --threads = 10 \ --time = 60 \ run
--threads
:指定并发线程数,模拟不同程度的并发读操作。数值越大,并发读压力越大。--time
:设定测试持续时间,单位为秒。决定了读密集型负载的持续时长。
- 安装sysbench:如果是基于Debian或Ubuntu系统,可以使用
写密集型负载模拟
- 使用sysbench:
- 准备测试数据:
sysbench /usr/share/sysbench/oltp_write_only.lua \ --mysql - host = 127.0.0.1 \ --mysql - port = 3306 \ --mysql - user = root \ --mysql - password = password \ --table - size = 100000 \ --tables = 10 \ prepare
- 执行测试:
关键参数设置:sysbench /usr/share/sysbench/oltp_write_only.lua \ --mysql - host = 127.0.0.1 \ --mysql - port = 3306 \ --mysql - user = root \ --mysql - password = password \ --threads = 10 \ --time = 60 \ run
--threads
:与读密集型类似,控制并发写操作的线程数,影响写操作的并发压力。--time
:设定写密集型负载的持续时间。
- 准备测试数据:
混合读写型负载模拟
- 使用sysbench:
- 准备测试数据:
sysbench /usr/share/sysbench/oltp.lua \ --mysql - host = 127.0.0.1 \ --mysql - port = 3306 \ --mysql - user = root \ --mysql - password = password \ --table - size = 100000 \ --tables = 10 \ prepare
- 执行测试:
关键参数设置:sysbench /usr/share/sysbench/oltp.lua \ --mysql - host = 127.0.0.1 \ --mysql - port = 3306 \ --mysql - user = root \ --mysql - password = password \ --threads = 10 \ --time = 60 \ run
--threads
:控制混合读写操作的并发线程数,影响整体负载压力。--time
:设定混合读写负载的持续时长。此外,在oltp.lua
脚本中可以通过修改--oltp - read - write - ratio
参数来调整读写比例,默认是80:20(读:写) ,比如设置--oltp - read - write - ratio = 50:50
可使读写操作更均衡。
- 准备测试数据: