Пока наши братья-гентушники неделями компилят свою систему, мы применим парочку советов и точно обгоним самого быстрого пингвина на планете. Убунту и так шла практически вровень с Gentoo, но наши изменения позволят вырвать победу из лап Pygoscelis papua. Пристегнись, мы ускоряемся!

 

Отключение Compiz

Compiz —композитный менеджер окон для X Window System, использующий OpenGL для ускорения 3D-графики. Он предоставляет множество новых графических эффектов, доступных в любых средах рабочего стола, в том числе GNOME и KDE. Если у тебя установлены драйвера для видеокарты, то, скорее всего, менеджер включен. Помни, что видеокарта с Compiz, включенным в режиме «Производительность по запросу», постоянно работает на полную нагрузку и не собирается сбавлять обороты вентилятора. Если хочешь от видеокарты тишины или бережешь киловатты, советую упростить эффекты Compiz или отключить его совсем. В первом случае нужно установить пакет compizconfig-settingsmanager через Синаптик или в Терминале скомандовать:

$ sudo aptitude install
compizconfig-settings-manager

Чтобы получить доступ к возможностям Compiz и упростить эффекты по своему вкусу, проходим по маршруту: Меню {„ Система „„ Параметры „| Менеджер настройки Compiz Config. Если желаешь просто отключить Compiz, то это можно сделать через пункт Меню „| Система Ћ Параметры r„ Внешний вид, в закладке «Внешний вид» выстави «Без эффектов».

 

Уменьшение задержек GTK

В Ubuntu рабочей средой является Gnome, где важную роль играет GTK. Изменяя настройки этого тулкита, мы влияем на все приложения, использующие его. Предлагаю подкрутить параметры, отвечающие за задержки:

$ gedit ~/.gtkrc-2.0
### Минимальное время в миллисекундах, в течение которого указатель должен оставаться на пункте меню перед появлением подменю
gtk-menu-popup-delay = 0
### Время в миллисекундах перед скрытием подменю, когда указатель перемещается на подменю
gtk-menu-popdown-delay = 0
### Задержка в миллисекундах перед появлением подменю после панели меню
gtk-menu-bar-popup-delay = 0

 

Ювелирная настройка Gnome

В Gnome настройки хранятся по аналогии с реестром MS Windows, с той лишь разницей, что «реестр» Gnome – это XML-файлы. Доступ к ним можно получить через редактор конфигураций gconf-editor или через вызов команды gconftool-2. Чтобы ускорить время отклика «реестра», предпримем следующие шаги:

1. Укажем Metacity не использовать анимационные эффекты, снизив тем самым потребление ресурсов:

$ gconftool-2 --type bool --set /apps/metacity/general/reduced_resources true

Единственное, что визуально изменится – при перемещении окон не будет отображаться содержимое;

2. Выключим анимацию включения/выключения панелей:

$ gconftool-2 --type bool --set /apps/panel/global/enable_animations false

3. Отключим вспомогательные технологии клавиатуры, мыши и т.д., предназначенные для людей с ограниченными возможностями:

$ gconftool-2 --type bool --set /desktop/gnome/interface/accessibility false

4. Зададим скорость анимации панелей «Быстрая»:

$ gconftool-2 --type string --set /apps/panel/global/panel_animation_speed panel-speed-fast

Если у тебя установлен режим, при котором во время наведения мыши на окно открытого приложения последнее выдвигается на передний план, то можно потвикать параметр auto_raise_delay, контролирующий задержку между наведением мыши и выдвижением окна:

$ gconftool-2 --type integer --set /apps/metacity/general/auto_raise_delay 100

 

Оптимизация XML

В структурированных файлах XML многие программы в Ubuntu хранят настройки и данные. Есть возможность преобразовать XML из «читабельного» формата, понятного человеку, в формат, удобный компьютеру. Преобразованные XML-файлы быстрее загружаются и занимают меньше ОЗУ. В таком преобразовании помогут скрипты, которые можно скачать по адресу: www.gnomefiles.org/app.php?soft_id=1397. Распаковываем полученный архив (desktop-optimizations.tar.gz) и по очереди запускаем скрипты от обычной учетной записи:

  1. rhythmbox-quickstart оптимизирует файлы музыкального проигрывателя Rhythmbox;
  2. evolution-optimize оптимизирует файлы почтовой программы Evolution;
  3. gnome-optimize оптимизирует файлы Gnome;
  4. openoffice-optimize оптимизирует файлы офисного пакета OpenOffice. org;
  5. doc-optimize оптимизирует файлы помощи Gnome;
  6. gconf-optimize оптимизирует файлы конфигураций Gnome («реестр» Gnome).

Если в системе несколько аккаунтов, то скрипты rhythmbox-quickstart и gconf-optimize нужно запускать от каждой учетной записи. Ничего страшного не произойдет, если ты запустишь скрипты несколько раз – оптимизация «уже оптимизированного» не разрушительна. Желательно перезайти в систему после оптимизации XML для того, чтобы изменения вступили в силу.

Скрипты оптимизируют как файлы в домашней директории, так и системные файлы, запрашивая привилегии через sudo. Скрипты делают резервные копии, но если при длительной процедуре оптимизации у тебя из-за сбоя электросети перезагрузится компьютер, то результаты, возможно, будут неоднозначны и плачевны. Наличие ИБП приветствуется.

 

Ускорение запуска программ, использующих QT

Традиционно считается, что Gnome — это GTK, а KDE — это Qt, но пользователю ничто не мешает запускать программы GTK в KDE, а Qt программы в Gnome. Даже больше! Авторы Gnome и KDE многое сделали, чтобы «чужие» программы внешне выглядели так же, как «родные». Сейчас мы рассмотрим, как ускорить запуск программ, написанных с использованием Qt в Gnome. В действительности, Qt'шная прога может не зависеть от KDE, но использовать возможности этой среды. Для этого при старте она должна получить «минимальный набор KDE». Как узнать, какие программы зависят от KDE? В Терминале даем команду:

$ sudo aptitude search '~i!~nlib(~Dqt|~Dkde)'

На экран будут выведены пакеты, которые установлены ('~i') И это не библиотека ('!~nlib') И в зависимостях есть Qt ('~Dqt') ИЛИ в зависимостях есть KDE ('~Dkde'). Заранее запуская «минимальный набор KDE» и удерживая в памяти соответствующие библиотеки, мы добьемся ускорения при старте этих программ. Трюк весьма прост: в Меню DE Система „t Параметры „‘ Запускаемые приложения добавляем запускаемую программу /usr/bin/kdeinit под именем FastQt. Все, после перезагрузки компьютера твои Qt-программы будут стартовать быстрее.

 

Ускорение запуска программ с помощью Preload

Preload – демон, работающий в фоновом режиме, который собирает информацию о наиболее часто используемых программах, кэширует их и используемые ими библиотеки, что приводит к повышению скорости загрузки программ. Нужно просто установить preload командой:

$ sudo aptitude install preload

Или запустить Синаптик, найти в нем preload и установить его. Настройки preload по умолчанию подходят для большинства пользователей, поэтому изменять что-либо в файле /etc/preload.conf не нужно.

 

Легкая оптимизация файлов SQLITE

Многие программы в Ubuntu хранят свои данные не в текстовых файлах, а в базах данных, и часто в качестве последних выступают SQLite. Средствами таких СУБД можно почистить пустые записи и создать индексы файла базы данных заново. Первым делом устанавливаем sqlite3 через Синаптик или набираем в Терминале:

$ sudo aptitude install sqlite3

Далее создаем скрипт для оптимизации данных в СУБД SQLite. Он будет выполнять переиндексацию и удаление из таблиц пустых записей.

$ gedit ~/bin/optimizer.sh
#!/bin/sh
### Оптимизация для Firefox
find ~/.mozilla/ -name '*.sqlite' -print -exec
sqlite3 {} "VACUUM; REINDEX;" > /dev/null 2>&1 \;
### Оптимизация для Epiphany
find ~/.gnome2/epiphany -name '*.sqlite'
-print -exec sqlite3 {} "VACUUM; REINDEX;" >
/dev/null 2>&1 \;
### Оптимизация для Liferea
sqlite3 ~/.liferea*/liferea.db "VACUUM;
REINDEX;" > /dev/null 2>&1
exit 0

С помощью команды «chmod +x ~/bin/optimizer.sh» делаем файл исполняемым.
Периодически можно вызывать этот скрипт при закрытых программах, чьи файлы баз данных мы хотим оптимизировать.

 

Тотальная оптимизация файлов SQLITE

В предыдущем разделе мы оптимизировали SQLite-файлы данных браузеров Firefox, Epiphany и RSS-читалки Liferea. Сейчас немного усложним задачу. Найдем в домашней директории все SQLite-файлы и конкретно их заоптимизируем :). Что нам потребуется?

