Haproxy 性能调整?

2024-02-16

我们正在尝试为来自客户端(而不是浏览网络交易类型的用户)的 get 和 post 请求找到 haproxy 的最佳调整选项。

使用 30k 线程运行 jmeter 测试,其中包括 5 个对服务器的调用、1 个用户注册和一些更新调用。这些通过管道推送 json 数据。

这是我们当前的 haproxy 配置

global
        log /dev/log local0 #notice
        maxconn 14000
        tune.bufsize 128000
        user netcom
        group netcom
        pidfile /tmp/haproxy.pid
        daemon
        nbproc 7
        #debug
        #quiet

defaults
        log global
        mode http
        ### Options ###
        option httplog
        #option logasap
        option dontlog-normal
        #option dontlognull
        option redispatch
        option httpchk GET /?method=echo HTTP/1.1
        option tcp-smart-accept
        option tcp-smart-connect
        option http-server-close
        #option httpclose
        #option forceclose
        ### load balance strategy ###
        balance leastconn
        #balance roundrobin
        ### Other ###
        retries 5
        maxconn 14000
        backlog 100000
        ### Timeouts ###
        #timeout client          25s
        timeout client          60s
        #timeout connect          5s
        timeout connect         60s
        #timeout server          25s
        timeout server          60s
        timeout tunnel        3600s
        timeout http-keep-alive  1s
        #timeout http-request    15s
        timeout http-request    60s
        #timeout queue           30s
        timeout queue           30s
        timeout tarpit          60s

listen stats *:1212
        stats enable
        stats show-node
        stats show-desc xxxxProxy
        stats realm  xxxxProxy\ Statistics
        stats auth   xxxx:xxxx
        stats refresh 5s
        stats uri /

frontend http-in
        bind *:1111
        bind *:2222 ssl crt /home/netcom/nas/haproxy/xxxx.co.pem verify optional
        acl user_request url_reg method=user.register
        use_backend user_group if user_request
        default_backend other_group

backend user_group
        server n15 xxxx:8080 maxconn 3500 check port 8097 inter 2000
        server n2 xxxx:8080 maxconn 3500 check port 8097 inter 2000
        server n9 xxxx:8080 maxconn 3500 check port 8097 inter 2000
        server n14 xxxx:8080 maxconn 3500 check port 8097 inter 2000
        server n22 xxxx:8080 maxconn 3500 check port 8097 inter 2000
        server n24 xxxx:8080 maxconn 3500 check port 8097 inter 2000
        server n25 xxxx:8080 maxconn 3500 check port 8097 inter 2000

以及我们在 centOS 6 上的 sysctl

net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_synack_retries = 2
net.ipv4.ip_local_port_range = 1024 65535
net.ipv4.tcp_tw_recycle = 1
net.core.wmem_max = 12582912
net.core.rmem_max = 12582912
net.ipv4.tcp_rmem = 20480 174760 25165824
net.ipv4.tcp_wmem = 20480 174760 25165824
net.ipv4.tcp_window_scaling = 1
net.ipv4.tcp_timestamps = 1
net.ipv4.tcp_sack = 1
net.ipv4.tcp_no_metrics_save = 1
net.core.netdev_max_backlog = 10000
# Syn flood
net.ipv4.tcp_max_syn_backlog = 8096
net.core.somaxconn = 8096

任何人都可以从你的头脑中指出任何明显的问题。不幸的是,我没有 haproxy 方面的专业知识,因此向社区寻求帮助。

我还可能需要弄清楚如何找到盒子可以处理的最大连接数,它在 1 gig 网络上,并且所有后端也都在 1 gig 网络上。这是 haproxy 管理员的屏幕截图http://grab.by/r12c http://grab.by/r12c,请注意,我们正在使用多个核心运行它,因此这是一个核心的快照.. 因为据我所知,网络管理员无法显示所有内容.. 知道如何获取 haproxy 从中获得的最大连接数命令行?

无论如何,只是在努力解决这个问题,并希望任何人都可以提供一些提示或指示。


首先,您似乎不应该运行 haproxy 的多个进程。通常您不想这样做,特别是因为您正忙于测试并试图查看 maxconn。在单核上,haproxy 的性能远远优于您所拥有的 maxconn 设置。

我浏览了 Snapt 的 sysctl,你已经了解了大部分;我注意到它还添加了这些——

    net.ipv4.tcp_tw_reuse = 1
    net.ipv4.tcp_fin_timeout = 30

