weixin_44098338 2019-01-09 12:26 采纳率: 0%
浏览 233

请教如何优化HA组中,mysql虚拟机的表现?

我建立了一个数据库高可用性服务器组,使用一台vm运行nginx作为负载均衡,两台mysql vm组成master-master repolication的高可用性结构,每台mysql vm上各自运行八个mysql实例。仅load balancer保留外网ip,其余都通过内网进行连接,各vm之间端口对应。如下图:

图片说明

但当我使用sysbench测试mysql性能的时候,发现在load balancer上运行测试与直接在mysql vm 1上测试相比,性能下降很大。

在load balancer上测试,使用指令

sysbench --test=oltp --mysql-host=192.168.1.11 --mysql-port=3307 --mysql-user=xxx --mysql-password=xxx --mysql-db=test1 --num-threads=32 --max-time=1800 --max-requests=0 --oltp-table-size=10000000 run>> /var/tmp/mysql3307.txt

获得结果

OLTP test statistics:
queries performed:
    read:                            3522974
    write:                           1258168
    other:                           503270
    total:                           5284412
transactions:                        251629 (139.78 per sec.)
deadlocks:                           12     (0.01 per sec.)
read/write requests:                 4781142 (2655.95 per sec.)
other operations:                    503270 (279.57 per sec.)

Test execution summary:
total time:                          1800.1653s
total number of events:              251629
total time taken by event execution: 57596.9970
per-request statistics:
     min:                                 42.53ms
     avg:                                228.90ms
     max:                               3086.55ms
     approx.  95 percentile:             407.86ms

Threads fairness:
events (avg/stddev):           7863.4062/381.89
execution time (avg/stddev):   1799.9062/0.05

在mysql vm 1上测试,使用指令

sysbench --test=oltp --mysql-host=127.0.0.1 --mysql-port=3307 --mysql-user=xxx --mysql-password=xxx --mysql-db=test1 --num-threads=32 --max-time=1800 --max-requests=0 --oltp-table-size=10000000 run>> /var/tmp/mysql3307.txt

获得结果

OLTP test statistics:
queries performed:
    read:                            140070
    write:                           50010
    other:                           20005
    total:                           210085
transactions:                        10000  (317.15 per sec.)
deadlocks:                           5      (0.16 per sec.)
read/write requests:                 190080 (6028.38 per sec.)
other operations:                    20005  (634.46 per sec.)

Test execution summary:
total time:                          31.5308s
total number of events:              10000
total time taken by event execution: 1007.3012
per-request statistics:
     min:                                 13.73ms
     avg:                                100.73ms
     max:                                589.49ms
     approx.  95 percentile:             184.95ms

Threads fairness:
events (avg/stddev):           312.5000/6.02
execution time (avg/stddev):   31.4782/0.04

nginx的设置如下

stream {
server {
   listen 3307;
   proxy_pass db3307;
}
upstream db3307 {
   server 192.168.1.11:3307 weight=1;
   server 192.168.1.12:3307 weight=1;
}
server {
   listen 3308;
   proxy_pass db3308;
}
upstream db3308 {
   server 192.168.1.11:3308 weight=1;
   server 192.168.1.12:3308 weight=1;
}
//... to port 3314
}

请问是否有人知道需要如何改善?谢谢

  • 写回答

1条回答 默认 最新

  • lshen01 2023-03-15 18:07
    关注

    参考GPT和自己的思路:

    从你提供的信息来看,可以考虑以下几点来优化HA组中mysql虚拟机的表现:

    1. 考虑增加虚拟机的数量:目前每台虚拟机上运行的mysql实例数量较多(每台机器上运行了8个mysql实例),这样会增加系统的负担,导致性能下降。可以考虑增加虚拟机的数量,将每个虚拟机上运行的mysql实例数量减少,从而提高性能。

    2. 调整各个虚拟机的配置:可以考虑调整各个虚拟机的配置,例如增加内存、CPU等硬件资源,以及调整数据库的缓存等参数,从而提高系统的性能。

    3. 调整nginx的设置:可以考虑通过调整nginx的负载均衡算法、超时时间等参数,从而提高系统的性能。

    4. 使用更快的存储介质:可以考虑使用更快的存储介质,例如SSD,从而提高数据库的读写性能。

    总之,优化HA组中mysql虚拟机的表现需要结合具体的情况来考虑,需要对系统的各个方面进行综合评估和优化,以提高系统的性能和可靠性。

    评论

报告相同问题?

悬赏问题

  • ¥15 eclipse运行项目时遇到的问题
  • ¥15 关于#c##的问题:最近需要用CAT工具Trados进行一些开发
  • ¥15 南大pa1 小游戏没有界面,并且报了如下错误,尝试过换显卡驱动,但是好像不行
  • ¥15 没有证书,nginx怎么反向代理到只能接受https的公网网站
  • ¥50 成都蓉城足球俱乐部小程序抢票
  • ¥15 yolov7训练自己的数据集
  • ¥15 esp8266与51单片机连接问题(标签-单片机|关键词-串口)(相关搜索:51单片机|单片机|测试代码)
  • ¥15 电力市场出清matlab yalmip kkt 双层优化问题
  • ¥30 ros小车路径规划实现不了,如何解决?(操作系统-ubuntu)
  • ¥20 matlab yalmip kkt 双层优化问题