数据库压测(sysbench)及服务器和MySQL数据库监控(Prometheus + Grafana)

数据库压测(sysbench)及服务器和MySQL数据库监控(Prometheus + Grafana)

服务器系统IP部署软件
CentOS 5.7192.168.157.137MySQL,node_exporter,mysqld_exporter
CentOS 5.7192.168.157.141Grafana + Prometheus

CentOS 5.7 安装MySQL 5.7

https://blog.csdn.net/li1325169021/article/details/121515102

sysbench数据库压测工具

curl -s https://packagecloud.io/install/repositories/akopytov/sysbench/script.rpm.sh | sudo bash

~> yum -y install sysbench
~> sysbench --version
  1. 测试数据准备

    sysbench --db-driver=mysql --time=300 --threads=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
    

    –db-driver=mysql:指定mysql数据库驱动

    –time=300:连续访问300秒

    –threads=10:用10个线程模拟并发访问

    –report-interval=1:每隔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:在数据库test_db中创建20张表,每张表中含有100万条数据

    oltp_read_write:执行oltp数据库的读写测试

    –db-ps-mode=disable:禁止ps模式

  2. 全方位测试

    1. 测试数据库的综合读写TPS,使用oltp_read_write模式

      sysbench --db-driver=mysql --time=300 --threads=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 run
      
    2. 测试数据库的只读性能,使用oltp_read_only模式

      sysbench --db-driver=mysql --time=300 --threads=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_only \
      --db-ps-mode=disable run
      
    3. 测试数据库的删除性能,使用oltp_delete模式

      sysbench --db-driver=mysql --time=300 --threads=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_delete \
      --db-ps-mode=disable run
      
    4. 测试数据库的更新索引字段的性能,使用oltp_update_index模式

      sysbench --db-driver=mysql --time=300 --threads=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_update_index \
      --db-ps-mode=disable run
      
    5. 测试数据库的更新非索引字段的性能,使用oltp_update_on_index模式

      sysbench --db-driver=mysql --time=300 --threads=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_update_on_index \
      --db-ps-mode=disable run
      
    6. 测试数据库的插入的性能,使用oltp_insert模式

      sysbench --db-driver=mysql --time=300 --threads=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_insert \
      --db-ps-mode=disable run
      
    7. 测试数据库的写入性能,使用oltp_write_only模式

      sysbench --db-driver=mysql --time=300 --threads=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_write_only \
      --db-ps-mode=disable run
      
  3. 清理数据

    sysbench --db-driver=mysql --time=300 --threads=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_write_read \
    --db-ps-mode=disable cleanup
    

Prometheus + Grafana 监控系统

Promethus采集监控系统

从 https://prometheus.io/download/下载以下三个压缩包:

采集监控系统:prometheus-2.1.0.linux-amd64.tar.gz

监控服务器信息:node_exporter-0.15.2.linux-amd64.tar.gz

监控MySQL信息:mysqld_exporter-0.10.0.linux-amd64.tar.gz

scrape_configs:
  - file_sd_configs:
      - files:
          - host.yml
    job_name: Host
    metrics_path: /metrics
    relabel_configs:
      - source_labels: [__address__]
        regex: (.*)
        target_label: instance
        replacement: $1
      - source_labels: [__address__]
        regex: (.*)
        target_label: __address__
        replacement: $1:9100
  - file_sd_configs:
      - files:
          - mysql.yml
    job_name: MySQL
    metrics_path: /metrics
    relabel_configs:
      - source_labels: [__address__]
        regex: (.*)
        target_label: instance
        replacement: $1
      - source_labels: [__address__]
        regex: (.*)
        target_label: __address__
        replacement: $1:9104
  - job_name: prometheus
    static_configs:
      - targets:
          - localhost:9090
~> /opt/apps/softwares/prometheus/prometheus --storage.tsdb.retention=30d &

Grafana报表系统

部署 Grafana

下载以下两个压缩包:

https://s3-us-west-2.amazonaws.com/grafana-releases/release/grafana-4.6.3.linux-x64.tar.gz

https://github.com/percona/grafana-dashboards/archive/v1.6.1.tar.gz

安装Grafana

~> tar xf grafana-4.6.3.linux-x64.tar.gz -C /opt/apps/softwares
~> cd /opt/apps/softwares/
~> mv grafana-4.6.3 grafana
~> /opt/apps/softwares/grafana/bin/grafana-server &

导入面板

~> tar xvf grafana-dashboards-1.6.1.tar.gz
~> cd grafana-dashboards-1.6.1
~> updatedb
~> locate json | grep dashboards/

通过Grafana页面进行Dashboards监控面板的导入

添加Prometheus数据源,Type选中Prometheus,配置Prometheus地址即可

添加MySQL机器的监控
~> tar xf node_exporter-0.15.2.linux-amd64.tar -C /opt/apps/softwares
~> mv node_exporter-0.15.2.linux-amd64 node_exporter
~> nohup /opt/apps/softwares/node_exporter &
添加MySQL数据库的监控
~> export DATA_SOURCE_NAME='root:668566@(127.0.0.1:3306)/'
~> echo "export DATA_SOURCE_NAME='root:668566@(127.0.0.1:3306)/'" >> /etc/profile

~> nohup /opt/apps/softwares/mysqld_exporter/mysqld_exporter \
--collect.info_schema.processlist \
--collect.info_schema.innodb_tablespaces \
--collect.info_schema.innodb_metrics \
--collect.perf_schema.tableiowaits \
--collect.perf_schema.indexiowaits \
--collect.perf_schema.tablelocks \
--collect.engine_innodb_status \
--collect.perf_schema.file_events \
--collect.binlog_size \
--collect.info_schema.clientstats \
--collect.perf_schema.eventswaits &
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值