导轨资产管道“无法分配内存 - 的NodeJS”(rails assets pipeline “Ca

2019-06-25 11:06发布

我们刚刚从Rails的3.0.7升级到3.2.5的Rails和使用上飞的临时服务器资产管道汇编,但有些时候,我们面对这个异常!

Showing /var/rails/appname/app/views/common/_my_partial.html.haml where line # raised:

Cannot allocate memory - nodejs /tmp/execjs20120613-17090-thoc8f.js 2>&1

Extracted source (around line #):

Trace of template inclusion: app/views/layouts/application.html.haml

虽然没有什么花哨或巨大的内存分配在coffeescripts或图像文件夹进行例如!

谢谢...

Answer 1:

这是简单的花三分钟(或者两个,如果你键入快)到交换文件添加到您的服务器。

如果你正在运行Ubuntu(不知道有多好这适用于其他Linux发行版),只要按照从DigitalOcean本教程:

https://www.digitalocean.com/community/articles/how-to-add-swap-on-ubuntu-12-04

瞧!



Answer 2:

根据所提供的教程链接Kyle Carlson


检查交换空间

sudo swapon -s

空列表将确认您已经启用了没有交换文件:

Filename Type Size Used Priority

创建并启用交换文件(交换文件)

sudo dd if=/dev/zero of=/swapfile bs=1024 count=256k

创建一个Linux交换区域:

sudo mkswap /swapfile

输出:

Setting up swapspace version 1, size = 262140 KiB no label, UUID=103c4545-5fc5-47f3-a8b3-dfbdb64fd7eb

激活交换文件:

sudo swapon /swapfile

检查你是否能看到掉总结。

swapon -s

Filename                Type        Size    Used    Priority
/swapfile                               file        262140  0   -1

完成!


为了使交换文件permenant

sudo nano /etc/fstab

粘贴以下行:

/swapfile none swap sw 0 0

Swappiness在文件中应设置为10跳过该步骤可导致两个性能较差,而将其设置为10将导致交换充当紧急缓冲区,防止外的存储器崩溃。

echo 10 | sudo tee /proc/sys/vm/swappiness
echo vm.swappiness = 10 | sudo tee -a /etc/sysctl.conf

建立在交换文件无法读取公众正确的权限:

sudo chown root:root /swapfile 
sudo chmod 0600 /swapfile


Answer 3:

根据@ tohi的回答,我创建了一个脚本,您可以粘贴到终端。

# Turn it (off) on
# sudo swapoff -a
sudo swapon -s

# Create a swap file
# 512k --> Swapfile of 512 MB
sudo dd if=/dev/zero of=/swapfile bs=1024 count=512k

# Use the swap file
sudo mkswap /swapfile
sudo swapon /swapfile

# make sure the swap is present after reboot:
sudo echo " /swapfile       none    swap    sw      0       0 " >> /etc/fstab

# Set the swappiness (performance - aware)
echo 10 | sudo tee /proc/sys/vm/swappiness
echo vm.swappiness = 10 | sudo tee -a /etc/sysctl.conf           

# Change the permission to non-world-readable
sudo chown root:root /swapfile 
sudo chmod 0600 /swapfile

更新 :如果你需要调整/swapfile在稍后看看这个答案: https://askubuntu.com/a/763717/508371



Answer 4:

我们联系了供应商的支持,他们在2条消息是这样回应:

  1. 有两件事情可以引起这样的:要么你确实运行内存不断你的威比没有配置的交换

我们有一个系统管理员检查它,我们会尽快给您回应车票。

  1. 您的交换是禁用出于某种原因 ,这就是为什么你有内存问题。 我固定fstab的项目 ,并启用正确的分区交换。 现在,您应该罚款。

直到现在这个错误不会显示:)希望它会继续没有表现出太大的未来......

感谢和好运 ...



Answer 5:

也许它可以帮助:

RAILS_ENV=production rake assets:clean

重新启动您的Web服务器/ EG

service apache2 restart

然后:

RAILS_ENV=production rake assets:precompile


文章来源: rails assets pipeline “Cannot allocate memory - nodejs”