【问题标题】:Dropping of connections when kernel parameter tcp_tw_recycle is enabled启用内核参数 tcp_tw_recycle 时断开连接
【发布时间】:2017-06-29 04:49:22
【问题描述】:

我们的 API 每分钟访问 600 个请求,API 设置使用两台专用服务器,一台用于 php 进程,第二台用于 mariadb。我们都使用 14 核、128 内存服务器。

api 和数据库服务器之间的通信是通过本地网络进行的,当对 api 进行大量访问时,我们注意到两个错误,一个在 api larvel 日志上,第二个在 mysql 服务器端。

生产。错误: Symfony\Component\Debug\Exception\FatalErrorException:最大值 超过 60 秒的执行时间

[警告] 与 db: 'database-name' 用户的连接 48520867 中止: 'root' 主机:'172.16.1.2'(读取通信包超时)

我们已经设法通过进行两项更改来修复 api 错误,将 php max_execution_time 设置为 120 秒并设置内核参数 net.ipv4.tcp_tw_recycle = 1,

完成此操作后,我们现在面临来自具有专用 IP 地址的 Office ISP 的连接中断,我们有超过 100 个用户从同一 IP 连接。

一旦内核参数“net.ipv4.tcp_tw_recycle = 1”被禁用,我们的办公室 IP 就可以访问它了。我们已经有了“net.ipv4.tcp_tw_reuse = 1”。

这些可能的解决方案是什么?我还可以看到几乎与同一问题相似的 stackoverflow 讨论。但仍然无法找到相同的解决方案。

Dropping of connections with tcp_tw_recycle

【问题讨论】:

    标签: php mysql symfony


    【解决方案1】:

    我认为问题的出现是由于 PHP 和 Maria DB 之间的连接数量更多。

    请增加 Apache 可以处理的请求数,并增加 Maria DB 的缓冲内存大小。

    在Mysql中我们可以增加下面提到的参数(到现在还没有使用Maria DB)

    /etc/my.cnf
    ***innodb_buffer_pool_size = 384M***
    key_buffer = 256M
    query_cache_size = 1M
    query_cache_limit = 128M
    thread_cache_size = 8
    ***max_connections = 400***
    innodb_lock_wait_timeout = 100
    

    请试一试。

    【讨论】:

    • 我们已经做了这些,innodb_buffer_pool_size = 90GB innodb_thread_concurrency参数= 48 imax_connections = 65535 connect_timeout = 5 WAIT_TIMEOUT = 600 max_allowed_packet的= 1024M thread_cache_size的= 128 sort_buffer_size的值= 4M bulk_insert_buffer_size = 16M tmp_table_size的= 32M max_heap_table_size = 32M 跨度>
    • 您是否已将 Apache Web 服务器 MaxClients 增加到处理值?
    【解决方案2】:

    设置“net.ipv4.tcp_tw_recycle = 0”已经完全修复了连接丢失的问题。工作很好。我们可以使用以下命令将 net.ipv4.tcp_tw_recycle 设置为 0。

    sysctl -w net.ipv4.tcp_tw_recycle=0

    参考讨论:-

    tcp_tw_reuse vs tcp_tw_recycle : Which to use (or both)?

    https://serverfault.com/questions/234534/is-it-dangerous-to-change-the-value-of-proc-sys-net-ipv4-tcp-tw-reuse

    【讨论】:

      猜你喜欢
      • 2012-02-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-07-10
      • 2017-07-20
      • 1970-01-01
      • 2016-07-08
      • 1970-01-01
      相关资源
      最近更新 更多