GoogleCE 服务器崩溃,Fluentd(ruby)内存使用率过高可能与此有关?

GoogleCE 服务器崩溃,Fluentd(ruby)内存使用率过高可能与此有关?

我在 Google GCE 上运行一个小型服务器 (f1-micro)。该服务器充当反向代理,因此只安装了一个小型 NGINX,它只是 Google Cloud Function 的代理。使用率很低,几乎没有流量。

但是,大约每月一次(可能更频繁),服务器会无缘无故崩溃。查看控制台,CPU 使用率飙升,SSH 访问不起作用,唯一的解决方案是关闭它并重新启动服务器。我还经常看到磁盘 I/O 很高。

登录到服务器后,我注意到 fluentd 守护进程的内存使用率相当高,更具体地说是 ruby​​ 进程,下面是 top 的输出:

   PID USER      PR  NI    VIRT    RES    SHR S  %CPU  %MEM     TIME+ COMMAND                                                                                                                                                                        
   1123 root      20   0   40.7g   1.3g   1.3g S   0.7 233.1   0:40.79 ruby       
    867 ?        Sl     0:00  \_ containerd-shim -namespace moby -workdir /var/lib/containerd/io.containerd.runtime.v1.linux/moby/aec49f162b96e0a58522a7ccdee023ad01f7abefbf996352bf4fe9e4fc976465 -address /run/containerd/containerd.sock -container
    897 ?        Ssl    0:05  |   \_ /opt/google-fluentd/embedded/bin/ruby /usr/sbin/google-fluentd
   1123 ?        Sl     0:40  |       \_ /opt/google-fluentd/embedded/bin/ruby -Eascii-8bit:ascii-8bit /usr/sbin/google-fluentd --under-supervisor

这是在运行服务器大约 12 小时后的结果。内存使用情况只是一个猜测,但可能解释了磁盘 I/O(交换使用情况)。有什么线索可以解释为什么会发生这种情况吗?

亲切的问候,

杰伦

答案1

看看文档

安装日志记录代理时,至少需要 250 MiB 内存,但建议 1 GiB。

而且由于f1-micro实例只有 614Mb 的 RAM,这可能是导致问题的原因。我检查了测试实例,发现启动后可用内存非常有限。

Google Fluentd 默认已预配置,但您可以尝试按照以下步骤进行自定义文档,例如,你可以改变緩衝器。另外,看看这个建议。我认为,在这种情况下,最好尝试至少使用[g1-small][5]具有更多内存的实例,或者google-fluentd如果不需要则禁用服务。

相关内容