6 数据库测试工具
6.1 在Linux上安装sysbench
curl -s https://packagecloud.io/install/repositories/akopytov/sysbench/script.rpm.ch | sudo bash
sudo yum -y install sysbench
sysbench --version
6.2 数据库压力测试用例
sysbench --db-driver=mysql --time=300 --thread=10 --report-interval=1 --mysql-host=127.0.0.1 --mysql-port=3306 --mysql-user=test_user --mysql-password=test_user --mysql-db=test_db --tables=20 --table_size=1000000 oltp_read_write --db-ps-mode=disable prepare
- 基于mysql驱动去连接mysql
- 连续访问300s
- 用10个线程模拟访问
- 每隔1s输出测试情况
- 数据库相关信息
- 20个测试表,每个表100万条测试数据
- 执行oltp数据库的读写测试
- 静止ps模式
6.3 数据库测试的时候注意事项
- 在机器满负荷运行条件下测出的数据,没有代表性。因为生产环境下,不能允许机器出现临界状态。
- 在测试的过程中不断增加线程数目,但是要注意机器的其他属性应该在合理范围之内。
- 总结一下,一定要在硬件合理的负载范围之下,把数据库的QPS提高到最大。这才可以得到一个相对合理的数据。而并不是追求一个极限值。
打造数据库可视化监控技术
Prometheus 和 Grafana
Prometheus是一个监控、数据采集系统。它可以利用监控数据采集组件,从我指定的mysql数据库中采集需要的监控数据。并且把监控结果保存在文件之中。
Grafana是一个可视化的监控数据展示系统。他可以把Prometheus获得的数据,自动的制作成精美的图标。
不光是数据库,对于各种Java系统和中间件系统,都可以用这一套组合去进行可视化的监控。