美文网首页
haproxy性能测试

haproxy性能测试

作者: cloudFans | 来源:发表于2020-09-14 14:13 被阅读0次

haproxy性能测试参考:https://www.xilinx.com/publications/onload/sf-onload-haproxy-cookbook.pdf

R640 100G nic bond 开启hugepage,32cpu, 192G内存 http请求200 0000 并发/s

32cpu比40cpu性能更好

那么

R620 1G nic,32cpu和256内存性能表现如何,仅仅提升cpu数目对性能的提升如何

理论上性能只有maxconn 10000,从网卡对比数据考虑

测试场景: 链接mysql,维持120s断开
对ha 绑定cpu 1 2 4 8 16
统计网络io,cpu使用率,内存占用,ha保持稳定链接数目

配置修改

frontend Mariadbfrontend
mode tcp

  • maxconn 40000
    timeout client 3600s
    timeout server 3600s
    option tcplog
    option tcpka

option mysql-check user haproxy post-41

bind 10.164.0.20:3306 process 1

bind 10.164.0.20:3306 process 2

bind 10.164.0.20:3306 process 3

bind 10.164.0.20:3306 process 4

default_backend Mariadbbackend

backend Mariadbbackend
mode tcp

  • maxconn 40000
    timeout client 3600s
    timeout server 3600s
    option tcplog
    option tcpka

server ccontroller01 10.164.0.21:3306 check inter 2000 rise 2 fall 5 maxconn 40000
server ccontroller02 10.164.0.22:3306 check inter 2000 rise 2 fall 5 maxconn 40000
server ccontroller03 10.164.0.23:3306 check inter 2000 rise 2 fall 5 maxconn 40000

仅仅添加 maxconn 40000参数,原来并发链接从2041提升到5781,

增加cpubind数目目前看来对提升没有影响,因为在并发连接数不在增长时,cpu 使用率一直在10%以下。
backend 3 ccontrol multi-active or master-slave 对实际上 maxconn no effect
在haproxy stats页面查看发现

frontend limit 40000
server limit ccontroller01 40000
server limit ccontroller01 40000
server limit ccontroller01 40000
backend limit 4000 <目前怀疑这个值,但是网络上并发百万并没有配置该项>

目前使用haproxy version
/usr/sbin/haproxy --version
HA-Proxy version 1.8.8-1ubuntu0.9 2019/12/02

而且1.8版本 backend maxconn 目前不支持配置

https://cbonte.github.io/haproxy-dconv/1.8/configuration.html

image.png

2.3版本 也不支持


image.png

backend limit 4000 可能只是最高并发1/10,其实没有真正限制并发

第二次测试

ulimit -n 65535
尝试基于vip 3306, 脚本建立655535 个链接

cpu 1 cpu
网卡 1G

concmax: 25K

image.png
image.png

测试变更cpu数目对性能影响
cpu 2 cpu
网卡 1G

由于2cpu不均衡,25K-->15K
haproxy: how to load balance multi cpus: https://medium.com/@dubiety/multiprocess-haproxy-%E8%AA%BF%E6%95%99%E7%B6%93%E9%A9%97-253804148ea2

追加测试:
docker ,host 都需要改
sysctl -w net.core.somaxconn=32768

or

ansible -i /root/ha 'compute' -m copy -a "src=kolla-ansible/tools/corp/test.py dest=/root/test.py"

ansible compute -i /root/ha -m shell -a "ulimit -n 65535; ulimit -n; python /root/test.py"

echo "net.core.somaxconn=32768" >> /etc/sysctl.conf
sysctl -p
https://blog.csdn.net/mawming/article/details/51952411#commentBox

image.png

目前测试环境单核28k cpu饱和,之前测试25K,变化不大,而且这个提升可能innodb_buffer_pool_size = 410M-->20480M 有关系

总结:
48CPU 256G内存
mariadb (galera多主架构)
基于docker维护
3节点基于vip做转发
haproxy主要配置

vim /etc/kolla/haproxy/haproxy.cfg

global
chroot /var/lib/haproxy
user haproxy
group haproxy
daemon
log 10.164.0.23:5140 local1
maxconn 40960
nbproc 1

listen mariadb
mode tcp
timeout client 3600s
timeout server 3600s
maxconn 40960
option tcplog
option tcpka
option mysql-check user haproxy post-41
bind 10.164.0.20:3306
server ccontroller01 10.164.0.21:3306 check inter 2000 rise 2 fall 5 maxconn 40960
server ccontroller02 10.164.0.22:3306 check inter 2000 rise 2 fall 5 maxconn 40960 backup
server ccontroller03 10.164.0.23:3306 check inter 2000 rise 2 fall 5 maxconn 40960 backup

vim /etc/kolla/mariadb/galera.cnf

wsrep_slave_threads = 4
wsrep_notify_cmd = /usr/local/bin/wsrep-notify.sh
wsrep_on = ON
max_connections = 40960
key_buffer_size = 64M
max_heap_table_size = 64M
tmp_table_size = 64M
innodb_buffer_pool_size = 65536M (64G)
innodb_log_file_size = 4096M
innodb_log_file_size = 8G
query_cache_size = 0
query_cache_type = 0
query_cache_limit = 2M
join_buffer_size = 512K
thread_cache_size = 4
performance_schema = ON
innodb_buffer_pool_instances = 64
innodb_log_buffer_size = 16M
innodb_flush_log_at_trx_commit = 0

内核参数:

仅修改docker内也可以
echo "net.core.somaxconn=32768" >> /etc/sysctl.conf
sysctl -p

数据:

image.png image.png

reference:

  1. haproxy install and ab test https://fabianlee.org/2017/10/16/haproxy-zero-downtime-reloads-with-haproxy-1-8-on-ubuntu-16-04-with-systemd/

  2. haproxy config: https://www.cnblogs.com/yinzhengjie/p/12121468.html

相关文章

网友评论

      本文标题:haproxy性能测试

      本文链接:https://www.haomeiwen.com/subject/arivektx.html