Как увеличить виртуальную память Ubuntu и / или своп для Matlab?

Попробуйте удалить его, набрав

sudo apt-get remove --purge ntop

переустановите его:

sudo apt-get install ntop

Если это не помогает нам сказать, пожалуйста!

1
задан 23 May 2017 в 15:39

7 ответов

Вы не можете посвятить своп для программного обеспечения. Вы можете создать сценарий оболочки, который создает своп, запустить MATLAB и удалить swap, когда MATLAB завершает работу.

Вот пример скрипта, который создает своп 10Mb в каталоге / tmp, монтирует его , запускает R (у меня нет MATLAB), подождите R выхода, umount файл подкачки и удалите его.

Обратите внимание, что: - у вас будет предупреждение, потому что файл подкачки не принадлежит root , Это потому, что система будет использовать, если для любого программного обеспечения, может быть, не работает вами, и вы можете прочитать в этом файле ... Я позволил вам исправить это. - если вы [ctrl] - [c] сценарий, или выйдите из него, и т. д., своп останется установленным. Я позволил вам исправить это.

#!/usr/bin/env bash

SWAP_FILE=/tmp/my_swap_file
SIZE_MB=10
TO_RUN="R"

dd if=/dev/zero of=${SWAP_FILE} bs=1M count=${SIZE_MB}
mkswap ${SWAP_FILE}
chmod 0600 ${SWAP_FILE}
sudo swapon -v ${SWAP_FILE}
echo "Swap enabled. Press enter to continue"; read
${TO_RUN}
echo "I will remove the swap. Press enter to continue"; read
sudo swapoff -v ${SWAP_FILE}
rm -vf ${SWAP_FILE}
12
ответ дан 23 May 2018 в 08:02
  • 1
    Ну, на самом деле он не посвящен MATLAB, но для любой ситуации, требующей временного увеличения объема ОЗУ. Обратите внимание, что swapon / swapoff требует права root (так: sudo) – Michael Hooreman 17 July 2016 в 23:07
  • 2
    Да у тебя есть. Вот как стать root. – Michael Hooreman 18 July 2016 в 07:51
  • 3
    Хороший ответ. Я лично подошел бы, чтобы это было, и сохраните свой собственный скрипт add-swap.sh для этих прекрасных моментов, когда память съедается – Sergiy Kolodyazhnyy 20 July 2016 в 19:52
  • 4
    Я наградил здесь награду, потому что это сделало меня правильной. Однако я не могу принять ответ, потому что управление ошибками очень сложно и неполно. Лучше всего настроить своп отдельно от запуска Matlab, см. Ответ здесь unix.stackexchange.com/a/298543/16920 – Léo Léopold Hertz 준영 27 July 2016 в 22:17

Как вы можете расширить свою память SWAP с помощью внешнего жесткого диска:

Сначала запишите свою реальную память SWAP, запустив:
free -m
Во-вторых, у вас есть папка вашего жесткого диска. Это должно быть что-то вроде /media/myhdd. Определите размер дополнительного SWAP, который вы хотите добавить. Скажем, X GB. Рассчитайте количество байтов, количество которых. Используя GB, это: Y = X * 1024 ^ 3, где Y - результат ваших вычислений. Выберите размер блока файла (он находится в байтах). Давайте используем значение по умолчанию здесь: 4096 (подробнее об этом здесь). Вычислите количество блоков, которые будет иметь файл: Z = Y / 4096 Создайте файл размера X GB, используя следующую команду в терминале:
dd if=/dev/zero of=/media/myhdd/swapfile bs=4096 count=Z
Создайте SWAP в файле, используя:
sudo mkswap /media/myhdd/swapfile -f
Наконец, включите SWAP:
sudo swapon -p 1000 /media/myhdd/swapfile

Теперь ваш SWAP увеличился. Еще раз проверьте free -m

Мы можем настроить это в неинтерактивном скрипте (необходимые мощности sudo):

#!/bin/bash

### Inputs ###

swap_GB=$(expr 1) # Enter here size of the swap memory to create, in GB.
swap_bs=$(expr 4096) # Enter here block size, in bytes (must be a multiple of 8).
HDD_folder="/media/myhdd/" # Enter absolute path of HDD inside the brackets.

### Swap creation ###

swap_size=$(expr $swap_GB \* 1024 \* 1024 \* 1024 / $swap_bs)
dd if=/dev/zero of=${HDD_folder}"/swapfile" bs=$swap_bs count=$swap_size
mkswap ${HDD_folder}"/swapfile" -f
swapon -p 1000 ${HDD_folder}"/swapfile"

### EOF ###

PS : пожалуйста, оптимизируйте / исправьте, если это возможно. Как уже говорилось, это мой первый скрипт:)

