Как изменить zram размер?

Я установил zram с sudo apt-get install zram-config. После этого это запустилось автоматически и когда я проверил с cat /proc/swaps это работает правильно

Но когда я использовал sudo echo 128M > /sys/block/zram0/disksize для изменения zram размера как в документе, я всегда добираюсь bash: /sys/block/zram0/disksize: permission denied

Даже когда я выключил его с sudo swapoff /dev/zram0 затем измененный я все еще добрался permission denied

Таким образом, как я могу изменить zram размер? И disksize пространство это использует на RAM или просто максимуме zram размер диска?

3
задан 7 February 2016 в 10:40

5 ответов

Согласно http://manpages.ubuntu.com/manpages/xenial/man8/zramctl.8.html , можно удалить и воссоздать подкачку zram как это:

# swapoff /dev/zram0
# zramctl --reset /dev/zram0
# zramctl --find --size 1024M
/dev/zram0
# mkswap /dev/zram0
# swapon /dev/zram0

Для постоянного изменения размера необходимо адаптировать init сценарий, где файлы подкачки создаются. Знайте, что этот файл может быть переопределен будущими системными обновлениями.

Для увеличения размера своп-файла в Ubunutu 16.04 с 50% до 200% размера общей памяти измените эту строку в/usr/bin/init-zram-swapping

mem=$(((totalmem / 2 / ${NRDEVICES}) * 1024))

к

mem=$(((totalmem * 2 / ${NRDEVICES}) * 1024))
4
ответ дан 1 December 2019 в 15:36

Необходимо измениться на "корень", чтобы сделать это.

sudo -i
# echo 128M > /sys/block/zram0/disksize
0
ответ дан 1 December 2019 в 15:36

Нет никакого файла в /usr/bin/init-zram-swapping. Это кажется с тех пор Гостеприимным, файл теперь расположен в /sbin/zram-config-start. Вы видите это собой смотрящий $ cat /etc/init/zram-config.conf.

description "Initializes zram swaping and /tmp"
author      "Adam Conrad <adconrad@canonical.com>"

start on runlevel [2345]

pre-start exec /sbin/zram-config-start

pre-stop exec /sbin/zram-config-stop

файл /sbin/zram-config-start намного более сложен, чем прежде. Интересно, что сделать для увеличения размера поршня?

0
ответ дан 1 December 2019 в 15:36

Как олдскульный технократ, я предпочитаю делать вещи на максимально низком уровне. Я поэтому создал маленький сценарий, чтобы включить или изменить размер моего zram файла подкачки.

#!/bin/bash
# Based on https://github.com/ric96/zram
# ver: 30 dec 2018
# Installed in /usr/local/bin/my-zram.bash
#  And made executable " chmod a+x /usr/local/bin/my-zram.bash "
# I use an /etc/crontab entry of:
#  " @reboot root /usr/local/bin/my-zram.bash 256M ; # [ optionally use w/ "'size'M" for Mega ]
# Or for command-line: " sudo /usr/local/bin/my-zram.bash 256M "
# Note that you may want to change the '256M' parameter I am using.

logger -- $0 $$ zram $1 Start

## If $1 exists
test -n $1 && \
 {
  ZRAMSIZE=$1
  DOLONE=$1
 }
## And yes, invalid option input will create interesting, but apparently not hazardous results.

## If no $1, fallback and calculate a reasonable (to me) size.
test -z $1 && \
 {
  totalmem=`free | grep -e "^Mem:" | awk '{print $2}'`
  mem=$(( ($totalmem) * 1024 / 2 ))
  #echo $mem > /sys/block/zram0/disksize
  ZRAMSIZE=$mem
  DOLONE=NULL
  logger -- $0 $$ Using totalmem $totalmem \* 1024 /2 = $mem ZRAMSIZE=$ZRAMSIZE
 }

## Do we already have a /dev/zram0 ?? if so, swapoff and reset it.
test -b /dev/zram0 && swapoff -v /dev/zram0
test -b /dev/zram0 && echo 1 > /sys/block/zram0/reset

## If /dev/zram0 does NOT exist, but the 'zram' kernel module IS loaded, then remove it.
test -b /dev/zram0 || ( lsmod|grep -q zram && rmmod -v zram )

## (Re)Install the 'zram' kernel module. FYI: It doesn't hurt to 'reinstall'...
modprobe -v zram num_devices=1

## Build the zram swapfile.
echo $ZRAMSIZE > /sys/block/zram0/disksize
mkswap /dev/zram0
swapon -v -p 5 /dev/zram0

logger -- $0 $$ zram Done.  ZRAMSIZE=$ZRAMSIZE  \$1=$DOLONE

# The_End

Приятного отдыха! Это работает на меня. И можно хотеть рассмотреть, понять, и отредактировать для удовлетворения ситуации. :-)

И знайте, что, если Вы запускаете этот скрипт от крона, как записано, он производит вывод, который желание (должно) быть отправлено по почте Вам (или корень).

1
ответ дан 1 December 2019 в 15:36

Я пользователь Fedora 33, но наткнулся на этот ответ, когда искал, как настроить zram. Это мой /usr/lib/systemd/zram-generator.conf:

# This config file enables a /dev/zram0 device with the default settings:
# — size — half of available RAM or 4GB, whichever is less
# — compression — most likely lzo-rle
#
# To disable, uninstall zram-generator-defaults or create empty
# /etc/systemd/zram-generator.conf file.
[zram0]
zram-fraction = 2
max-zram-size=none

Это сохраняется при перезагрузке и, похоже, это рекомендуемый способ управления zram.

См. https://fedoraproject.org/wiki/Changes/SwapOnZRAM, особенно man 5 zram-generator.conf

4
ответ дан 16 October 2020 в 09:53

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

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