Форум русскоязычного сообщества Ubuntu


Автор Тема: Ubuntu в ОЗУ  (Прочитано 5328 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн LepihinMS

  • Автор темы
  • Новичок
  • *
  • Сообщений: 14
    • Просмотр профиля
Ubuntu в ОЗУ
« : 04 Мая 2013, 03:40:52 »
НАЧАЛО ПОСТА ДЛЯ ТЕХ, КТО ЧИТАЕТ СКАЗКИ

Товарищи, позвольте рассказать историю, впечатления от которой не отпускают меня уже полгода.

Долгим ноябрьским вечером я всматривался в Aero интерфейс Windows Vista. Это зрелище, и общая неторопливость ОС, навеяли мысль создать раздел в оперативной памяти. После разговора с Яндексом выяснилось, что это возможно и практикуется. Некой утилитой, носящей уникальное название "RAMDisk", создал раздел в ОЗУ. Утилита CrystalDiskMark радостно сообщила, что скорость работы этого раздела over5GB/s. Подивившись результату, я продолжил коротать длинный ноябрьский вечер.

На раздел в ОЗУ я положил образ VirtualBOX'овского жесткого диска с установленной на него Windows XP. Предсказуемо, XP начала "летать" в тех случаях, когда обращалась к диску, и традиционно по виртуальномашинному задумывалась, когда требовался процессор. Утилита CrystalDiskMark, запущенная внутри виртуальной машины, показала скорость работы диска на уровне SSD - over300MB/s.

Эти цифры и будоражат мое сознание...


НАЧАЛО ПОСТА ДЛЯ ТЕХ, КТО НЕ ЧИТАЕТ СКАЗКИ

Условия:
- есть компьютер с 16+ГБ ОЗУ. SSD в нем или HDD - не важно.
- используем актуальную версию Ubuntu
- включаем компьютер утром и выключаем вечером
- есть ИБП

Идея:
При запуске ПК все файлы ОС (раздел целиком?) или их большинство (в том числе установленный софт, но без /home) копируются в раздел в ОЗУ и загрузка Ubuntu начинается уже из ОЗУ. Под раздел можно отдать и половину ОЗУ.

Синхронизация данных между разделом на HDD/SSD и разделом в ОЗУ происходит либо через определенный интервал времени в процессе работы ОС, либо при завершении работы ОС.

Зачем:
Таким образом планируется получить очень отзывчивую ОС. Бобочный эффект - пресловутая экономия ресурса SSD. При такой схеме ОС, не теряя отзывчивость, могла бы "находиться" на HDD, а /home на SSD.

Да и просто интересно. (:

Что уже существует:
Существуют дистрибутивы-малыши, на пример SliTaz, которые полностью загружаются в ОЗУ и позволяют отключить загрузочную флешку. Значит, технология уже среди нас. "Больших" дистрибутивов с такой "фишкой" я не наяндексил. Может они есть?


ТУТ СНОВА НАЧИНАЮТСЯ СКАЗКИ

Не видите ли вы HDD/SSD костылем для энергозависимой ОЗУ?
Не видите ли вы ОЗУ костылем для медлительных HDD/SSD?
Придем ли мы к Одной Памяти с изобретением энергонезависимой ОЗУ или разогнав SSD до Over5GB/s (и решив проблему надежности)?

В 2005 году я наткнулся на статью о Gigabyte i-RAM. i-RAM - это накопитель на базе ОЗУ с батарейкой. (: Ссылка на стотью о Gigabyte i-RAM: http://www.thg.ru/storage/20050910/onepage.html

Почему бы не допилить i-RAM? Ставим на него уже не 4ГБ ОЗУ (как в 2005г), а 32. С обратной стороны платы можно приклеить SSD. И батарейку обязательно! Специально разработанный аппаратный контроллер создает единое пространство как в случае Apple Fusion Drive. Ссылка на статью в Википедии: http://ru.wikipedia.org/wiki/Fusion_Drive В идеале получится запоминающее устройство, способное работать на скорости 0,3-5GB/s. Куда только его подключить? PCI-X? Thunderbolt?

Начинайте думать над этим и высказываться, а я пойду копать в упомянутом направлении...
« Последнее редактирование: 04 Мая 2013, 04:03:21 от LepihinMS »

Оффлайн jamcb

  • Новичок
  • *
  • Сообщений: 31
    • Просмотр профиля

Оффлайн LepihinMS

  • Автор темы
  • Новичок
  • *
  • Сообщений: 14
    • Просмотр профиля
Re: Ubuntu в ОЗУ
« Ответ #2 : 04 Мая 2013, 08:51:35 »
jamcb, спасибо за ссылку! То, что надо. Я бы сам не наяндексил. :)

Сделал по рецепту. Без чьего либо разрешения перепишу сюда статью по ссылке с переводом. Да простит меня автор - для общего блага же. В конце поста опишу возникшие проблемы. Надеюсь, поможете.

Итак, пересказ статьи:

Об компьютере: Intel Core i3, 4ГБ ОЗУ (4ГБ мало, они все уйдут под раздел /)
О дистрибутиве: Ubuntu 13.04 64bit

При установке были созданы разделы /boot (100МБ), /home, / и swap на 1ГБ (если у вас 6+ГБ ОЗУ - не создавайте)

Шаг №1:
Создаем копию /etc/fstab

sudo cp /etc/fstab /etc/fstab.bak
Шаг №2:
Открываем /etc/fstab

sudo gedit /etc/fstab
Комментируем или удаляем строку описывающую раздел /

# UUID=4db0407b-2691-4e9e-b673-066011ade42e / ext4    errors=remount-ro 0 1
Дописываем рядом новую строку

none / tmpfs defaults 0 0
Сохраняем

Шаг №3
Переходим в папку /usr/share/initramfs-tools/scripts/

cd /usr/share/initramfs-tools/scripts/
Шаг №4
Создаем копию local

sudo cp local local.bak
Шаг №5
Открываем local

sudo gedit local
Шаг №6
Находим фрагмент

# FIXME This has no error checking

# Mount root

mount ${roflag} -t ${FSTYPE} ${ROOTFLAGS} ${ROOT} ${rootmnt}

Заменяем его на другой

# FIXME This has no error checking

# Mount root

#mount ${roflag} -t ${FSTYPE} ${ROOTFLAGS} ${ROOT} ${rootmnt}

mkdir /ramboottmp

mount ${roflag} -t ${FSTYPE} ${ROOTFLAGS} ${ROOT} /ramboottmp

mount -t tmpfs -o size=100% none ${rootmnt}

cd ${rootmnt}

cp -rfa /ramboottmp/* ${rootmnt}

umount /ramboottmp

Сохраняем

Шаг №7
Создаем от такую загогулину initrd.img-ramboot (:
Ради нее все затевалось

sudo mkinitramfs -o /boot/initrd.img-ramboot
Шаг №8
Возвращаем файлы на исходную

sudo cp -f local.bak local
sudo cp -f /etc/fstab.bak /etc/fstab

Шаг №9
Устанавливаем grub-customizer

sudo add-apt-repository ppa:danielrichter2007/grub-customizer
sudo apt-get update
sudo apt-get install grub-customizer

Шаг №10
Запускаем Grub Customizer
Нажимаем на пункт Ubuntu правой кнопкой, потом "Изменить"
На вкладке "Источник" копируем весть текст

Текст примерно такой, но не такой:

recordfail
load_video
gfxmode $linux_gfx_mode
insmod gzio
insmod part_msdos
insmod ext2
set root='hd0,msdos1'
if [ x$feature_platform_search_hint = xy ]; then
  search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos1 --hint-efi=hd0,msdos1 --hint-baremetal=ahci0,msdos1  abe0b146-1bcc-4392-ad87-dd4997996667
else
  search --no-floppy --fs-uuid --set=root abe0b146-1bcc-4392-ad87-dd4997996667
fi
linux /vmlinuz-3.8.0-19-generic root=UUID=4db0407b-2691-4e9e-b673-066011ade24e ro   quiet splash $vt_handoff
initrd /initrd.img-3.8.0-19-generic

Закрываем маленькое окошко
Выбираем в меню "Правка" - "Создать"

На вкладке "Источник" вставляем текст
Заменяем последнюю строчку на:

initrd /initrd.img-ramboot
Нажимаем "Ок"
Даем новой записи узнаваемое название, на пример UbuntuRAM

В основном окне Grub Customizer выбираем вкладку "Основные настройки"
Убеждаемся, что стоит галка "показать меню" и "Время ожидания" больше нуля

Нажимаем кнопку "Сохранить"

Всё. Готово.
Прежде чем перезагружаться, установим бенчмарк и прогоним его на "обычной" системе.

Установка:
sudo apt-get install tiobenchЗапуск:
sudo tiotest -f 25 -d /
Создадим на рабочем столе ярлык для Терминала (зачем, узнаете далее):
Перетягиваем из меню иконку Терминала на рабочий стол.
В ее свойствах на вкладке "Права" ставим галочку "Разрешить исполнение файла как программы".

Перезагружаемся. В появившемся меню GRUB выбираем UbuntuRAM и долго ждем.
Загрузка / в ОЗУ на моей машине занимает примерно 4 минуты.
Потом начинается загрузка ОС.

Вот тут у меня и начались проблемы. о_О ОС будто загрузилось, но на экране показался лишь маленький моргающий курсорчик не реагирующий на написанное.
Я нажал Ctrl + Alt + F2 и перешел на tty2.
Залогинился. Запустил X11 командой startx.
Увидел голый рабочий стол с курсором. Unity пропала.

Вот тут то и пригодился (а может и вам пригодится) ярлык терминала на рабочем столе. Он будет на месте.
Открываем терминал и запускаем Unity командой unity. (:

Все прекрасно. Все работает. Пока ОЗУ не кончится. Вы ведь создали файл подкачки?
Если все повисло - возвращаемся на tty2 и жмем Ctrl + C.
Заново набираем startx.

Можно прогнать тест и убедиться, что / в ОЗУ:
sudo tiotest -f 25 -d /
И вот вопрос: Что где прописать, дабы выполнялась загрузка Unity как обычно?

P.S.
« Последнее редактирование: 04 Мая 2013, 08:56:50 от LepihinMS »

Оффлайн kitaets

  • Активист
  • *
  • Сообщений: 571
  • Аналитик
    • Просмотр профиля
Re: Ubuntu в ОЗУ
« Ответ #3 : 04 Мая 2013, 09:12:08 »
Крутая тема и прекрасно, что уже есть решение (что присутствуют проблемы - я вижу, это мелочи).
При этом более практичным решением является загрузка в память не всей системы, а только "избранного", т.к. далеко не всегда можно так разгуляться с памятью, особенно на ноутбуке. И в первую очередь ориентироваться на то, чтобы не чтение из ОЗУ производилось, а запись (разумеется, следствие - что записанное будет читаться из ОЗУ), т.к.:
1) бережём SSD;
2) на запись требуется больше времени, чем на чтение, поэтому добиваемся большей оптимизации, если оптимизируем запись.
Я стандартно везде забрасываю в ОЗУ /tmp, /var/log, /var/tmp, /var/lock и кэши браузеров.
Можно создать новую тему, если не хотите здесь это обсуждать.
«Если ты не наступил на грабли, это не значит, что их нет», – kitaets.

Оффлайн LepihinMS

  • Автор темы
  • Новичок
  • *
  • Сообщений: 14
    • Просмотр профиля
Re: Ubuntu в ОЗУ
« Ответ #4 : 04 Мая 2013, 09:46:04 »
На счет методов сбережения SSD действительно стоит читать/писать в другой теме. Кажется, все уже давно обсуждено.

На счет перемещения кэшей/логов/etc в tmpfs скажу одно – чего бы я туда не заносил, визуального прироста производительности не было.

Потому, выбор пал на радикальный вариант. Здорово, что на этом пути уже проложили тропу. На днях вставлю вторую планку ОЗУ и протестирую как следует.

Оффлайн kitaets

  • Активист
  • *
  • Сообщений: 571
  • Аналитик
    • Просмотр профиля
Re: Ubuntu в ОЗУ
« Ответ #5 : 04 Мая 2013, 10:08:03 »
На счет перемещения кэшей/логов/etc в tmpfs скажу одно – чего бы я туда не заносил, визуального прироста производительности не было.
В пределе такое частичное перемещение превращается в полное перемещение ОС в память. Так что вопрос в том, найдены ли "узкие" места, ибо некоторые файлы лежат никогда никем не востребованные. У меня ОС на одном ноуте стоит на небыстром CompactFlash, так там прирост производительности заметен.

На счет методов сбережения SSD действительно стоит читать/писать в другой теме. Кажется, все уже давно обсуждено.
Если бы имеющиеся обсуждения меня удовлетворили, я бы не сказал, что это крутая тема :) Наработок по сбережению SSD у меня много, вопрос остаётся в частичном переносе ОС в память. Ну да ладно, может потом тему создам.
«Если ты не наступил на грабли, это не значит, что их нет», – kitaets.

Оффлайн san-alex

  • Забанен
  • Старожил
  • *
  • Сообщений: 7726
  • Ex-CNC programmer
    • Просмотр профиля
Re: Ubuntu в ОЗУ
« Ответ #6 : 04 Мая 2013, 12:42:58 »
LepihinMS, а, может, ты статью в нашу Вики напишешь?

Оффлайн soarin

  • Старожил
  • *
  • Сообщений: 1850
  • ubuntu 20.04
    • Просмотр профиля
Re: Ubuntu в ОЗУ
« Ответ #7 : 04 Мая 2013, 12:52:02 »
Да тут всё сплошные костыли.
Про ресурс SSD - бред, на практике их на каком-то сервере ставили под отдачу картинок (нагрузка ого-го), так работают и работают.
При своих 8 гигах ОЗУ не стал бы заморачиваться - память итак очень нужна, а производительность SSD устраивает.

Оффлайн Yuriy_Y

  • Старожил
  • *
  • Сообщений: 1736
    • Просмотр профиля
    • Новоишимка
Re: Ubuntu в ОЗУ
« Ответ #8 : 04 Мая 2013, 13:01:24 »
Про ресурс SSD - бред, на практике их на каком-то сервере ставили под отдачу картинок (нагрузка ого-го), так работают и работают.
Так на отдачу же. Это операция чтения. А снижает ресурс операция записи.
С уважением, Юрий.

Оффлайн Samael

  • Участник
  • *
  • Сообщений: 169
  • Учусь
    • Просмотр профиля
Re: Ubuntu в ОЗУ
« Ответ #9 : 04 Мая 2013, 13:18:19 »
А чем не подойдет вариант live-загрузки с persistent разделом? (Я так сервера на флешках разворачиваю)
Ubuntu 8.04 @ Dell Inspiron 1501 -> Mint 14 @ Acer AspireOne 722

Оффлайн kitaets

  • Активист
  • *
  • Сообщений: 571
  • Аналитик
    • Просмотр профиля
Re: Ubuntu в ОЗУ
« Ответ #10 : 04 Мая 2013, 13:26:19 »
Про ресурс SSD - бред, на практике их на каком-то сервере ставили под отдачу картинок (нагрузка ого-го), так работают и работают.
Так на отдачу же. Это операция чтения. А снижает ресурс операция записи.
Именно :)
Вот у меня в Eee - два SSD, один из которых - большой, дешёвый, с маленьким ресурсом - он издох. Системный жив пока (четыре года бегает). Но если бы не применял спецмер, то и системный давно бы издох.

Пользователь решил продолжить мысль 04 Мая 2013, 13:32:12:
А чем не подойдет вариант live-загрузки с persistent разделом? (Я так сервера на флешках разворачиваю)
А live разве полностью в память грузится? Там на англоязычном форуме про Кноппикс говорят, что образ создаётся и в память грузится.
« Последнее редактирование: 04 Мая 2013, 13:32:12 от kitaets »
«Если ты не наступил на грабли, это не значит, что их нет», – kitaets.

Оффлайн LepihinMS

  • Автор темы
  • Новичок
  • *
  • Сообщений: 14
    • Просмотр профиля
Re: Ubuntu в ОЗУ
« Ответ #11 : 04 Мая 2013, 15:27:12 »
LepihinMS, а, может, ты статью в нашу Вики напишешь?
Да куда мне статью... я в линуксах не разбираюсь.

Добавил ОЗУ в компьютер. Стало 8ГБ.  Не знаю, медленнее SSD работает или так же, но после моего старенького ноутбучного HDD видеть запускающийся за полсекунды LibreOffice Writer просто поразительно! Вот с такой скоростью и должен работать ПК в 2013 году!

Soarin, владельцам SSD действительно врядли стоит заморачиваться. Разве что забавы ради.

При повседневной работе тоже может возникнуть проблема с не сохранением изменений в /. Хотя, если у вас устоявшийся набор программ - можно ничего не заметить.

Эта технология отлично делает минимум одну вещь! Она отвечает на вопрос "Стоит ли покупать SSD?".

P.S.

Оффлайн san-alex

  • Забанен
  • Старожил
  • *
  • Сообщений: 7726
  • Ex-CNC programmer
    • Просмотр профиля
Re: Ubuntu в ОЗУ
« Ответ #12 : 04 Мая 2013, 15:33:56 »
Ничего сложного в написании статьи нету. Ты ее уже, по сути, написал. Осталось только оформить. А то тема затеряется в недрах форума, а статья останется для будущих поколений и еще кому-то может пригодится. Если возникнуть вопросы - пиши в личку, или нашим редакторам.

Оффлайн Samael

  • Участник
  • *
  • Сообщений: 169
  • Учусь
    • Просмотр профиля
Re: Ubuntu в ОЗУ
« Ответ #13 : 05 Мая 2013, 18:49:31 »
А live разве полностью в память грузится? Там на англоязычном форуме про Кноппикс говорят, что образ создаётся и в память грузится.
Суть в том, что операция чтения менее разрушительна, чем операция записи. Нет, не полностью в память. Но и диск работает в основном только на чтение. (Правда бОльше это имеет смысл для малоизменяемых систем, для обычного десктопа, где данные постоянно меняются может и не пойти)
Ubuntu 8.04 @ Dell Inspiron 1501 -> Mint 14 @ Acer AspireOne 722

Оффлайн kitaets

  • Активист
  • *
  • Сообщений: 571
  • Аналитик
    • Просмотр профиля
Re: Ubuntu в ОЗУ
« Ответ #14 : 05 Мая 2013, 20:54:07 »
Samael,
ну это всё более, чем очевидно. Тема-то - про ОС в ОЗУ. Конечно, кэширование делает очень много, но вот если бы при наличии 4-6Гб ОЗУ закинуть часть системных директорий в память (а не все, как здесь описано), всё бегало бы заметно быстрее. Мне кажется, что это решается очень просто, но я сейчас совершенно не в состоянии над этим размышлять.
«Если ты не наступил на грабли, это не значит, что их нет», – kitaets.

 

Страница сгенерирована за 0.067 секунд. Запросов: 25.