我正在运行 Ubuntu Server 20.04,它是完全最新的,配有 Raspberry Pi 4、4GB RAM(可能相关也可能不相关,但系统通过 USB3.0 端口使用 SSD 运行),作为一台能够运行一些 Docker 镜像的低功耗 PC。它运行 xfce4 显示魔镜,并通过 GPIO 端口重新收集一些数据(仅需几毫安电流):电源是原装 3A 电源适配器。
我遇到的问题是,今天它丢失了以太网连接,但 rpi 本身运行良好……直到我插入键盘,这时它就出现内核崩溃之类的情况。当时没有可用的日志记录来了解那里发生了什么。
当我查看日志时,以下内容引起了我的注意: https://pastebin.com/0VNDSUyL
当时,根据最新可用数据,内存使用率约为 90%(我运行 Telegraf 并将所有内容记录到在同一台机器上运行的 Influxdb 实例 [均使用 Docker])。
被终止的进程是 Java,但我不知道它是哪个 Docker 映像,因为运行时甚至没有安装在主机上。
- 这是否表示我的 RAM 不足?我该怎么做才能避免将来再出现此问题?
- 为什么当我还剩下大约 10% 的 RAM 时,OOM-killer 就开始启动了?这可以调整吗?
- 为什么它会切断我的以太网连接?它是否导致系统处于不稳定状态?
- 是否是某些与硬件相关的因素导致了此问题?
我不知道现在该去哪里找,所以任何帮助我都会非常感激!如果您需要更多详细信息,请直接询问 :)
编辑1:
我没有在这个系统上启用交换:
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:~ $
答案1
让我们创建缺失的/swapfile......
笔记:命令使用不当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