Ramdisk в Ubuntu Linux

Статья ниже - небольшой перепост статьи, которая показалось интересной. Думаю она будет полезна многим убунтоводам, кто гонится за скоростью работы, а так же имеет большой объём оперативной памяти. 

Ускоряем Linux: ramdisk

Сидел и думал, чтоб такого полезного извлечь из 4 Гб оперативки… Решил замутить ramdisk. Порывшись в нете наткнулся на на заметку Serg Markov "Использование tmpfs" и понял - это именно то, что нужно.

По описанию в fstab прописал ramdisk:

1
tmpfs /home/user/.ramdisk tmpfs defaults 0 0

Создаем еще одну папку /home/user/.ramdisk-archive. Кидаем все что хотим перенести на tmpfs в /home/user/.ramdisk. Чтоб система не ругалась делаем символические ссылки туда, где должны быть перенесенные папки. Копируем /home/user/.ramdisk в /home/user/.ramdisk-archive.

Чтоб при включении перенести файлы из .ramdisk-archive в .ramdisk добавил в /etc/init.d/before.local команду:

rsync -a /home/user/.ramdisk-archive/ /home/user/.ramdisk

Теперь перед запуском init будем копировать наши папки на ramdisk. Проходит все довольно быстро и с учетом того, что потом Gnome стартует шустрее, общее время загрузки практически не меняется.

Теперь нужно-же сохранять изменения в .ramdisk-archive при выключении ПК. Тут немного сложнее. В /etc/init.d кидаем файлик такого содержания:

1
2
3
#!/bin/sh
 rsync -a /home/user/.ramdisk/ /home/user/.ramdisk-archive
 exit 0

Обзываем ramdisk-sync-shutdown и ставим права на выполнение. Теперь в папку /etc/init.d/rc0.d и /etc/init.d/rc6.d делаем символические ссылки с нашего файла: S00ramdisk-sync-shutdown.

Все, теперь при выключении или перезагрузке содержимое нашего ramdisk-a будет сохранено на HDD в .ramdisk-archive.

Ну и на последок не забываем про форсмажор:

1
crontab */20 * * * * rsync -a /home/user/.ramdisk/ /home/user/.ramdisk-archive

Хотя если есть UPS то можно обойтись и без этого.

Ну и теперь - что это дало? Ну например LibreOffice запускается у меня примерно так: "раз", GIMP: гдето "рас-и".

Да ну и собственно, что яскинул на ramdisk: .adobe, .claws-mail, .config, .eric4, Firefox, .fontconfig, .gconf, .gconfd, .gimp-2.6, .gnome, .gnome2, .gnome2_private, .java, .libreoffice, .local, .macromedia, .mc, .mplayer, .Skype, .tilda.

Да, собственно эти все действия произведены на моей любимой openSuse 11.4.

Ребят, что думаете? Я пользюсь SSD, поэтому необходимости ставить Ramdisk не вижу, только если поиграться. А вы поставили? Жду отзывов от вас.

Хотите, чтобы дома был чистый воздух? Тогда вам нужны ионизаторы воздуха в киеве. Подробней о них можете узнать на сайте anion.com.ua.

Леонид Стасюков
2012-03-08 12:50:00
Если есть SSD то смысла возиться с рам диском нет. Более того - больше будет циклов записи и чтения на SSD, что не есть гуд
Gremlin
2012-03-08 17:35:00
А как в Убунте прописать команды до старта init...что то подзавис..
Shtro Dmitriy
2012-03-10 15:14:00
До старта init, только в ядре, там до запуска сценариев sysvinit.d, Саму загрузку выполняет upstart, потом передает потоковому демону, который запускает службы по старинке основываясь на rc*.d  (чаще rc2.d) Данный файл before.local просто запускается до того как зпустися rc.local, и дальше вернет все в upstart, который в свою очередь уже запустить gnome, по своим условиям.
npu3pak
2013-12-09 02:20:00
А можно поподробней. Со всеми командами. Особенно: "Делаем симлинки из каждой папки(или файла) в /home/user/.ramdisk в ее раннее, оригинальное расположение" Желательно применимо к Убунту
sabs89
2014-05-17 06:56:00
Предлагаю для актуализации содержимого папки ".ramdisk-archive" использовать вместо команды "rsync -a" команду "rsync -a --delete". Так как иначе эта папка со временем только разрастается.