首页 > 解决方案 > 应用引擎flex nodejs worker_connections错误

问题描述

我将 nodejs 服务器部署到 app engine flex。我正在使用 websockets,目前应该有大约 10k 个并发连接。

在大约 2000 个 websockets 连接处,我收到此错误:
[alert] 33#33: 4096 worker_connections are not enough

在 nodejs 运行时中没有永久的方法来编辑 nginx 配置。实例上的 2k 连接不是很低吗?

我的 yaml 配置文件:

runtime: nodejs
env: flex
service: web

network:
  session_affinity: true

resources:
  cpu: 1
  memory_gb: 3
  disk_size_gb: 10

automatic_scaling:
  min_num_instances: 1
  cpu_utilization:
    target_utilization: 0.6

标签: google-app-enginegoogle-cloud-platform

解决方案


根据这个公开问题 1 公开问题 2,增加实例夜间的数量会增加 worker_connections。此外,减少每个实例的内存允许实例以较低的阈值向上扩展。这可能有助于将打开的连接数保持在 4096 以下,这在任何大小的实例中都应该保持不变。您可以将一个实例 SSHing 的 worker_connections 值更改为虚拟机。

Nginx 配置位于 /tmp/nginx/nginx.conf 中,您可以手动更改它,如下所示:

sudo su

vi /tmp/nginx/nginx.conf #Make your changes

docker exec nginx_proxy nginx -s reload

除了上述解决方法之外,还有另一个PIT用于实现允许用户更改 nginx.conf 设置的功能。如果您有任何其他疑问,请随时在此处发布。


推荐阅读