1. Установи sqlite3 через Синаптик или в Терминале, если ты еще этого не сделал:

$ sudo aptitude install sqlite3

2. Создай файл ~/bin/sqlite_shrink.sh следующего содержания:

$ gedit ~/bin/sqlite_shrink.sh
#!/bin/sh
find ~/ -size +100k -type f -print0 | \
while read -d '' FILE; do
abs_file_name=$(readlink -f "$FILE")
headfile=`head -c 15 "$abs_file_name"`;
if [ "$headfile" = "SQLite format 3" ]; then
file_size_do=`du -b "$abs_file_name"|cut
-f1`;
sqlite3 "$abs_file_name" "VACUUM; REINDEX;" > /
dev/null 2>&1
file_size_posle=`du -b "$abs_file_name"|cut -f1`;
echo "$abs_file_name";
echo "Размер ДО $file_size_do";
echo "Размер ПОСЛЕ $file_size_posle";
echo -n "Процент "
echo "scale=2; ($file_size_posle/$file_size_
do)*100"|bc -l
fi
done
sleep 2
exit 0

3. Сделай ~/bin/sqlite_shrink.sh исполняемым через Наутилус или в Терминале «chmod +x ~/bin/sqlite_shrink.sh».

4. Теперь закрой сеанс в Ubuntu и перейди в консоль, нажав <Ctrl+Alt+F1>. Залогинься в консоли и командуй:

$ sudo /etc/init.d/gdm stop
$ sudo /etc/init.d/kdm stop
$ ~/bin/sqlite_shrink.sh > ~/report_sqlite_shrink.txt

5. Дождись окончания работы скрипта и перезагружайся:

$ sudo shutdown -r +0

После тотальной реиндексации файлов все программы, использующие SQLite, получат выигрыш. А какие именно? Читай ~/report_sqlite_ shrink.txt, в нем увидишь имена файлов, размер до и после чистки и реиндексации. Любители Google Chrome и KDE точно будут рады данному совету. Периодически повторяй процедуру, и освежающий эффект гарантирован.

 

Создание кэшей

GTK+ может использовать файлы кэша, созданные gtk-update-iconcache, чтобы избежать лишних системных вызовов и дисковых операций при запуске приложений. Так как формат кэш-файлов позволяет множеству приложений (mmap()ed) совместно их использовать, общее потребление памяти тоже сокращается. Нам остается периодически запускать скрипт, который вызывает gtk-update-icon-cache, и создавать кэши, ускоряющие доступ к тем значкам. Вызовем заодно fc-cache, который создает описания для шрифтов.

$ gedit ~/bin/rebuild_cache.sh
#!/bin/sh
### Обновление кэша иконок в своей папке
for d in ~/.icons/*; do gtk-update-icon-cache -f $d;
done
### Обновление кэша иконок в системе
for d in /usr/share/icons/*; do sudo gtk-update-iconcache
-f $d; done
### Обновление кэша шрифтов
sudo fc-cache -fv
fc-cache ~/.fonts

Сделай файл исполняемым с помощью команды “chmod +x ~/bin/ rebuild_cache.sh”. Если добавляешь в систему новые шрифты и темы Gnome, то запускай скрипт ~/bin/rebuild_cache.sh, который построит для них кэши.

 

Кэширование символьных таблиц

 

Создай пустой каталог

$ mkdir ~/.compose-cache

Теперь твои Qt/GTK программы будут чуток быстрее стартовать и потреблять меньше памяти, благодаря тому, что libX11 будет создавать в ~/.compose-cache кэши распарсенной информации и использовать ее повторно.

 

Подкачка Ubuntu

В современных операционных системах используется понятие «подкачка страниц». Вспомним, что это процесс, который при нехватке ОЗУ вытесняет неиспользуемые страницы памяти в область, называемую разделом подкачки. Когда страница снова нужна, ее загружают обратно в ОЗУ. Поскольку своп обитает на жестком диске, который в разы медленнее оперативки, активное перемещение страниц тудасюда-обратно замедляет работу компьютера в целом. Вывод? Нужно, чтобы в компьютере было достаточно ОЗУ для твоих задач. Вывод банален, но это так.

В довершение немного изменим поведение Ubuntu в отношении использования ОЗУ и области подкачки. Есть такой параметр vm.swappiness, по умолчанию он имеет значение 60 и служит для того, чтобы определить процент свободной памяти, при котором начнется активный сброс страниц в раздел swap. Иными словами, при памяти, занятой на 40% (100-60), Ubuntu уже начнет использовать область подкачки. При большом количестве ОЗУ в компьютере лучше снизить значение параметра vm.swappiness до 10, тем самым дав пингвину указание не использовать swap, пока занятый объем оперативки не достигнет 90% (100-10). Для такого изменения проще всего запустить Терминал и в нем скомандовать:

$ sudo sh -c "vm.swappiness = 10" >> /etc/sysctl.conf

После перезагрузки шустрая оперативка будет более эффективно использоваться, а медленный swap – реже задействоваться.

 

Заключение

Ты должен понимать, что настройки всегда по определению консервативны, и разработчик ОС/программы стремится, чтобы они работали на большом спектре систем. Поэтому тюнинг операционки — это не нажатие одной кнопки с надписью «Сделать все быстро». Понимая, что описано в совете, и анализируя, чем именно достигается ускорение, ты аккуратно применяешь команды и внимательно следишь за поведением системы. Надеюсь, что советы тебе пригодились, и твой пингвин стал более отзывчивым.

 

Info

  • Проверить степень отзывчивости интерфейса позволит GTKPerf: linux.softpedia.com/progDownload/GtkPerfDownload-6715.html
  • Применяй советы по одному, каждый раз желательно перезагружать систему. Проверяй влияние совета временем, не торопись.
  • Чудес не бывает. Советы либо задействуют свободную память, либо отключают чтото для ускорения.

  • Подпишись на наc в Telegram!

    Только важные новости и лучшие статьи

    Подписаться

  • Подписаться
    Уведомить о
    1 Комментарий
    Старые
    Новые Популярные
    Межтекстовые Отзывы
    Посмотреть все комментарии