Сайт | Скачать | Видео | Wiki

Автор Тема: Файловая система (и соответственно FULL ОС) полностью в RAM (решено)...  (Прочитано 12400 раз)

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

Оффлайн betcher

  • Ветеран
  • *****
  • Сообщений: 3019
  • Репутация: +35/-0
    • MagOS linux
Так вот, установка на соседний раздел заняла пару минут от силы, если не меньше. Разве не интересно?
Все модульные так ставятся. Скопировал и загрузчик скриптом - все.
Так это понятно, в чём ошибка-то
Я не к тому, что вы не правильно что-то сделали, я к тому, что многие думают, что zram это типа zswap только без своп раздела.

Оффлайн krasnyh

  • Ветеран
  • *****
  • Сообщений: 5320
  • Репутация: +139/-1
Цитата
Введение

Модуль zram создает блочные устройства на основе RAM с именем /dev/zram <id>
(<id> = 0, 1, ...). Страницы, записанные на эти диски, сжимаются и сохраняются в самой памяти. Эти диски обеспечивают очень быстрый ввод-вывод, а сжатие обеспечивает хорошая экономия памяти.
Некоторые варианты использования включают хранилище /tmp, использовать как диски подкачки, различные кеши в /var и, возможно, многое другое :)
https://www.kernel.org/doc/Documentation/blockdev/zram.txt

Так что нет ничего странного что пользователи соотносят zram с swap, раз разработчиком такое использование изначально предполагалось.

Оффлайн Harzah2

  • Новичок
  • *
  • Сообщений: 17
  • Репутация: +1/-0
  • Автор темы
Протестировал скрипт на SSD-диске. Отличные результаты получились. Примерно 2.5 минуты на загрузку 6GB Calculate Linux в память. По сравнению с HDD выигрыш составил больше чем в два с половиной  раза.

Так что, это интересный способ работы с системой. По сравнению с initrd, более простой и понятный:
1. Не надо делать два пункта меню в загрузчике, вообще никак не надо вмешиваться в загрузку системы.
2. Можно обновиться, изменить какие угодно данные заранее, а потом перейти на режим в памяти.
3. Сохранение данных полностью прозрачное (не система пишет что-то в какой-то файл, а ты сам решаешь, что сохранять, а что - нет).
4. Перезагрузкой решаются все проблемные моменты (например, решил проверить, как пройдёт установка программы, установил её, не понравилось, её даже не надо удалять, после перезагрузки её не будет).

Оффлайн sfs

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 33967
  • Репутация: +231/-0
    • PuppyRus-A
Протестировал скрипт на SSD-диске
какой? какую задачу решали?

Оффлайн DdShurick

  • Это Риччи
  • Активный участник
  • Ветеран
  • ****
  • Сообщений: 8635
  • Репутация: +187/-2
  • Старый чайник
какую задачу решали?
Памяти много, вот и балуется.
Моноблок Lenovo IdeaCentre c200 (Intel Atom D525, Intel GMA 3150, 2 Gb RAM) Richy64
Nettop Acer Aspire Revo R3610 (Atom N330, nVidia GeForce 9400, 3 Gb RAM) Richy64

Оффлайн Harzah2

  • Новичок
  • *
  • Сообщений: 17
  • Репутация: +1/-0
  • Автор темы
какой? какую задачу решали?
Хотел сравнить скорость загрузки в память с HDD и с SDD. Разница велика, так что перенёс систему на SDD и теперь загружаюсь с него.

Calculate Linux позволяет использовать для загрузки сжатую файловую систему btrfs. Разница получается в два раза. То есть, до этого (в самом начале, когда искал способ загрузки) я использовал CLDX (Calculate XFCE) c 11GB занимаемого места, для проверки попробовал CLS (Calculate Openbox) на SDD c 6GB занимаемого места.

Теперь я вернулся обратно на CLDX, но так как я установил его на SSD и на сжатую btrfs, то он стал у меня занимать места 6.5GB и очень быстро распаковывается в память. Меньше минуты и он в памяти. Конечно, там он в распакованном виде, но быстрота загрузки такого большого файла даже меня поразила.

Добавлено:
Работа со сжатой btrfs с диска - не очень. Немного притормаживает. Зато, если его использовать только для быстрого закачивания в память, то это того стоит.  Меньше минуты и 6.5 гигабайт в памяти. Я планирую ещё эти 6.5 подсократить, так как использовал свежеустановленный Calculate, а там ещё как минимум 2GB можно порезать...

Памяти много, вот и балуется.
Ищу удобный инструмент для комфортной работы. А здесь выкладываю результаты, так как это может быть кому-либо интересно. Если неинтересно, можно не читать...
« Последнее редактирование: 07 Ноябрь 2020, 18:34:24 от Harzah2 »

Оффлайн krasnyh

  • Ветеран
  • *****
  • Сообщений: 5320
  • Репутация: +139/-1
я установил его на SSD и на сжатую btrfs, то он стал у меня занимать места 6.5GB и очень быстро распаковывается в память.
Надо будет поискать (нет) тред, где sfs спорил со мной, что у фругала нет преимуществ перед фулл. Хотя одним из моих доводов и было сжатие и как следствие более быстрое чтение.

Оффлайн Harzah2

  • Новичок
  • *
  • Сообщений: 17
  • Репутация: +1/-0
  • Автор темы
Надо будет поискать (нет) тред, где sfs спорил со мной, что у фругала нет преимуществ перед фулл. Хотя одним из моих доводов и было сжатие и как следствие более быстрое чтение.

Сжатие - это реально большое преимущество. Это доказывает хотя бы тот же zram, который увеличивает своп (а следовательно и оперативку) в два, а то и в три раза. Представляю какие-бы скорости были у Puppyrus, если бы он просто работал в памяти и памяти у него прибавилось в два раза. Для старых (да и для новых) компов - это реально круто.

Там игроманы для быстродействия SSD советуют. Какой SSD? Это прошлый век уже... Запускать игру надо в RAM...

Вот еще хуки от арча
https://aur.archlinux.org/packages/mkinitcpio-loop-subdir/
https://aur.archlinux.org/packages/mkinitcpio-tarball-utils/
У Арча много всего, но всё это поддерживается неофициально сообществом, которое периодически забивает на свои инструменты. В этом плане мне больше нравится что-то новое. Например, вы пробовали Nix?

Доработал, этот скрипт, можно пользоваться на самых разных системах, службы, которые надо перезапустить, могут быть, конечно другими, но по аналогии вроде понятно. Вот, почти (может ещё что-то будет) окончательная версия скрипта:
Код
# Script to copy / to tmpfs and continue boot from there
# Do not run this from a child shell. Use ". ramify" or exec.
# The shell running this script must be the only process on the system.

# Ensure this runs in /
cd /

# Create and mount tmpfs file system for /
mkdir /mnt/new_root
mount -t tmpfs -o size=85% tmpfs mnt/new_root

# Copy everything from / filesystem to tmpfs
# Tar will restore proper owners and permissions when run as root
# FIXME: This is very slow because it reads / in many small pieces
# TODO: Add --exclude to prevent copying unneeded stuff
tar --one-file-system -c . | tar -C /mnt/new_root -x

# Move other mounts
mount --move dev mnt/new_root/dev
mount --move proc mnt/new_root/proc
mount --move run mnt/new_root/run
mount --move sys mnt/new_root/sys

# Create fstab with just new root file system
sed -i '/^[^#]/d;' mnt/new_root/etc/fstab
echo 'tmpfs / tmpfs defaults 0 0' >> mnt/new_root/etc/fstab

# Pivot root using instructions from pivot_root(8) man page
cd mnt/new_root
mkdir old_root
pivot_root . old_root
mount -n --move /old_root/root/.cache/gvfs /root/.cache/gvfs

# Перезапускаем службы
/etc/init.d/cupsd stop
/etc/init.d/bluetooth stop
/etc/init.d/local restart
/etc/init.d/sshd restart
/etc/init.d/syslog-ng restart
/etc/init.d/cronie restart
killall agetty
killall polkitd
killall upowerd
killall udisksd
killall ssh-agent
killall accounts-daemon
telinit u
/etc/init.d/fuse restart
/etc/init.d/root restart
/etc/init.d/devfs restart
/etc/init.d/NetworkManager restart

#Удаляем  временный каталог
rmdir /old_root/mnt/new_root

# Old root can only be unmounted once sh running from old root
# finishes. Continue startup normally using init.
exec chroot . bin/sh -c "umount old_root ; exec sbin/init"

Какие службы или программы ещё запускаются со старого пути, можно посмотреть используя:
Код
lsof /old_root
При этом dbus-daemon лучше оставить как есть... не придумал что с ним делать, но если его убить, система зависает...
lightdm и ModemManager тоже лучше не трогать. Оставшееся, после входа в новую сессию XFCE.

После выполнения скрипта выходим из сеанса и входим в почти чистую систему в памяти. Время выполнения скрипта немного увеличилось и составило больше минуты. Это время можно регулировать ещё здесь:
Код
mount -t tmpfs -o size=85% tmpfs mnt/new_root
Чем больше, тем больше места зарезервируется для rootfs, соответственно, чем меньше, тем быстрее загрузится в ОЗУ. Если у вас памяти, к примеру 10GB, а система установленная на / занимает 5GB, то смело можно ставить значение в 55-60%.
« Последнее редактирование: 08 Ноябрь 2020, 11:54:41 от Harzah2 »

Оффлайн sfs

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 33967
  • Репутация: +231/-0
    • PuppyRus-A
По сравнению с HDD выигрыш составил больше чем в два с половиной  раза.
Кто бы сомневался
Надо будет поискать (нет) тред, где sfs спорил со мной, что у фругала нет преимуществ перед фулл. Хотя одним из моих доводов и было сжатие и как следствие более быстрое чтение.
Наверное это или это
Если я что-то подобное и заявлял - про стационар с ссд
На нем замороженный фул мало чем будет отличаться от squashfs-frugal по функционалу и скорости
Хочется сжатия на фул- btrfs

Сжатие - это реально большое преимущество.
Экий Вы упертый. Давайте протестируем
Внизу этой темы дописал про браузер
После  загрузки почти любой проги  с любого носителя она в памяти и разницы в скорости работы нет
Обратите внимание на голосование в той теме. Все аксакалы проголосовали против copy2ram
Можете привеcти какие-то тесты в пользу copy2ram ?
Попробуйте
В ram эффективно переносить часто используемые каталоги:
Достаточно home в ram . Будет так же как всю систему в ram

Оффлайн Harzah2

  • Новичок
  • *
  • Сообщений: 17
  • Репутация: +1/-0
  • Автор темы
Экий Вы упертый. Давайте протестируем
Внизу этой темы дописал про браузер
После  загрузки почти любой проги  с любого носителя она в памяти и разницы в скорости работы нет
Обратите внимание на голосование в той теме. Все аксакалы проголосовали против copy2ram
Можете привеcти какие-то тесты в пользу copy2ram ?
Причём тут упёртость? Где я говорил, что-то про скорость самой программы? Я говорил про производительность системы в целом. Там где программа обращается за данными к диску - будет увеличение скорости, там где не обращается - не будет. Это и идиоту понятно. Если у системы больше памяти в два раза, то она и позволить себе может больше.

Насчёт же всего / в памяти, так он решает другие задачи. Такие как отвязка системы от носителя, с целью увеличить срок его службы, например. Или неубиваемость и возможность получить чистую систему без изменений после перезагрузки. Или внесение только тех изменений, которые тебе нужны и игнорирование всех остальных. Я же об этом писал в самом начале. Меня, в принципе, не интересует кто там за что проголосовал, у всех людей свои желания и потребности. Если кому-то ничего не надо и они живут в пещерах и занимаются собирательством, то это их дело и их проблемы.

Оффлайн DdShurick

  • Это Риччи
  • Активный участник
  • Ветеран
  • ****
  • Сообщений: 8635
  • Репутация: +187/-2
  • Старый чайник
Такие как отвязка системы от носителя, с целью увеличить срок его службы, например. Или неубиваемость и возможность получить чистую систему без изменений после перезагрузки. Или внесение только тех изменений, которые тебе нужны и игнорирование всех остальных.
У нас это давным давно решено и памяти тонну не надо.
Моноблок Lenovo IdeaCentre c200 (Intel Atom D525, Intel GMA 3150, 2 Gb RAM) Richy64
Nettop Acer Aspire Revo R3610 (Atom N330, nVidia GeForce 9400, 3 Gb RAM) Richy64

Оффлайн sfs

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 33967
  • Репутация: +231/-0
    • PuppyRus-A
Там где программа обращается за данными к диску - будет увеличение скорости, там где не обращается - не будет.
да. И я рассказал где будет : /tmp /home. Остальное для домашних задач избыточно
Я говорил про производительность системы в целом
Производительность системы должна настраиваться под конкретную задачу. "Вцелом" - это "забивать гвозди микроскопом" и "беситься с жиру"
Деньги вместо переизбытка памяти рациональнее потратить на быстрые носители , т.к. производительность системы "Вцелом" всегда по самому медленному компоненту
Хотите спорить дальше - приводите результаты тестов с цифрами. У нас технический, а не литературно-исторический  форум  ;)
Если кому-то ничего не надо и они живут в пещерах и занимаются собирательством, то это их дело и их проблемы.

Оффлайн DdShurick

  • Это Риччи
  • Активный участник
  • Ветеран
  • ****
  • Сообщений: 8635
  • Репутация: +187/-2
  • Старый чайник
занимаются собирательством
Занимаюсь, зато всё своё.
Моноблок Lenovo IdeaCentre c200 (Intel Atom D525, Intel GMA 3150, 2 Gb RAM) Richy64
Nettop Acer Aspire Revo R3610 (Atom N330, nVidia GeForce 9400, 3 Gb RAM) Richy64

Оффлайн knn

  • Ветеран
  • *****
  • Сообщений: 2538
  • Репутация: +33/-0
Там где программа обращается за данными к диску - будет увеличение скорости, там где не обращается - не будет.
- тут согласен ('имхо' - 'без выкладки доказательств' - 'но своим глазам - верю' ).

ps
"прирост скорсти" - величина относительная -  и возможно лучше виден на старых компах, и есть и "порог человеческой реакции"(0,4 сек - эту цифру видел и в '"Электробезопасности" по сработке автоматических-выключателей' и в 'автоДорожнойБезопасности - расчетное время реакции от-ситуации-до-началаДействия') - т.е. тут как "порог заметности"/чуствительности [величина как понимаю скорее усредненная...].

--upd (по 0.4 сек)
когда на IceArch для Icewm в крайний раз 'delay'-и("задержки") выставлял ориентировался на 0.4 сек. В смысле можно и еще ускорить, но там нужно прорабатывать "согласованность-различных-'delay'~ев"
« Последнее редактирование: 08 Ноябрь 2020, 19:25:50 от knn »
Gr4D, Grub2; HP Mini 210 VT - Intel Atom N470  @ 1.83GHz, Intel GMA3150, RAM=2 ГБ ;
Sams-n110: N270 - 1,6 ГГц, Intel GMA 950, RAM=2 ГБ.

Оффлайн betcher

  • Ветеран
  • *****
  • Сообщений: 3019
  • Репутация: +35/-0
    • MagOS linux
Использовать копирование в рам именно для ускорения смысла не имеет. Увеличится время загрузки, но уменьшится скорость первого старта для каждой софтины. Ко второму старту все что нужно уже в кэше. Работа полностью из рам может быть интересна если нужно освободить носитель после старта. С uird так можно, загрузиться и вытащить флешку, а в конце работы воткнуть на место и при выключении сохранятся автоматом ваши изменения. С лета это работает в т.ч. с luks разделами. Так что если хочется действительно интересного нет смысла изобретать uird поновой. Будут интересные идеи, пишите, добавим в uird.