Как стать автором
Обновить

Оптимизация любимой Ubuntu/Gnome/ПО

Чулан
Оригинал vasilisc.com/speedup_ubuntu

Пока осваивал Убунту, перечитал множества статей об ускорении Убунту, как в плане загрузки, так и работы вообще.


1) Добавьте в файл ~/.gtkrc-2.0 строки, уменьшающие задержки
gtk-menu-popup-delay = 10
gtk-menu-popdown-delay = 10
gtk-menu-bar-popup-delay = 10

Менюшки быстро открываются

2) через gconf-editor
# при перетаскивании окна не будет видно содержимое, а пустое окно
gconftool-2 --type bool --set /apps/metacity/general/reduced_resources true
# отключаем анимацию
gconftool-2 --type bool --set /apps/panel/global/enable_animations false
# отключаем
gconftool-2 --type bool --set /desktop/gnome/interface/accessibility false
# скорость анимации панелей = быстрая
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


3) ускорение запуска программ KDE (Qt) в Gnome. Это редкий совет, который нашел только в англоязычном ресурсе и мне очень понравился своей эффективностью

Чтобы ускорить запуск KDE программ в среде Гном, нужно
Система => Параметры => Запускаемые при старте программы (System--->Preferences--->Sessions)
Добавить под названием FastQt путь /usr/bin/kdeinit

БОльшая скорость достигается заранее запущенными в памяти библиотеками KDE
Мой любимый видео плеер SMPlayer на Qt реально быстрее стартует.

4) Установленный preload вроде помогает и поставил «чтоб был»
sudo aptitude install preload

5) В файле /etc/hosts 127.0.0.1 должен указывать не только на localhost, но и на имя машины выбранное при инсталяции. Говорят меньше тупит Гном, хай с ним
root@vasilisc:/etc# cat hosts
127.0.0.1 localhost vasilisc
127.0.1.1 vasilisc


6) Отключение IPv6 в Убунту старше 9,04
правим /boot/grub/menu.lst
параметр к ядру ipv6.disable=1

7) Ускорение программ, использующие Sqlite для хранения информации. Ускорение достигается за счет переиндексации и удалении пустых записей. Можно вынести в скрипт и периодически запускать при закрытых программах.
# оптимизация Лиса
find ~/.mozilla/ -name '*.sqlite' -print -exec sqlite3 {} "VACUUM; REINDEX;" \;
# оптимизация Епифании
find ~/.gnome2/epiphany/ -name '*.sqlite' -print -exec sqlite3 {} "VACUUM; REINDEX;" \;
# оптимизация RSS читалки Liferea
sqlite3 ~/.liferea_1.6/liferea.db "VACUUM; REINDEX;"


8) заранее запускаем браузер Epiphany в память, чтобы быстрее были повторные запуски. Смысл как и в п.3
Система => Параметры => Запускаемые при старте программы (System--->Preferences--->Sessions)
Добавить под названием FastEpiphany команду /usr/bin/epiphany --no-window

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

10) Системное меню долго открывается первый раз, после перезагрузки компа. Лечим костылем.
ставим xmacro
sudo apt-get install xmacro
создаем исполняемый файл ~/bin/fast_menu.sh с содержимым
#!/bin/sh
echo "Delay 1\nKeyStrPress Alt_L\nKeyStrPress F1\nDelay 2\nKeyStrRelease Alt_L\nKeyStrRelease F1\nKeyStrPress Escape\nKeyStrRelease Escape"|xmacroplay ":0.0"
exit 0

Примечание: строка начинающаяся с echo должна располагатся на одной строке полностью.
Идем в Система => Параметры => Запускаемые при старте программы (System--->Preferences--->Sessions)
Добавить под названием FastMenu путь к файлу fast_menu.sh

11) Установить localepurge, которая позволит убрать лишнии локали и тем самым освободить место. Теперь при установке софта, лишнии локали зулусов и папуа-новая-гвинея ставится не будут.
Настоятельно рекомендую ставить в консоли, вызвав:
sudo aptitude install localepurge
Советую выбрать нужные локали следующие:
en
en_GB
en_GB.ISO-8859-15
en_GB.UTF-8
en_US
en_US.ISO-8859-15
en_US.UTF-8
ru
ru_RU
ru_RU.CP1251
ru_RU.KOI8-R
ru_RU.UTF-8