1
ответ дан 23 May 2018 в 08:02
  • 1
    Ну, swap уже медленный, но я не могу себе представить, что он меняет на USB-накопитель. Это станет медленным, как ад ИМХО – Michael Hooreman 21 July 2016 в 00:06
  • 2
    Сценарий в виде резюме был бы замечательным. – Léo Léopold Hertz 준영 21 July 2016 в 08:48
  • 3
    Я никогда не создавал сценарий, но давал бы ему уйти. – user 21 July 2016 в 10:17

Я бы, по крайней мере, испытал, насколько хорошо сжата RAM (модуль ядра zram, доступный начиная с версии ядра 3.14).

Следуя инструкциям wiki archlinux

modprobe zram
echo lz4 > /sys/block/zram0/comp_algorithm
echo 4G > /sys/block/zram0/disksize
mkswap --label zram0 /dev/zram0
swapon --priority 100 /dev/zram0

Я предполагаю, что сжатая оперативная память должна быть быстрее, чем дисковый ввод-вывод.

Чтобы сохранить изменения после перезагрузки, поместите команды загрузки времени в /etc/rc.local и запустите sudo systemctl enable rc-local.service.

1
ответ дан 23 May 2018 в 08:02
  • 1
    Я добавил ответ на поток unix.stackexchange.com/q/297752/16920 за эффект zram по размеру памяти и скорости подкачки. Я не могу найти никакого влияния на размер памяти, возможно, в основном на пейджинге. Тем не менее, предупреждение systemd / ... увеличилось с помощью runit. Было бы здорово узнать о частоте ошибок в zram. – Léo Léopold Hertz 준영 23 July 2016 в 10:53
  • 2
    В случае zram0 имеются статистические данные, доступные в / sys / block / zram0 в файлах orig_data_size и compr_data_size . У меня там не так много данных, но для них соотношение составляет около 0,35. При таком соотношении 11 ГБ данных могут вместить до 4 ГБ ОЗУ. Это может означать, что 7 ГБ данных не будут заменены на диск. – J.J. Hakala 23 July 2016 в 11:00
  • 3
    Вы можете поместить команды времени загрузки в /etc/rc.local , а затем sudo systemctl enable rc-local.service – J.J. Hakala 23 July 2016 в 11:53
  • 4
    Я узнал, что zram неприменим для обмена на HDD / SSD, поэтому zram здесь не применим, см. Поток askubuntu.com/a/472227/25388 – Léo Léopold Hertz 준영 25 July 2016 в 19:03

Используйте zswap, если у вас есть разделы подкачки на HDD / SSD. Модуль zram не имеет частей подкачки на HDD / SSD, поэтому ответ Хакалы неприменим. См. Раздел zram vs zswap vs zcache. Окончательное руководство: когда использовать для объяснения. Настройка zswap, как описано в потоке. Как успешно активировать Zswap для вычисления Matlab в Ubuntu 16.04?

Заменить соответствующую строку следующей строкой в ​​/etc/default/grub
# https://wiki.archlinux.org/index.php/Zswap
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash zswap.enabled=1 zswap.max_pool_percent=25 zswap.compressor=lzo"
Запустить sudo update-grub.
1
ответ дан 23 May 2018 в 08:02

Как вы можете расширить свою память SWAP с помощью внешнего жесткого диска:

Сначала запишите свою реальную память SWAP, запустив:
free -m
Во-вторых, у вас есть папка вашего жесткого диска. Это должно быть что-то вроде /media/myhdd. Определите размер дополнительного SWAP, который вы хотите добавить. Скажем, X GB. Рассчитайте количество байтов, количество которых. Используя GB, это: Y = X * 1024 ^ 3, где Y - результат ваших вычислений. Выберите размер блока файла (он находится в байтах). Давайте используем значение по умолчанию здесь: 4096 (подробнее об этом здесь). Вычислите количество блоков, которые будет иметь файл: Z = Y / 4096 Создайте файл размера X GB, используя следующую команду в терминале:
dd if=/dev/zero of=/media/myhdd/swapfile bs=4096 count=Z
Создайте SWAP в файле, используя:
sudo mkswap /media/myhdd/swapfile -f
Наконец, включите SWAP:
sudo swapon -p 1000 /media/myhdd/swapfile

Теперь ваш SWAP увеличился. Еще раз проверьте free -m

Мы можем настроить это в неинтерактивном скрипте (необходимые мощности sudo):

#!/bin/bash

### Inputs ###

swap_GB=$(expr 1) # Enter here size of the swap memory to create, in GB.
swap_bs=$(expr 4096) # Enter here block size, in bytes (must be a multiple of 8).
HDD_folder="/media/myhdd/" # Enter absolute path of HDD inside the brackets.

### Swap creation ###

swap_size=$(expr $swap_GB \* 1024 \* 1024 \* 1024 / $swap_bs)
dd if=/dev/zero of=${HDD_folder}"/swapfile" bs=$swap_bs count=$swap_size
mkswap ${HDD_folder}"/swapfile" -f
swapon -p 1000 ${HDD_folder}"/swapfile"

