我在 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(交换使用情况)。有什么线索可以解释为什么会发生这种情况吗?
亲切的问候,
杰伦