В любой момент времени можно заново выбрать локали, вызвав:
dpkg-reconfigure locales
Если какие-то возникли проблемы, то смотрим в сторону
/usr/share/doc/localepurge/reinstall_debs.sh и /etc/locale.nopurge


12) Кеширование символьных таблиц
Создайте пустой каталог
$mkdir ~/.compose-cache

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

13) Приоритет Xorg
Совет позволяет ускорить работу в Ubuntu за счёт повышения приоритета Xorg. Совет подходит как пользователям Ubuntu (Gnome), так и kUbuntu (KDE). Приоритет меняется командой renice. Нужно помнить что от 0 до -19 приоритет возрастает, а от 0 до +19 убывает. В нашем случае, мы меняем приоритет Xorg с 0 на -5

sudo renice -n -5 $(pidof X)

Если хочется чтобы после перезагрузки ПК Xorg уже был с повышенным приоритетом, то можно поместить в Автозагрузку gksu /путь/к/скрипту в Gnome и kdesudo /путь/к/скрипту в KDE.
Или внести команду renice -n -5 $(pidof X) в /etc/rc.local, и она будет выполнена из под root и после загрузки Xorg.

14) Отключаем Антифишинг для ускорения Mozilla Firefox
ВНИМАНИЕ!!! Если не понимаете, что такое фишинг и как защищаться от угроз в Интернете, то НЕ стоит читать дальше и применять данный совет! Фишинг — это способ обмана вас, когда вам дают прямую ссылку на сайт, внешне неотличимый от настоящего или ссылка внешне похожа на известный ресурс. Оказавшись на таком сайте, пользователь может сообщить мошенникам ценную информацию, позволяющую получить доступ к аккаунтам и банковским счетам. Для защиты от фишинга производители основных интернет-браузеров договорились о применении одинаковых способов информирования пользователей о том, что они открыли подозрительный сайт, который может принадлежать мошенникам. Новые версии браузеров уже обладают такой возможностью, которая соответственно именуется «антифишинг».
Антифишинг — это защита, которая никогда не бывает лишней. Антифишинг — это дополнительная забота о вас. Но если вы контролируете ситуацию, например у вас установлен плагин NoScript для Firefox, который защищает вас на неизвестных сайтах. Или вы сами соблюдаете сетевую безопасность, то, возможно, вы захотите ускорить Firefox, ценой отключения Антифишинга и уменьшения безопасности.
Ускорение достигается за счет того, что каждая URL не проверяется по базе Фишинговых адресов. Для ускорения Firefox, методом отключения Антифишинга, сделайте следующее:
1) В Firefox в меню Правка — Настройки — Защита. Снимите галочки с пунктов «Блокировать сайты, подозреваемые в атаках» и «Блокировать сайты, подозреваемые в мошенничестве». Сохраните изменения.
2) Закройте Firefox. Теперь нам нужно удалить большой файл-базу адресов, после удаления Firefox создаст его маленьким и быстрым. Запустите Терминал и скомандуйте

