mechanical |
|
Темы:
16
Сообщения:
663
Участник с: 11 октября 2008
|
кто б еще придумал для этого способа с tmpfs фичу, чтоб после отработки пакмана в случае изменения базы, она сжималась и копировалась на винт в фоне |
sunstroke |
|
Темы:
3
Сообщения:
625
Участник с: 17 сентября 2009
|
mechanicalТакое тоже возможно. Используется взаимодействие с демоном gamin (средством мониторинга изменений файловой системы). Испытаю на себе. Если все получится, как задумано, выложу новый вариант скрипта. |
zookeeper |
|
Темы:
37
Сообщения:
193
Участник с: 21 ноября 2010
|
угу точно, забыл совсем, спасибо, теперь спокойно в демоны добавлю |
sunstroke |
|
Темы:
3
Сообщения:
625
Участник с: 17 сентября 2009
|
Работа на ошибками. :) Обнаружил некритичную ошибку в логике работы скрипта. Суть в следующем: Если вы использовали скрипт какое-то время. Затем на какое-то время отключили его и сделали, чтобы все было “классически”. Затем стали опять использовать, то происходит следующее - база в папке пакмана изменилась, а архив базы, созданный скриптом, остался старый. Скрипт же при инициализации монтирует базу пакмана в память именно из архива. Поэтому может случиться, что архив серьезно устарел и система будет предлагать вам обновить то, что вы и так уже обновили. В принципе, если вы используете скрипт постоянно, то такой проблемы не случится (архив всегда будет свежий). В остальных случаях вам нужно будет использовать другой вариант скрипта: #!/bin/bash # sourcing our current rc.conf requires this to be a bash script . /etc/rc.conf . /etc/rc.d/functions tmpfs_size=100m pacman_archive=/var/lib/pacman.tar.gz # Проверяем наличие папки и если нет, создаем [ -d /var/lib/pacman ] || mkdir /var/lib/pacman # Проверяем смонтирована ли уже папка mounted=$(grep -c /var/lib/pacman /proc/mounts) case "$1" in stop) stat_busy "Flushing pacman database to disk" # Если уже размонтирована, выходим if [ $mounted = 0 ] ; then stat_fail else mv -f $pacman_archive /var/lib/pacman.tar.gz.1 && \ tar -C / -czf $pacman_archive var/lib/pacman/ && \ umount /var/lib/pacman && \ rm -rf /var/lib/pacman && \ tar -C / -xzf $pacman_archive && \ rm_daemon pacman-tmpfs stat_done fi ;; start) stat_busy "Mounting pacman database to tmpfs" # Если уже смонтирована, выходим if [ $mounted -gt 0 ] ; then stat_fail else tar -C / -czf $pacman_archive var/lib/pacman/ && \ mount -t tmpfs tmpfs -o nodev,nosuid,size=$tmpfs_size /var/lib/pacman && \ tar -C / -xzf $pacman_archive && \ add_daemon pacman-tmpfs stat_done fi ;; restart) $0 stop sleep 10 $0 start ;; *) echo "usage: $0 {start|stop|restart}" esac |
vadik |
|
Темы:
57
Сообщения:
5490
Участник с: 17 августа 2009
|
SunStroke, предлагаю один из вариантов, как сделать первый скрипт более быстрым и более правильным. В каталоге /var/lib/pacman находятся индексы репозиториев имя_репозитория.db.tar.gz, можно при первом запуске скрипта посчитать контрольные суммы этих файлов и добавить эти суммы, например, в архив /var/lib/pacman.tar.gz. При всех последующих запусках просто проверять md5 файлов из /var/lib/pacman и сравнивать их с md5-суммами одноименных индексов в архиве. При несовпадении - обновлять архив (можно даже не полностью). |
sunstroke |
|
Темы:
3
Сообщения:
625
Участник с: 17 сентября 2009
|
vadikUPD. Удалил прежние свои размышления в этом посте (показалось много бреда). Сорри. :) Итак, первое что приходит на ум при вопросе оптимизации, это делать как можно больше операций в оперативке. Без использования винта. Понятно, что умная дисковая подсистема может закэшировать процесс работы и потом все скинуть на диск. Но это не гарантировано. К тому же, думаю, что напрямую работать в оперативке все равно быстрее. Вообщем есть над чем подумать/потрудиться. :) Ну и плюс, как обещал выше попробую прикрутить мониторинг изменения базы в памяти и автоматическое создание архива на диске. Тогда становятся не страшны аварийные выключения питания - вероятность того что в архиве будет актуальная база (и она будет соответствовать состоянию системы) приблизится к 100 процентам. Хотя это и сейчас не вызывает больших неудобств - pacman -Syuf после аварии с питанием приводит базу (и систему, если ставились обновления) в норму. |
mechanical |
|
Темы:
16
Сообщения:
663
Участник с: 11 октября 2008
|
а таки новый пакман шустрее |
vdemin |
|
Темы:
54
Сообщения:
1615
Участник с: 24 января 2009
|
Ага, просто реактивный |
anthonio |
|
Темы:
18
Сообщения:
378
Участник с: 11 августа 2009
|
бывает, помогает просто:pacman -Syy |