gpt4 book ai didi

php - 启用内核参数 tcp_tw_recycle 时删除连接

转载 作者:行者123 更新时间:2023-11-29 18:43:06 24 4
gpt4 key购买 nike

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

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

production.ERROR: Symfony\Component\Debug\Exception\FatalErrorException: Maximum execution time of 60 seconds exceeded

[Warning] Aborted connection 48520867 to db: 'database-name' user: 'root' host: '172.16.1.2' (Got timeout reading communication packets)

我们通过两项更改成功修复了 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 和 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

请尝试一下。

关于php - 启用内核参数 tcp_tw_recycle 时删除连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44816560/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com