另外,leastconn 不值得,我建议使用 roundrobin。因为你正在处理由许多小请求组成的 HTTP 流量(老实说,我想这取决于)。不过这些都是小事。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Haproxy 性能调整? 的相关文章

  • CSS动画比JS动画快吗?

    前段时间读到一篇文章说CSS动画比JS动画快 使用 jQuery 做了一些动画后 我可以理解为什么有些人会这么说 因为 jQuery 动画有时会出现错误并且速度很慢 但我想知道的是 这个论点是否有任何核心事实 有一种常见的误解 认为 CSS
  • 与更具可读性的方法相比,C++ 中按位异或的效率

    我最近正在为我正在进行的一个研究项目编写一些代码 其中效率非常重要 我一直在考虑放弃一些常用的方法并使用按位异或来代替 我想知道这是否会产生差异 如果我执行此操作说数百万次 或者在我在 g 中使用 03 后是否相同 我想到的两个例子 我有一
  • 如何使带有两个for循环的python代码运行得更快(有没有一种python方法可以进行Mathematica的并行化)?

    我对 python 或任何此类编程语言完全陌生 我对 Mathematica 有一些经验 我有一个数学问题 虽然 Mathematica 用她自己的 并行化 方法解决了这个问题 但在使用所有核心后 系统却变得非常疲惫 在跑步过程中我几乎无法
  • 在 Java 中,对复杂模型使用接口是否会带来性能提升?

    标题很难理解 但我不知道如何以另一种方式总结 欢迎任何澄清的编辑 我被告知并建议使用接口来提高性能 即使在并不特别需要常规 接口 角色的情况下也是如此 在这种情况下 对象是大模型 MVC 意义上的 具有许多方法和字段 向我推荐的 好用处 是
  • 解决 php 常见冲突的最佳方法:忽略、修复还是其他?

    我正在尝试在 CentOS 6 上的 PHP 5 3 3 上安装 Soap 模块 来自 webtatic PHP 5 6 当我运行 yum 命令时yum install php56w soap要安装它 我收到以下消息 错误 php56w c
  • RMI 有多快?

    我看到过这样的问题 两个独立的 Java 桌面应用程序之间的通信 https stackoverflow com questions 1680898 communication between two separate java deskt
  • 如何加快编辑距离计算速度

    我正在尝试运行模拟来测试平均值编辑距离 http en wikipedia org wiki Levenshtein distance之间随机 二进制字符串 我的程序是用 python 编写的 但我正在使用这个C扩展 https githu
  • 如何防止Googlebot淹没网站?

    我正在中间的专用服务器上运行一个内容很多但流量很少的网站 有时 Googlebot 会踩踏我们 导致 Apache 耗尽内存 导致服务器崩溃 我怎样才能避免这种情况 在谷歌网站管理员工具上注册 验证您的网站并限制谷歌机器人 提交站点地图 阅
  • ElasticSearch 匹配多个前缀术语

    我试图为 ElasticSearch 提供一个包含多个术语的查询 然后给出匹配的文档 其中指定的术语位于目标字段中的任何位置 这些术语可以是完整的单词或单词前缀 示例文档 msg 你好 我是一条短信 示例查询字符串 你好消息 你好 和 消息
  • 为什么在我的例子中 For 循环比 Map、Reduce 和 List 理解更快

    我编写了一个简单的脚本来测试速度 这就是我发现的结果 实际上 for 循环在我的例子中是最快的 这真的让我感到惊讶 请查看下面 正在计算平方和 这是因为它在内存中保存列表还是有意为之 谁能解释一下这一点 from functools imp
  • 按类型进行弹簧接线比按名称接线要慢很多

    在我的项目中 我试图迁移 Foo foo Foo beanFactory getBean name into Foo foo beanFactory getBean Foo class 好处是显而易见的 类型安全 更少复杂的代码 更少无用的
  • 为什么 Android Eclipse 不断刷新外部文件夹并花费很长时间?

    我只有一部新的 Android 手机 我一直在修补一些基本的应用程序 每当我保存任何内容时 Eclipse 的 Android 插件就会刷新外部文件夹 这让我抓狂 通常我不会介意 但当需要 10 秒才能刷新时 我开始注意到 我已经搜索过 其
  • 双线性序列给出奇数结果

    我试图让我的表现技能 不存在 达到标准 但在将公式写入代码时遇到了问题 这是我试图将其引用为 转换 为代码的公式 考虑一个序列 u 其中 u 定义如下 号码u 0 1是第一个u 对于每个x in u then y 2 x 1 and z 3
  • .NET 中 UniqueQueue 和 UniqueReplacementQueue 集合最有效的实现

    考虑到入队和出队操作的速度同样重要 NET 中 UniqueQueue 和 UniqueReplacementQueue 集合最有效 就速度而言 的实现是什么 UniqueQueue是一个不可能出现重复的队列 因此 如果我将一个元素推送到队
  • 在centos上设置jenkins:ssh密钥和git的问题

    经历了很多问题 但似乎没有什么能解决我的问题 或者更准确地说 我不确定我是否正确地完成了整个事情 所以这里是 已安装centos 6 3操作系统 然后我按照以下指南安装詹金斯 https wiki jenkins ci org displa
  • 为什么C++代码执行速度比java慢?

    我最近用 Java 编写了一个计算密集型算法 然后将其翻译为 C 令我惊讶的是 C 的执行速度要慢得多 我现在已经编写了一个更短的 Java 测试程序和一个相应的 C 程序 见下文 我的原始代码具有大量数组访问功能 测试代码也是如此 C 的
  • 是否可以提高 Mongoexport 速度?

    我有一个 1 3 亿行的 MongoDB 3 6 2 0 集合 它有几个简单的字段和 2 个带有嵌套 JSON 文档的字段 数据以压缩格式 zlib 存储 我需要尽快将其中一个嵌入字段导出为 JSON 格式 然而 mongoexport 需
  • Google App Engine 如何预编译 Java?

    App Engine 对应用程序的 Java 字节码使用 预编译 过程 以增强应用程序在 Java 运行时环境中的性能 预编译代码的功能与原始字节码相同 有没有详细的信息这是做什么的 我在一个中找到了这个谷歌群组消息 http groups
  • 与保留模式 GUI 相比,使用立即模式 GUI 对性能有何影响?

    我目前正在开发一个标准的 Windows 桌面应用程序 标准意味着没有花哨的东西 只是按钮 文本 滑块等 在研究了一些 GUI 框架并被拒绝后 我决定自己编写一个 GUI 框架他们全部 由于这是一个业余爱好项目 我也愿意尝试 并决定将 GU
  • JSON.stringify 对于大型对象来说非常慢

    我在 javascript 中有一个非常大的对象 大约 10MB 当我对其进行字符串化时 需要很长时间 因此我将其发送到后端并将其解析为一个对象 实际上是带有数组的嵌套对象 这也需要很长时间 但这不是我们在这个问题中的问题 问题 我怎样才能

随机推荐