首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用socket.io泄漏Nginx内存

用socket.io泄漏Nginx内存
EN

Stack Overflow用户
提问于 2020-09-26 06:53:04
回答 1查看 1.8K关注 0票数 2

背景:我们为许多客户管理基础设施,几乎所有客户都有Nginx,他们在那里终止SSL并进行一些缓存。我们从未在Nginx上遇到过任何问题,在此故障排除过程中我们遇到了麻烦。

问题:最近为新客户进行了迁移,他们的应用程序使用socket.io。我们注意到,内存使用量只是随着时间的推移而增加,并且只有一个工作进程导致了这一点。重新启动没有帮助,当一个工作人员被“锁定”时,RAM的使用只会增加。一切运行良好,没有什么是缓慢的,但它可能会导致OOM,这将是一个问题。当一个工人被杀死时,RAM会被释放,但是新的会做同样的事情。

设置:运行在ESXi管理程序-Ubuntu18.04.4LTS上的4vCPU/8GBRAM Nginx (版本1.18.0)。Nginx只作为代理配置,提供150-200雷克/秒的服务。没有缓存,没有服务的静态文件。我们检查了pmap,我们发现这被认为是脏内存,但我们不知道是什么原因造成的。在syslog或nginx error.log中没有错误。访问日志将被关闭,如果您想做配置,重新加载有问题的工作人员将挂起"worker process关机“状态。我们假设Nginx端的socket.io配置不正确,但很难搞清楚是什么。

非常感谢你的帮助,为语法道歉。如果需要,我可以提供更多的信息/指标/配置。

一些配置参数:

代码语言:javascript
复制
events {
    worker_connections  4096;
    use epoll;
    multi_accept on;
}
http {
    aio threads;
    keepalive_timeout 65;
    proxy_buffering                 on;
    proxy_read_timeout              120s;
    proxy_send_timeout              120s;
    proxy_buffers                   8 2m;
    proxy_buffer_size               12m;
    proxy_busy_buffers_size         12m;
    proxy_headers_hash_max_size     1024;
    proxy_headers_hash_bucket_size  128;
    ....
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-09-28 07:46:18

解决方案是删除所有proxy_buffering配置参数,只保留: proxy_buffering off;proxy_buffer_size 4k;在这里可以看到在下面的图片上。的不同之处。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64074764

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档