Подтвердить что ты не робот

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

Несмотря на то, что в кофейнях или в папке с изображениями, например, не выполняется ничего фантастического или огромного выделения памяти!

Спасибо...

4b9b3361

Ответ 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...