AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 1029538
Accepted
Md. Shahriar Hossain
Md. Shahriar Hossain
Asked: 2020-08-11 06:52:26 +0800 CST2020-08-11 06:52:26 +0800 CST 2020-08-11 06:52:26 +0800 CST

varnish vcl 中的 .max_connections 参数是什么以及如何为后端 nginx 服务器计算此值

  • 772

我在 varnish default.vcl 中看到了 .max_connections 参数,并通过在 web 中搜索,找到了 .max_connections 下面的 文章:您授权 Varnish 打开到此后端的连接数。请记住,连接是池化和重用的,因此您的后端应该有更轻松的生活,但有时,您需要更多地保护它。不过要小心,因为这是一个硬限制,如果达到,Varnish 将不会使用这个后端,即使这意味着向用户返回错误。

现在,我想知道最大连接是否意味着请求/秒或并发用户或其他任何东西。我将如何为后端 nginx 服务器计算它?

connection cache nginx varnish php-fpm
  • 1 1 个回答
  • 1632 Views

1 个回答

  • Voted
  1. Best Answer
    Thijs Feryn
    2020-08-11T07:21:45+08:002020-08-11T07:21:45+08:00

    需要多个后端连接

    在HTTP/1.1单个连接上没有请求多路复用。如果同时有多个对 Varnish 的请求,对于未存储在缓存中的资源,可能会打开多个后端连接。

    Varnish 将保持对后端的连接打开,并将它们重新用于其他请求。Varnish 还将对同一资源执行请求合并和折叠后端请求。

    话虽如此,仍然存在 Varnish 需要打开多个连接到单个后端的情况。

    限制后端连接

    根据您的平台获得的流量、缓存的命中率以及后端服务器拥有的资源,您可能希望限制与后端的连接。

    使用 Varnish 的想法是避免与原始服务器的过多连接。通过max_connections在后端定义中引入,您可以保护您的来源免受 Varnish 中的过度重新验证。

    如果你的命中率不错,你永远不会达到这个限制,但如果你这样做,max_connections将确保获取排队,直到连接被释放。

    计算max_connections

    max_connections是否可以防止您的服务器内存不足。

    您要选择的值取决于您的源服务器拥有的资源量,以及满足请求所需的平均时间。

    ab您可以使用or执行负载测试,siege并确定您的源在进入高负载之前可以处理多少个同时连接。

    请确保keepalive在这些测试期间关闭

    这是非常反复试验。确保您的初始max_connections值太高,发送足够的流量,并寻找临界点。

    降低 的值max_connections,冲洗,重复。

    一旦确定了max_connections源的设置,请将其保存在源(Apache 或 Nginx)的网络服务器配置中。

    最终,您还将在 Varnish 后端定义中设置该值。

    这个想法是 Varnish 不应该允许更多的同时连接到您的后端服务器,而不是它们被配置为处理的。

    • 2

相关问题

  • sql server 连接字符串上的网络数据包大小以提高吞吐量

  • Linux 机器需要 10 秒才能建立连接

  • 计划终止端口连接

  • 远程连接到 MySQL 服务器需要很长时间

  • 在 Windows 服务器上运行的 Oracle 的典型最大数据库连接数是多少?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve