mechanical |
|
Темы:
16
Сообщения:
663
Участник с: 11 октября 2008
|
вот уже несколько месяцев замечаю, что пакман стал сильно тупить при обращении к базе … не засекал, но кажется, что несколько минут проходит, пока он всё там у себя просчитает … это происходит и при поиске, и при обновлении раньше он вроде так не тормозил |
cucullus |
|
Темы:
268
Сообщения:
3553
Участник с: 06 июня 2007
|
есть такое… но скоро новая версия, всё полетит!
такие дела.
|
SmiGes |
|
Темы:
167
Сообщения:
845
Участник с: 04 августа 2009
|
sudo pacman-optimize /var/lib/pacman » не? |
mechanical |
|
Темы:
16
Сообщения:
663
Участник с: 11 октября 2008
|
cucullusа откуда такая информация? SmiGesпопробую … пробовал pacman-cage, но чё-то yaourt стал ругаться |
sunstroke |
|
Темы:
3
Сообщения:
625
Участник с: 17 сентября 2009
|
Храню базу пакмана в tmpfs (в оперативке). Никаких тормозов при поиске. При загрузке загружаю в tmpfs? При выключении скидываю на винт. |
vadik |
|
Темы:
57
Сообщения:
5490
Участник с: 17 августа 2009
|
SunStrokeА если неожиданно пропадет эл.питание? Прощай база, здравствуй гугл? |
Quark_p |
|
Темы:
4
Сообщения:
119
Участник с: 15 марта 2009
|
Кстати у себя заметил, что pacman при работающем rtorrentr тупит сильнее. |
sunstroke |
|
Темы:
3
Сообщения:
625
Участник с: 17 сентября 2009
|
vadikНу зачем же сразу “прощай”? :) Во-первых, на винте лежит та же папка с базой, но версии “до монтирования во время загрузки”. Во-вторых, во время выключения, перед тем как скинуть базу из tmpfs на диск, делается ее архив в файл. Так что, в аварийном случае у вас останется либо “старая” (условно) база в папке на винте, либо “прошлый” архив в файле. Выбирайте на любой вкус (с) :). Проверено на личном опыте, и не раз. Максимум теряются изменения в базе со времени последней загрузки. В этом случае делаю pacman -Syuf и все пучком. PS. От пользователя ничего делать не требуется. Все делается в rc.local и rc.local.shutdown. |
vadik |
|
Темы:
57
Сообщения:
5490
Участник с: 17 августа 2009
|
SunStroke, можно ссылку на мануал? (для ленивых )) ) |
sunstroke |
|
Темы:
3
Сообщения:
625
Участник с: 17 сентября 2009
|
vadikПостараюсь изложить от себя максимально поясняя. Источник вдохновения затерян где-то во времени :) Фрагменты /etc/rc.local (с подробными комментариями): # Подключаем сервисные функции, # чтобы вывод на экран при загрузке/выключении # был в фирменном арчевском стиле . /etc/rc.conf . /etc/rc.d/functions ################################ # Mount pacman database to tmpfs ################################ # Проверяем наличие папки /var/lib/pacman. Если нет, создаем [ -d /var/lib/pacman ] || mkdir /var/lib/pacman # Выводим сообщение о начале процесса stat_busy "Mounting pacman database to tmpfs" # Проверяем, не смонтирована ли уже папка. Если смонтирована, выходим mounted=$(grep -c /var/lib/pacman /proc/mounts) if [ $mounted -gt 0 ] ; then stat_done exit 0 fi # Проверяем, есть ли архивный файл с базой if [ -f /var/lib/pacman.tar.gz ] ; then # Монтируем папку /var/lib/pacman в tmpfs и распаковываем туда архив mount -t tmpfs tmpfs -o nodev,nosuid,size=100m /var/lib/pacman && \ tar -C / -xzf /var/lib/pacman.tar.gz fi # Выводим сообщение об окончании процесса stat_done ################################ # Подключаем сервисные функции, # чтобы вывод на экран при загрузке/выключении # был в фирменном арчевском стиле . /etc/rc.conf . /etc/rc.d/functions ########################################## # Flush pacman database to disk from tmpfs ########################################## # Проверяем наличие папки /var/lib/pacman. Если нет, создаем [ -d /var/lib/pacman ] || mkdir /var/lib/pacman # Выводим сообщение о начале процесса stat_busy "Flushing pacman database to disk" # Проверяем, не размонтирована ли папка. Если размонтирована, выходим mounted=$(grep -c /var/lib/pacman /proc/mounts) if [ $mounted = 0 ] ; then stat_done exit 0 fi # Делаем "прошлый" архив "позапрошлым" (аналог logrotate :) ) mv -f /var/lib/pacman.tar.gz /var/lib/pacman.tar.gz.1 && \ # Архивируем базу из tmpfs в файл на диск tar -C / -czf /var/lib/pacman.tar.gz var/lib/pacman/ && \ # Размонтируем папку с базой из tmpfs umount /var/lib/pacman && \ # Удаляем папку со старой базой rm -rf /var/lib/pacman && \ # Разворачиваем текущую базу из файла в папку (чтобы было как полагается) tar -C / -xzf /var/lib/pacman.tar.gz && \ # Выводим сообщение об окончании процесса stat_done ########################################## А ТЕПЕРЬ ВАЖНЫЕ ПРИМЕЧАНИЯ: 1. Сделайте первый раз вручную архив базы в файл /var/lib/pacman.tar.gz (понадобится если все навернется, а также для начала работы алгоритма). 2. Удалите из моих листингов строки с комментариями (и пустые строки) рядом со строками кода в которых есть && \ - там задано последовательное выполнение с синтаксисом продолжения строки. У меня этих комментариев нет, просто разжевал для понятности. 3. Размер tmpfs под базу у меня задан в 100Мб. Используется по данным df -h половина. Можете сначала поставить 200Мб для страховки, потом посмотрите и скорее всего можно будет смело уменьшить до 100Мб. 4. Если что-то непонятно, либо вчитывайтесь до просветления перед тем как приступить, либо спросите. Первый раз я так по невнимательности запорол базу. Архивов не было сделано - пришлось восстанавливать. Все восстановил, но с потерей цепочки зависимостей (по другому никак) - все пакеты стали числиться установленными явно. Не понравилось - пришлось переставить систему. PS. Ну и ест-но я не отвечаю, если вы там что-то угробите. Могу лишь сказать, что у меня так работает уже несколько месяцев и все вообщем-то отлажено, ИМХО. PPS. Ну и для информации: [sunstroke@home-pc lib]$ ls -l /var/lib ... drwxr-xr-x 4 root root 180 Янв 18 22:36 pacman -rw-r--r-- 1 root root 2764746 Янв 16 23:47 pacman.tar.gz -rw-r--r-- 1 root root 2763493 Янв 15 19:15 pacman.tar.gz.1 ... [sunstroke@home-pc lib]$ df -h Файловая система Разм Исп Дост Исп% Точка монтирования ... tmpfs 100M 53M 48M 53% /var/lib/pacman ... |