Meteor正在崩溃最小的DigitalOcean Droplet(内存不足:Kill进程......)

Mar*_*rek 5 memory process node.js meteor digital-ocean

我在基本(512GB)DigitalOcean Droplet上运行简单的Meteor应用程序.有一段时间,Meteor只是崩溃了这个错误信息:

在此输入图像描述

Out of memory: Kill process 9682 (node) ...
...
=> Exited from signal: SIGKILL
FATAL ERROR: JS Allocation failed - process out of memory
Run Code Online (Sandbox Code Playgroud)

怎么了?这是一个非常简单的应用程序,它无法花费所有的内存.

Ful*_*ack 15

如果需要,您可以保留最小的Droplet.我在5美元/月的DigitalOcean Droplet,512MB RAM和20 GB SSD上遇到了同样的问题.我没有升级,而是实现了如下交换:

使用dd命令创建并启用交换文件:

sudo dd if=/dev/zero of=/swapfile bs=1024 count=256k
Run Code Online (Sandbox Code Playgroud)

"of =/swapfile"指定文件的名称.在这种情况下,名称是swapfile.

接下来通过创建linux交换区域来准备交换文件:

sudo mkswap /swapfile
Run Code Online (Sandbox Code Playgroud)

结果显示:

Setting up swapspace version 1, size = 262140 KiB
no label, UUID=103c4545-5fc5-47f3-a8b3-dfbdb64fd7eb
Run Code Online (Sandbox Code Playgroud)

通过激活交换文件完成:

sudo swapon /swapfile
Run Code Online (Sandbox Code Playgroud)

然后,当您查看交换摘要时,您将能够看到新的交换文件.

swapon -s
Filename                Type        Size    Used    Priority
/swapfile                               file        262140  0   -1
Run Code Online (Sandbox Code Playgroud)

此文件将在虚拟专用服务器上持续,直到计算机重新启动.您可以通过将交换添加到fstab文件来确保交换是永久性的.

打开文件:

sudo nano /etc/fstab
Run Code Online (Sandbox Code Playgroud)

粘贴在以下行:

 /swapfile       none    swap    sw      0       0 
Run Code Online (Sandbox Code Playgroud)

文件中的Swappiness应设置为10.跳过此步骤可能会导致性能不佳,而将其设置为10将导致交换充当紧急缓冲区,从而防止内存不足崩溃.

您可以使用以下命令执行此操作:

echo 10 | sudo tee /proc/sys/vm/swappiness
echo vm.swappiness = 10 | sudo tee -a /etc/sysctl.conf
To prevent the file from being world-readable, you should set up the correct permissions on the swap file:

sudo chown root:root /swapfile 
sudo chmod 0600 /swapfile
Run Code Online (Sandbox Code Playgroud)

  • 是!!!虽然使用超过262mb的交换没有意义,或者我在这里遗漏了什么? (2认同)

小智 6

我能够通过使用比最初指定的(超过 256mb)更多的交换空间(超过 1GB)来解决此问题。

要将 Ubuntu 上的交换空间大小调整为 1Gb:

sudo swapoff -a

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

sudo mkswap /swapfile

sudo swapon /swapfile
Run Code Online (Sandbox Code Playgroud)