ls -laF ~/.mozilla/firefox/*.default/urlclassifier*
rm -i ~/.mozilla/firefox/*.default/urlclassifier*

3) Запустите Firefox и проверьте его работоспособность и время старта и отзывчивость в работе. Проверьте в Терминале командой

ls -laF ~/.mozilla/firefox/*.default/urlclassifier*

что файл создался меньшего размера, чем прежде. Прочтите выше совет «Тотальная чистка и реиндексация Sqlite».

Минусы: вы удаляете файл Firefox в своей домашней директории и желательно сделать резервную копию профиля Firefox.

15) Ускорение файловой системы
В данном совете мы будем изменять настройки, касающиеся файловых систем. Данный совет настоятельно рекомендуется применять ТОЛЬКО обладателям Источником Бесперебойного Питания (ИБП).
В Linux вы можете использовать множество файловых систем и у каждой свои параметры, влияющие на производительность. Указать нужные вам параметры, нужно аккуратно отредактировать файл /etc/fstab, сделав предварительно его копию.
Параметры файловых систем для улучшения производительности:
ускорение ext4
barrier=0 Код файловой системы обязан перед созданием записи фиксации [журнала] быть абсолютно уверенным, что вся информация о транзакции помещена в журнал. Просто делать запись в правильном порядке недостаточно; современные диски имеют кэш большого объёма и меняют порядок записи для оптимизации производительности. Поэтому файловая система обязана явно сообщить диску о необходимости записать все журнальные данные на носитель перед созданием записи фиксации; если сначала будет создана запись фиксации, журнал может быть повреждён. Блокирующая система ввода-вывода ядра предоставляет такую возможность благодаря использованию механизма «шлагбаумов» (barriers); проще говоря, «шлагбаум» запрещает запись любых блоков, посланных после него, до того момента, как всё, что было прислано перед «шлагбаумом», будет перенесено на носитель. При использовании «шлагбаумов» файловая система может гарантировать, что всё, что находится на диске, целостно в любой момент времени. Отключая шлагбаум barrier=0, мы ускоряем операции записи на разделы ext4.

noatime, nodiratime – отключение записи времени последнего доступа (для файлов/директорий). Или relatime — атрибут времени доступа (atime) обновляется, но только в том случае, если изменились данные файла (атрибут mtime) или его статус (атрибут ctime). Рекомендую использовать relatime.

commit – время между сбросами буферов на диск. Рекомендую commit=100

data=writeback. По умолчанию, режим журналирования для ext4 — режим data=ordered. Файловая система журналирует только метаданные, данные и метаданные группируются в один модуль — транзакцию. Этот режим, хотя без гарантии, защищает данные при неожиданной перезагрузке. В режиме data=writeback файловая система не производит какого-либо журналирования данных. При неожиданных перезагрузках системы это может вызвать потерю данных в обновляемых файлах. Данный режим обеспечивает самую высокую производительность ext4. Чтобы сменить режим ordered на менее безопасный, но скоростной writeback следует ОБЯЗАТЕЛЬНО отмонтировать раздел и выполнить sudo tune2fs -O has_journal -o journal_data_writeback /dev/ИМЯ_РАЗДЕЛА. Желательно сделать проверку раздела на ошибки sudo fsck /dev/ИМЯ_РАЗДЕЛА. В данной статье не рассматривается и не рекомендуется изменение режима журналирования для корневого раздела /.

ускорение btrfs
nobarrier Код файловой системы обязан перед созданием записи фиксации [журнала] быть абсолютно уверенным, что вся информация о транзакции помещена в журнал. Просто делать запись в правильном порядке недостаточно; современные диски имеют кэш большого объёма и меняют порядок записи для оптимизации производительности. Поэтому файловая система обязана явно сообщить диску о необходимости записать все журнальные данные на носитель перед созданием записи фиксации; если сначала будет создана запись фиксации, журнал может быть повреждён. Блокирующая система ввода-вывода ядра предоставляет такую возможность благодаря использованию механизма «шлагбаумов» (barriers); проще говоря, «шлагбаум» запрещает запись любых блоков, посланных после него, до того момента, как всё, что было прислано перед «шлагбаумом», будет перенесено на носитель. При использовании «шлагбаумов» файловая система может гарантировать, что всё, что находится на диске, целостно в любой момент времени. Отключая шлагбаум nobarrier, мы ускоряем операции записи на разделы btrfs.

noatime, nodiratime – отключение записи времени последнего доступа (для файлов/директорий). Или relatime — атрибут времени доступа (atime) обновляется, но только в том случае, если изменились данные файла (атрибут mtime) или его статус (атрибут ctime). Рекомендую использовать relatime.

nodatacow – При включенном механизме copy-on-write появляются дополнительные издержки и параметром nodatacow мы отключаем эту возможность, которая на desktop компьютере редко используется.

vm.dirty_writeback_centisecs. Увеличим время между сбросом «грязных» буферов vm.dirty_writeback_centisecs в /etc/sysctl.conf. Рекомендую vm.dirty_writeback_centisecs = 15000

Минус syslog. Демон ведения журналов syslog (а также идущий ему на смену — rsyslog) пишет журналы в каталоге /var/log/ и добавив одну строку делает операцию sync, которая сводит на нет кэш диска и более долгий сброс буферов. Можно изменить поведение демона и указать не делать sync после каждого добавления. Найдите файл конфигураций демона, обычно это /etc/syslog.conf или /etc/rsyslog.d/ и все пути вида /var/log/что-то-там измените, дописав знак минус ("-") перед путями. Например, была строка
mail.err /var/log/mail.err
стало
mail.err -/var/log/mail.err
Теги:ubuntugnomeoptimization
Хабы: Чулан
Всего голосов 29: ↑22 и ↓7+15
Просмотры2.4K

Похожие публикации

Лучшие публикации за сутки