Помогите понять причину появления oom-killer

Я запускаю Ubuntu Server 20.04 полностью обновленный с Raspberry Pi 4, 4 ГБ оперативной памяти (может быть актуально или нет, но система работает с SSD через порт USB3.0) в качестве маломощного ПК, способного запускать некоторые образы Docker. Он работает под управлением xfce4, отображая Magic Mirror, и собирает некоторые данные через порты GPIO (что занимает всего несколько мА): источником питания является оригинальный адаптер питания 3A.

Проблема в том, что сегодня он потерял соединение ethernet, но сам rpi продолжал работать просто отлично... пока я не подключил клавиатуру, и тогда он просто запаниковал. В этот момент не удалось записать журнал, чтобы узнать, что там произошло.

Когда я проверил журнал, мое внимание привлекло следующее: https://pastebin.com/0VNDSUyL

В то время использование памяти составляло около 90%, согласно последним доступным данным (я запускаю Telegraf и записываю все в журнал Influxdb, запущенный [оба с Docker] на одной машине).

Процесс, который был убит, был Java, но я не знаю, какой образ Docker это был, потому что среда выполнения даже не установлена на хосте.

  • Является ли это индикатором того, что у меня не хватает оперативной памяти? Что я могу сделать, чтобы избежать этой проблемы в будущем?
  • Почему OOM-killer сработал, когда у меня оставалось около 10% оперативной памяти? Можно ли это исправить?
  • Почему он убил мое соединение ethernet? Это привело систему в нестабильное состояние?
  • Может ли это быть что-то связанное с аппаратным обеспечением, что создает эту проблему?

Я не знаю, где искать дальше в настоящее время, поэтому любая помощь здесь будет очень признательна! Если вам нужно больше деталей, просто спросите :)

EDIT1:

У меня нет включенного свопа на этой системе:

ubuntu@unifi:~ $ free -h
              total        used        free      shared  buff/cache   available
Mem:          3.7Gi       2.7Gi       190Mi       203Mi       826Mi       886Mi
Swap:            0B          0B          0B
ubuntu@unifi:~ $ grep -i swap /etc/fstab 
ubuntu@unifi:~ $ 
0
задан 24 August 2020 в 01:44

1 ответ

Давайте создадим отсутствующий файл /swap...

Примечание: Неправильное использование команды dd может привести к потере данных. Предложите скопировать/вставить.

sudo swapoff -a           # turn off swap
sudo rm -i /swapfile      # remove old /swapfile

sudo dd if=/dev/zero of=/swapfile bs=1M count=4096

sudo chmod 600 /swapfile  # set proper file protections
sudo mkswap /swapfile     # init /swapfile
sudo swapon /swapfile     # turn on swap
free -h                   # confirm 4G RAM and 4G swap

Подтвердите эту строку в /etc/fstab... и подтвердите отсутствие других строк "подкачки"...

/swapfile    none    swap    sw      0   0

reboot                    # reboot and verify operation
0
ответ дан 24 August 2020 в 13:58

Другие вопросы по тегам:

Похожие вопросы: