LINUX.ORG.RU

Извращения с gentoo или система в tmpfs

 , ,


1

3

Доброго времени суток,Лор! Читая хабр, наткнулся на такую статеечку . Затея показалась мне интересной, но диким извращением. Думаю, оно стоит того, чтобы получить прирост в 30 раз. Но тут возникают некоторые вопросы, ответа на которых я не нагуглил. Обновления пакетов/конфигов. Как вариант, дабы не переархивировать образ системы everyupdate, меня посетила мысль тянуть все прямо из корня. Да, долго, но перезагружаю рабочую машину от силы раз в 1-3 дня. Для личных данных можно отдельно монтировать /any/device/, а по поводу внезапных перебоев электричества не беспокоюсь - ноутбук. На деле имеем 8G сама система(со всем мусором) и 12GB ram. Стоит ли оно того?


Купи SSD, и не канифоль мозги, лол.

Ты, конечно, можешь перед ребутом хоронить данные на диск, а на старте свой рут копировать в tmpfs, но это во-первых морока, во-вторых это долго, а в третьих, если внезапно пропадёт электропитание, а у тебя пару недель аптайма, то прощай данные, да.

В любом случае, ты можешь посмотреть, как работает перзистент в бубунтолайвах.

r3lgar ★★★★★
()
Ответ на: комментарий от r3lgar

Апгрейд железа будет через год-два. Насколько долго? Опять же, ноут на аккумуляторе в режиме работы держится 3-4 часа. Никто не мешает его поставить в спящий режим и уйти в запой. Так что с электропитанием вопрос исчерпан.

dmtrge
() автор топика
Ответ на: комментарий от dmtrge

Даже с большим таймаутом dirty write cache периодически просираю от пары минут до часа работы, если внезапно кончается память или что-нибудь вешает систему.
SSD не настолько дорогие, лол

mersinvald ★★★★★
()

прирост в 30 раз

На «холодном» запуске получишь даже больше. Вот только зачем? Когда нужные данные уже в pagecache, это будет так же быстро, как tmpfs.

Стоит ли оно того?

Нет. Достаточно вынести «горячие» данные. Я, например, положил /usr/portage и /var/lib/portage (емнип) в squashfs, которая разархивируется при апдейте, а в остальное время просто монтируется, и профиль firefox-а в tgz-архив (разархивируется при старте, пережимается при выключении). Это дает для HDD весьма ощутимый прирост при «холодных» операциях, и не имеет практически никаких негативных эффектов (/home я по-прежнему не доверяю SSD, так что «повышенного износа SSD» постоянными перезаписями профайлов нет).

kawaii_neko ★★★★
()
Ответ на: комментарий от dmtrge

поставить в спящий режим

Ага, сохранить в энергозависимую память, когда планируется потеря этого самого питания. Молодец, гениально!

r3lgar ★★★★★
()
Ответ на: комментарий от kawaii_neko

Хм, понравилась имея с вынесением горячих данных. А что если вынести /bin, /lib и портаж? Это куда быстрее, чем весь корень.

dmtrge
() автор топика
Ответ на: комментарий от r3lgar

В таком режиме энергии хватит на неделю. Думаю, что за неделю я смогу найти несчастную розетку.

dmtrge
() автор топика

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

Возникает вопрос с записью/апдейтами. Здесь у меня четкого решения нет, но, одна из идей - наложить HDD(rw) на TMPFS(ro) и запись получать на HDD. Что-то типа COW. Не знаю позволяет ли это делать OverlayFS или нет. Если не получится - сделать отдельный runlevel для апдейтов или вообще делать апдейт делать в chroot на реальный раздел HDD.

Еще concern со скоростью загрузки системы, но, думаю, этим можно будет пожертвовать, а может и решение какое-то найдется.

Моё мнение - да, идея классная, нужно делать.

Kroz ★★★★★
()
Ответ на: комментарий от dmtrge

Ладно, предположим, но загружаться (распаковываться в память в частности) оно у тебя будет дооолго. Этот прирост у тебя будет, но загружаться/ребутаться/выключаться оно у тебя будет по полвечности. Оно тебе надо?

Лучший способ ускорить генту — это купить SSD, вывести /var/tmp/portage и кэши в tmpfs. Остальное у тебя и так будет в память подгружаться при необходимости.

Эта фигня с загрузкой в память придумана для того, чтобы можно было использовать девайс, с которого грузишься; например для перезаписи флэшки или смены диска из live-дистра.

Костыли-костылики…

r3lgar ★★★★★
()

кстати, вопрос - многие с ноутами: если поставить SSD внутрь корпуса, предусмотрено ли для него место или это сильно зависит от возможностей ноута? Обычный ноут, средний.

anonymous
()
Ответ на: комментарий от anonymous

Накрайняк корпус с ссд снять, они внутри пустые и скраю мальнькая плата с начинкой.

anonymous
()

Есть совет - пакуй корень ( исключи только кеши с сжатыми файлами ) в squashfs, и кидай его на рам-диск ( НЕ в тмпфс!). Я кидал вместо initrd - работало. Поверх монтируется overlayfs и готово. Жрет памяти от силы пол гига, скорость - очень даже хорошо.

timdorohin ★★★★
()
Ответ на: комментарий от dmtrge

А что если вынести /bin, /lib и портаж

Портаж у меня на squashfs — работает быстро даже на HDD.

/bin, /lib, /usr/bin и /usr/lib практически лишено смысла. Какой-то прок может быть от /usr/share, но нет ничего хучже, чем оказаться в ситуации, когда у тебя бинарники от одной версии пакета, а данные — от другой. Уж больно велика вероятность рано или поздно в такую ж попасть.

kawaii_neko ★★★★
()
Ответ на: комментарий от kawaii_neko

reiser4 для портажа годиться очень даже. gzip сжимает очень хорошо, так что скорость высокая...

timdorohin ★★★★
()
Ответ на: комментарий от r3lgar

Ага, сохранить в энергозависимую память, когда планируется потеря этого самого питания.

Если что, спящий это сохранить на диск, а оставить в «энергозависимой» это ждущий.

FeyFre ★★★★
()
Ответ на: комментарий от Kroz

chroot еще хоть куда, но так придется постоянно видоизменять образ. Жертвуя скоростью первоначальной загрузки, можно избежать архивирования. Если ребут раз в неделю, то это вполне терпимо.

dmtrge
() автор топика

Это совершенно ненужный на десктопе бред. Куда разумнее взять какой-нибудь бюджетный SSD. Всё равно ядро всё необходимое прокэширует в оперативку.

anonymous
()
Ответ на: комментарий от anonymous

А потом ноют про 12309 даже имея ssd.

anonymous
()
Ответ на: комментарий от Kroz

Разговоры разговорами, а как это на практике применить? Хочу попробовать оба способа: скопировать /в /tmpfs и SquashFS, как было упомянуто выше. Мануал по SquashFS уже нашел. А вот по поводу первого: хочу просто копировать /dev/sda1 в /tmpfs. Как я понял, это можно сделать в grub.cfg?

dmtrge
() автор топика
Ответ на: комментарий от dmtrge

Дык не я путаю, а товарищъ повыше. (да, там в статье они и сами уже запутались к середине повествования, сколько оффтопикозверей пасу, ни разу не слышал чтобы suspend-to-memory называли спящим).
Да, имеет место несогласование бытовых названий:
Гибернация===спящий режим===suspend-to-disk ( с отключением из розетки)
Режим ожидания===ждущий режим===suspend-to-memory (без)
Я не вижу особого смысла в последнем если честно(и даже не наблюдаю оного на оффтопиках в пределах досягаемости).

ЗЫ: а после того как полез выдергивать память из якобы выключенного(а на деле suspend-to-memory) ящика, то вообще бью морду всем кто ним пользуется(если ранг позволяет).

FeyFre ★★★★
()
Ответ на: комментарий от Kroz

1)хочу просто копировать /dev/sda1 в /tmpfs.

Такого там точно нет. Есть архивирование.

dmtrge
() автор топика
Ответ на: комментарий от FeyFre

Гибернация===спящий режим===suspend-to-disk ( с отключением из розетки)
Режим ожидания===ждущий режим===suspend-to-memory (без)
Я не вижу особого смысла в последнем если честно(и даже не наблюдаю оного на оффтопиках в пределах досягаемости).

Suspend-to-ram - самый часто используемый режим.
Домашний ноут постоянно подключен к розетке. Крышку закрыл - заснул, открыл - проснулся почти моментально со всем запущенным. Мега удобно.

Рабочий ноут - тоже. Там оффтопик, так там есть такая фича, что, если батарейки становится мало, он сам включается, и переходит в suspend-to-disk. Я хз как они это реализовали, но прикольно.

А есть ещё hybrid mode, когда память сбрасывается на диск, но ноут уходит в suspend-to-ram. Так что даже если батарейка сядет, ты просто сделаешь resume-from-disk вместо resume-from-ram, без потери данных. В Tux-On-Ice, ЕМНИП, было.

Кстати, я больше недолюбливаю suspend-to-disk в Линуксе. Дело в том, что оно происходит после grub'а. Я однажды включил комп, и загрузился не с того пункта. Ошибку понял, перегрузился и зашел под тем пунктом, который был в hibernat'е. Так у меня корневая ФС посыпалась. Потому что состояние дисков изменилась с момента суспенда. Так что, если хочешь убить себе систему, то есть рецепты как для suspend-to-disk, так и для suspend-to-ram.

Kroz ★★★★★
()

Лучше делай то, что делает кот, конгда ему делать нефиг.

anonymous
()

Для перечисления необходимости такого рода решений, хватит пальцев одной руки. Ну а если во главе угла стоит не здравый смысл, а -

прирост в 30 раз.

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

Inside-Squirrel
()

На деле имеем 8G сама система(со всем мусором) и 12GB ram.

Смотря что ты запускать будешь, почти 9 гигов отскочит останется 3. Жди оом киллера в таком случае.

ving2
()
1 июня 2017 г.
Ответ на: комментарий от psijic

Многое зависит от SATA-контроллера, матплаты. Программный RAID я не рассматриваю, а аппаратному не верю, так что вопрос немного не по адресу.

r3lgar ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.