конвейер ресурсов rails «Не удается выделить память - nodejs»

мы только что обновились до Rails 3.2.5 с Rails 3.0.7 и использовали компиляцию asset-pipe на лету для промежуточного сервера, но иногда мы сталкиваемся с этим исключением!

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 или в папке images, например, ничего необычного или огромного распределения памяти не делается!

Спасибо...

 Kyle Carlson08 янв. 2014 г., 18:40
@MustaphaELBanna: Мое решение сработало для вас? Если да, пожалуйста, отметьте это как ответ? Спасибо!
 Kyle Carlson22 нояб. 2013 г., 16:32
@yorch: см. мой комментарий ниже. Это решило проблему за 30 секунд для меня.
 yorch09 июл. 2012 г., 05:10
Я сталкиваюсь с подобной проблемой, ты решил ее? Спасибо!

Ответы на вопрос(5)

я создал скрипт, который вы можете вставить в терминал.

# 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

Update: Если вам нужно изменить размер/swapfile позже проверьте этот ответ:https://askubuntu.com/a/763717/508371

Может быть, это помогает:

RAILS_ENV=production rake assets:clean

Перезапустите ваш веб-сервер / например.

service apache2 restart

Затем:

RAILS_ENV=production rake assets:precompile
Решение Вопроса

если вы наберете быстро), чтобы добавить файл подкачки на ваш сервер.

Если вы используете Ubuntu (не знаете, насколько хорошо это работает для других версий Linux), просто следуйте этому руководству от DigitalOcean:

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

Вуаля!

 04 мар. 2015 г., 06:22
@KyleCarlson вы можете в любом случае добавить ссылку на ваш блог?
 21 окт. 2014 г., 18:40
Да, это должно быть помечено как принятый ответ!
 06 окт. 2014 г., 16:56
@MustafaELBanna Не могли бы вы отметить это как принятый ответ? Многие другие люди думают, что это так.
 13 янв. 2014 г., 04:03
Я столкнулся с аналогичной проблемой при развертывании с AWS Elastic Beanstalk, обнаружил эту проблему при использовании SSH для подключения к экземпляру и проверки журналов производства, после чего следовал руководству и был исправлен. Спасибо!

и они ответили в виде 2 сообщений, подобных этому:

There are two things that can be causing this: Either you are indeed running out of memory constantly or your Webby doesn’t have swap configured.

У нас есть системный администратор, который проверяет его, и мы скоро ответим на ваш билет.

Your swap was disable for some reason, and that is why you were having memory issues. I fixed the fstab entry, and enable the swap on the right partition. You should be fine now.

И до сих пор эта ошибка не показывает :) Надеюсь, что она не будет отображаться и в будущем ...

Спасибо, и удачи ...

 13 мар. 2015 г., 01:59
отметьте правильный ответ ...

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

Готово!

To make the swap file permenant

sudo nano /etc/fstab

Вставьте следующую строку:

/swapfile none swap sw 0 0

Параметр swappiness в файле должен быть установлен на 10. Пропуск этого шага может привести к снижению производительности, в то время как установка его на 10 приведет к тому, что swap будет действовать как аварийный буфер, предотвращая сбои нехватки памяти.

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

Ваш ответ на вопрос