Rails "Невозможно выделить память - nodejs"
мы только что обновили до Rails 3.2.5 от Rails 3.0.7 и с помощью компоновки компоновки активов на лету для промежуточного сервера, но иногда мы сталкиваемся с этим исключением!
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
Несмотря на то, что в кофейнях или в папке с изображениями, например, не выполняется ничего фантастического или огромного выделения памяти!
Спасибо...
Ответы
Ответ 1
Простой тратить три минуты (может быть, два, если вы быстро набираете), чтобы добавить файл свопинга на ваш сервер.
Если вы используете Ubuntu (не знаете, насколько это хорошо работает для других Linux-аксессуаров), просто следуйте этому руководству от DigitalOcean:
https://www.digitalocean.com/community/articles/how-to-add-swap-on-ubuntu-12-04
Voila!
Ответ 2
На основе ссылки на учебник, предоставленной Kyle Carlson
Проверить пространство подкачки
sudo swapon -s
Пустой список подтвердит, что у вас нет файлов подкачки:
Filename Type Size Used Priority
Создать и включить файл свопинга (swapfile)
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
Готово!
Чтобы сделать файл подкачки
sudo nano /etc/fstab
Вставить в следующую строку:
/swapfile none swap sw 0 0
Счастье в файле должно быть установлено на 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
Ответ 3
На основе ответа @tohi я создал script, который вы можете вставить в терминал.
# 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
Ответ 4
Мы связались с поддержкой провайдера, и они ответили в 2 сообщениях следующим образом:
- Есть две вещи, которые могут быть причиной этого: либо у вас действительно заканчивается память или , у вашего Webby нет конфигурации смены.
У нас есть системный администратор, который проверяет его и хорошо реагирует на ваш билет в ближайшее время.
- Ваш обмен был отключен по какой-либо причине, и именно поэтому у вас были проблемы с памятью. Я зафиксировал запись fstab и включил swap в правом разделе.
Теперь все должно быть хорошо.
И до сих пор эта ошибка не показывает:) Надеюсь, она не будет продолжать показывать и для будущего...
Спасибо, и лучше всего LUCK...