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)
小智 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)
| 归档时间: |
|
| 查看次数: |
2730 次 |
| 最近记录: |