Я использую небольшой сервер (f1-micro) в Google GCE. Этот сервер действует как обратный прокси, поэтому на нем был установлен только небольшой NGINX, который просто прокси для функции Google Cloud. Использование очень низкое, трафик практически отсутствует.
Однако примерно раз в 1 месяц (а может быть и чаще) сервер вылетает без видимой причины. Глядя в консоль, загрузка ЦП зашкаливает, доступ по SSH не работает, и единственное решение - убить его и перезапустить сервер. Часто я также вижу большое количество дисковых операций ввода-вывода.
Зайдя на сервер, я заметил довольно большое использование памяти демоном 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 часов работы сервера. Использование памяти - это всего лишь предположение, но оно может объяснить дисковый ввод-вывод (использование подкачки). Есть какие-нибудь подсказки, почему это происходит?
С уважением,
Jeroen
Взгляните на документация:
При установке агента ведения журнала требуется минимум 250 МиБ памяти, но рекомендуется 1 ГиБ.
и потому что f1-micro
у экземпляра всего 614 МБ ОЗУ, это может быть причиной проблемы. Я проверил тестовый экземпляр, и сразу после запуска у него очень ограниченный объем свободной памяти.
Google Fluentd предварительно настроен по умолчанию, но вы можете попробовать настроить его, выполнив следующие действия. документация, например, вы можете изменить размер буферы. Также взгляните на это рекомендации. На мой взгляд, в таком случае лучше попробовать хотя бы [g1-small][5]
экземпляр с большим объемом памяти или отключить google-fluentd
сервис, если он вам не нужен.