debian – API和弹性搜索服务器之间每2小时超时一次

我们的服务器遇到了一个奇怪的问题. (Debian 8.9)我们有一个API,它是一个PHP应用程序.它请求弹性搜索,该实例位于单独的服务器上.

每2个小时,我们遇到错误500,它持续1或2分钟,很少更多:

[2017-10-19 20:52:10] +2 hours
[2017-10-19 22:51:59] +2 hours
[2017-10-20 00:52:02] +2 hours
[2017-10-20 02:52:14] +2 hours
[2017-10-20 04:52:28] +2 hours

有时是4小时或6小时.

以下是错误的详细信息:

request.CRITICAL: Uncaught PHP Exception Elastica\Exception\Connection\HttpException: 
"Operation timed out" 

这很清楚. API尝试连接到elasticsearch实例,直到达到http客户端的指定超时.

什么可能导致这个?如何调试这类问题?

当然,在稍后检查所有URL引用者时,一切正常.

解决方法:

我建议在内核中提高somaxconn参数.

添加到/etc/sysctl.conf:

net.core.somaxconn=512

然后运行:

sudo sysctl -p

同样在/etc/redis.conf中将tcp-backlog提升为(或更多):

tcp-backlog 512

从redis配置文件

TCP listen() backlog.

In high requests-per-second environments you need an high backlog in
order to avoid slow clients connections issues. Note that the Linux
kernel will silently truncate it to the value of
/proc/sys/net/core/somaxconn so make sure to raise both the value of
somaxconn and tcp_max_syn_backlog in order to get the desired effect.

相关文章

统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
前言 之前做了微信登录,所以总结一下微信授权登录并获取用户...
FastAdmin是我第一个接触的后台管理系统框架。FastAdmin是一...
之前公司需要一个内部的通讯软件,就叫我做一个。通讯软件嘛...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...