微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