### EOF ###

PS : пожалуйста, оптимизируйте / исправьте, если это возможно. Как уже говорилось, это мой первый скрипт:)

1
ответ дан 23 May 2018 в 08:02
  • 1
    Я никогда не создавал сценарий, но давал бы ему уйти. – user 21 July 2016 в 10:17

Как вы можете расширить свою память SWAP с помощью внешнего жесткого диска:

Сначала запишите свою реальную память SWAP, запустив:
free -m
Во-вторых, у вас есть папка вашего жесткого диска. Это должно быть что-то вроде /media/myhdd. Определите размер дополнительного SWAP, который вы хотите добавить. Скажем, X GB. Рассчитайте количество байтов, количество которых. Используя GB, это: Y = X * 1024 ^ 3, где Y - результат ваших вычислений. Выберите размер блока файла (он находится в байтах). Давайте используем значение по умолчанию здесь: 4096 (подробнее об этом здесь). Вычислите количество блоков, которые будет иметь файл: Z = Y / 4096 Создайте файл размера X GB, используя следующую команду в терминале:
dd if=/dev/zero of=/media/myhdd/swapfile bs=4096 count=Z
Создайте SWAP в файле, используя:
sudo mkswap /media/myhdd/swapfile -f
Наконец, включите SWAP:
sudo swapon -p 1000 /media/myhdd/swapfile

Теперь ваш SWAP увеличился. Еще раз проверьте free -m

Мы можем настроить это в неинтерактивном скрипте (необходимые мощности sudo):

#!/bin/bash

### Inputs ###

swap_GB=$(expr 1) # Enter here size of the swap memory to create, in GB.
swap_bs=$(expr 4096) # Enter here block size, in bytes (must be a multiple of 8).
HDD_folder="/media/myhdd/" # Enter absolute path of HDD inside the brackets.

### Swap creation ###

swap_size=$(expr $swap_GB \* 1024 \* 1024 \* 1024 / $swap_bs)
dd if=/dev/zero of=${HDD_folder}"/swapfile" bs=$swap_bs count=$swap_size
mkswap ${HDD_folder}"/swapfile" -f
swapon -p 1000 ${HDD_folder}"/swapfile"

### EOF ###

PS : пожалуйста, оптимизируйте / исправьте, если это возможно. Как уже говорилось, это мой первый скрипт:)

1
ответ дан 23 May 2018 в 08:02
  • 1
    Я никогда не создавал сценарий, но давал бы ему уйти. – user 21 July 2016 в 10:17

Как вы можете расширить свою память SWAP с помощью внешнего жесткого диска:

Сначала запишите свою реальную память SWAP, запустив:
free -m
Во-вторых, у вас есть папка вашего жесткого диска. Это должно быть что-то вроде /media/myhdd. Определите размер дополнительного SWAP, который вы хотите добавить. Скажем, X GB. Рассчитайте количество байтов, количество которых. Используя GB, это: Y = X * 1024 ^ 3, где Y - результат ваших вычислений. Выберите размер блока файла (он находится в байтах). Давайте используем значение по умолчанию здесь: 4096 (подробнее об этом здесь). Вычислите количество блоков, которые будет иметь файл: Z = Y / 4096 Создайте файл размера X GB, используя следующую команду в терминале:
dd if=/dev/zero of=/media/myhdd/swapfile bs=4096 count=Z
Создайте SWAP в файле, используя:
sudo mkswap /media/myhdd/swapfile -f
Наконец, включите SWAP:
sudo swapon -p 1000 /media/myhdd/swapfile

Теперь ваш SWAP увеличился. Еще раз проверьте free -m

Мы можем настроить это в неинтерактивном скрипте (необходимые мощности sudo):

#!/bin/bash

### Inputs ###

swap_GB=$(expr 1) # Enter here size of the swap memory to create, in GB.
swap_bs=$(expr 4096) # Enter here block size, in bytes (must be a multiple of 8).
HDD_folder="/media/myhdd/" # Enter absolute path of HDD inside the brackets.

### Swap creation ###

swap_size=$(expr $swap_GB \* 1024 \* 1024 \* 1024 / $swap_bs)
dd if=/dev/zero of=${HDD_folder}"/swapfile" bs=$swap_bs count=$swap_size
mkswap ${HDD_folder}"/swapfile" -f
swapon -p 1000 ${HDD_folder}"/swapfile"

### EOF ###

PS : пожалуйста, оптимизируйте / исправьте, если это возможно. Как уже говорилось, это мой первый скрипт:)

1
ответ дан 23 May 2018 в 08:02
  • 1
    Я никогда не создавал сценарий, но давал бы ему уйти. – user 21 July 2016 в 10:17

Другие вопросы по тегам:

Похожие вопросы: