设为首页 收藏本站
查看: 1364|回复: 0

[经验分享] 技术故障排除

[复制链接]

尚未签到

发表于 2019-1-2 10:33:02 | 显示全部楼层 |阅读模式
  昨天为一位拥有高负载服务器的客户开了一个关于 Haproxy故障排除的有趣会议。Haproxy是一个非常高性能的系统,可达每秒10万次的请求,10万个连接,而且非常灵活,我们无处不在使用它 (而且这这方面远优于nginx或者是LVS)。运行每天有数亿的请求这样如此大规模的连接水平的系统来说是非常困难的,即使有专门的Linux内核调 优,以及仔细的监测和管理。

问题是在150-200,000并发连接,但低于每秒5000请求,系统变得很慢,需要几秒钟响应。在标准故 障排除,如检查整体CPU,内存,sockets,内核消息,iptables连接跟踪限制的TCP内存和压力,这种情况下发现不了什么奇怪的现象。由于 这是一个虚拟机,我们也检查底层的Xen dom0的系统因为CPU有其他限制,也影响虚拟机的负载性能。

但是查看每个进程的CPU使 用,显示Haproxy使用大于95%的CPU资源,这是进程使用CPU超负荷的一个明显标志。Haproxy通常是一个单独的进程事件驱动系统 (Nginx它具有相同的架构),这是它如何达到如此高的性能的原因。但如果单个的进程的负载比单个CPU可以处理的更多,那系统便崩溃了,或者至少是变 的非常缓慢。但实际上,我惊讶的是100%的系统完全可以运作,而且仍然在3-5,000请求/秒和20万个连接。

为什么CPU负载过高?我们不能马上下定论,因为实际的请求率并不高。但我们认为原因在于连接的数量和管理该名单的开销上,即使在理论上内核应该使用epoll()去处理,但是系统方面的cpu相当的高,也许是所有socket选择的工作所致。

有 一个问题,为什么许多连接和回答都是长TCP保持存活时间,默认是2分钟的保持时间。所以每秒2000个新连接和超过100秒的平均连接时间导致了  20万的连接数,就这么简单。我们采取缩短超时,这通常会降低用户体验,但对于这个应用来说不是很至关重要的,所以安全起见,我们调整到60秒或者更低, 比如15秒或者必要时所幸关闭存活时间来调优。(因为对于这个客户来说,我们只看到每秒1.2个的请求连接,比一般典型的网站要少的多)。

如 今的整体解决方案是启用Haproxy的多进程功能,这是一个使用起来很复杂的功能,因为统计和监控每个进程是随机在它们之间切换的,所以调试和监控数据 就变的没有什么很大的作用了。但是每个进程的cpu使用会降致50%而且服务器很容易就能承受12万的连接数。我们将以这种方式运行一段时间看看效果如 何,还有我们为了更好的监控也会恢复到单进程模式,除非找到一个更好的方法去解决监控每个进程方法。

总的来说,这就是我一天的工作,
管理大型网站和高性能的负载均衡系统以及运维高端技术。以此同时,我们还是需要每天学习更新的知识,庆幸的是,我们可以通过我们的客户平台和你分享这些知识。





运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-658588-1-1.html 上篇帖子: 负载均衡集群解决方案 haproxy-cruisezhao 下篇帖子: HAproxy 默认短连接,特殊域名开启长连接的配置方法
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表