之前一直感觉CloudFoundry的GoRouter的性能不靠谱,或者我们的CloudFoundry 部署架构存在问题,想着进行一些压力测试,但是一直苦于没有压力测试的工具。上一周,部门需要出一个测试报告,刚好借此机会。进行一个比较好的测试。
测试的时候,是使用的两个gorouter+nginx,测试使用的应用是一个比较简单的应用,使用LoadRunner进行压力测试,使用LoadRunner的1000个用户进行,测试效果非常差。和QQ群里的同学交流,他们也出现了类似的问题,使用F5或者HaProxy 都很正常,但是使用nginx 出现很多问题,表现出来的性能非常差。所以也尝试改用haproxy做负载均衡。
haproxy的部署方式就不描述了,使用haproxy的默认配置,性能也是很差,开始进行调优。一开始以为是应用、gorouter的问题,但是定位了很久,发现这些目前看来都没有什么问题。最后,对haproxy的配置文件进行了优化,目前我的haproxy配置文件:
global
log 127.0.0.1 syslog info
daemon
maxconn 300000
spread-checks 4
nbproc 8
defaults
log global
timeout connect 30000ms
timeout client 300000ms
timeout server 300000ms
# maxconn 320000
# option http-pretend-keepalive
option dontlognull
option forwardfor
option redispatch
option abortonclose
listen admin_stats
bind 0.0.0.0:1080
mode http
option httplog
maxconn 10
stats refresh 30s
stats uri /stats
stats realm XingCloud\ Haproxy
stats auth admin:admin
stats hide-version
frontend http-in
mode tcp
bind *:80
reqadd X-Forwarded-Proto:\ http
default_backend tcp-routers
backend tcp-routers
mode tcp
balance source
server node1 10.106.1.46:80 weight 10 inter 2000 rise 2 fall 5 maxconn 10000
server node2 10.106.1.57:80 weight 10 inter 2000 rise 2 fall 5 maxconn 10000
更多精彩内容:http://www.bianceng.cnhttp://www.bianceng.cn/Servers/cloud-computing/