Denis Yuriev

Записки бездельника

Главная » Linux » Ubuntu » zRam и Ubuntu 15.04

zRam и Ubuntu 15.04

Некоторое время назад рассказывал про способ более эффективного использования оперативной памяти в операционных семейства linux.

Установив на ноутбук Ubuntu 15.04 не долго думая установил скрипт для использования zram командой

sudo apt-get install zram-config

Но каким было мое удивление, когда заметил, что раздела подкачки не появилось.
Изучив проблему, нашел проблемное место и фикс оказался весьма не сложным.

Исправляем ошибку с zRam в Ubuntu 15.04

Скрипт zram-config определяет объем доступной оперативной памяти по выводу команды free, а так как в Ubuntu 15.04 её локализировали, то скрипт просто не может корректно отпарсировать вывод.

Исправим это недоразумение

Нам необходимо отредактировать файл /usr/bin/init-zram-swapping

sudo nano /usr/bin/init-zram-swapping

Пред нами открывается скрипт инициализации модуля и дальнейших манипуляций с ним:

#!/bin/sh

# load dependency modules
NRDEVICES=$(grep -c ^processor /proc/cpuinfo | sed 's/^0$/1/')
if modinfo zram | grep -q ' zram_num_devices:' 2>/dev/null; then
  MODPROBE_ARGS="zram_num_devices=${NRDEVICES}"
elif modinfo zram | grep -q ' num_devices:' 2>/dev/null; then
  MODPROBE_ARGS="num_devices=${NRDEVICES}"
else
  exit 1
fi
modprobe zram $MODPROBE_ARGS

# Calculate memory to use for zram (1/2 of ram)
totalmem=`free | grep -e "^Mem:" | sed -e 's/^Mem: *//' -e 's/  *.*//'`
mem=$(((totalmem / 2 / ${NRDEVICES}) * 1024))

# initialize the devices
for i in $(seq ${NRDEVICES}); do
  DEVNUMBER=$((i - 1))
  echo $mem > /sys/block/zram${DEVNUMBER}/disksize
  mkswap /dev/zram${DEVNUMBER}
  swapon -p 5 /dev/zram${DEVNUMBER}
done

Надо сделать лишь одну правку:

totalmem=`free | grep -e "^Mem:" | sed -e 's/^Mem: *//' -e 's/  *.*//'`

превращаем в

totalmem=`LC_ALL=C free | grep -e "^Mem:" | sed -e 's/^Mem: *//' -e 's/  *.*//'`

Сохраняем и перезагружаем компьютер.

Проверить, работает ли скрипт можно командой

~$ swapon -s
Filename	Type		Size	Used	Priority
/dev/sda3       partition	1976316	0	-1
/dev/zram0      partition	482100	137304	5
/dev/zram1      partition	482100	137372	5

Реакция сообщества Ubuntu

В багрепортах проблема описана подробно, как и решение онной. И даже уже исправили.. Но для еще не выпущенной 15.10.
Не знаю, будет ли исправление для 15.04, посему решил поделиться с русскоязычной аудиторией в своем блоге, чтобы господам в буржуйские ветки ползти нужда не заставляла)

Сделай приятное автору - поделись статьей в социальной сети.

4 Комментариев

  1. Roman_Petrov

    Очень полезный материал. Спасибо!

  2. zor1984qq

    Сталкивался, спасибо за статью, ставил, пробовал, удалил потом ибо слишком процессор постоянно грузит.

Оставьте комментарий

Войти с помощью: 
Denis Yuriev DMOZ Индекс цитирования

© 2017