понедельник, 29 апреля 2013 г.

Секреты настройки Firefox

Для себя давно собираю рецепты настройки Firefox, сегодня решил, что пора начинать их понемногу выкладывать в сеть


Отключение Push уведомлений для всех сайтов:

Речь идет о том, когда в новых версиях Firefox (начиная с 44) при загрузке многих сайтов стало появляться уведомление типа Would you like to receive notifications from the site... Каждый раз отвечать - "нет" слегка надоедает. Для решения этой проблемы нужно ввести в адресную строку: about:config, найти параметр
dom.webnotifications.enabled и изменить его значение на false.

Вывод информации о настройках Firefox

Ввести в адресную строку:
about:support

Вывод диагностической информации Firefox

Работает для Firefox 21 и выше. Ввести в адресную строку:
about:healthreport

Отключения перекодирования кириллических адресов web-страниц

При копировании адресов из адресной строки firefox и вставке, в текстовый файл, вместо, например https://ru.wikipedia.org/wiki/Браузер, можем получить https://ru.wikipedia.org/wiki/%D0%91%D1%80%D0%B0%D1%83%D0%B7%D0%B5%D1%80. Чтобы этого не происходило нужно ввести в адресную строку: about:config, найти параметр
network.standard-url.escape-utf8 и изменить его значение на false.

Ускорение прокрутки страницы колесом мышки в Firefox


Изменяется посредством настройки через about:config (нужно ввести это в адресной строке браузера, нажать Enter и согласится с тем, что вы будете осторожны)

firefox about:config

Ранее нужно было изменить настройки
mousewheel.withnokey.sysnumlines (установить False)
mousewheel.withnokey.numlines (установить больше 6)

Начиная с версии Firefox 17 этот рецепт не действует и нужно изменить следующие настройки:

mousewheel.system_scroll_override_on_root_content.enabled (установить enabled)
mousewheel.system_scroll_override_on_root_content.vertical.factor (установить выше 200)

Чистка и переиндексация базы данных Firefox

Может понадобится, если Firefox тормозит больше обычного.
Для выполнения запускаем в терминале:
find ~/.mozilla/firefox/ -name *.sqlite -exec sqlite3 {} "VACUUM; REINDEX" \;
Если будет ругаться: find: `sqlite3': No such file or directory значит нужно предварительно установить sqlite3:
sudo apt-get install sqlite3
Скрипт чистки и индексации можно добавить в задания CRON с автозапуском раз в месяц. Для того, чтобы были обработаны все базы, нужно запускать, когда Firefox закрыт.

Репозиторий с последними версиями Firefox


Для добавления репозитория нужно выполнить следующие команды в терминале:
sudo add-apt-repository ppa:ubuntu-mozilla-security/ppa 
sudo apt-get update

Ранее также был отдельный репозиторий для стабильных релизов ppa:mozillateam/firefox-stable, но, к сожалению, его не так давно прикрыли. Напишите в комментариях известные вам репозитории со стабильными релизами.

Открытие ссылок из Thunderbird в фоновом режиме


Для того, чтобы ссылки из Thunderbird открывались в фоновом режиме, нужно через about:config изменить следующую настройку: browser.tabs.loadDivertedInBackground (установить True). В новых версиях Firefox этот метод перестал срабатывать.

Исправление пустого окна расширений Firefox


Недавно, после сбоя что-то сломалось в Firefox и перестали работать некоторые расширения, а во вкладке расширений вообще пусто. В сети встречал советы попытаться повторно установить одно из расширений, но мне не помогло. Проблему удалось решить запустив Firefox с отключенными расширениями (меню Help->Restart with Add-ones disabled и обновления приложений в таком режиме). После перезагрузки в обычный режим все работало как надо.

Самовосстанавливающийся Ramdisk для Ubuntu

RamdiskRamdisk-ом называют разделы, которые постоянно находятся в оперативной памяти. Скорость обмена данными с таким дисками намного быстрее по сравнению с разделами на жестком диске. Переместив на такой раздел часто обновляемые данные, можно существенно увеличить производительность. Однако, создавать такой раздел стоит только, если у вас оперативной памяти много (4-8 Гб и выше). Основным недостатком разделов в оперативной памяти является то, что информация, сохраняется только при включенном питании компьютера. Есть простые способы создания таких дисков, однако я приведу здесь более сложный вариант, который включает сохранение информации перед выключением или перезагрузкой компьютера и автоматическое восстановление при включении.

Приступим

1. Создаем две директории:
mkdir ~/.ramdisk
mkdir ~/.ramdisk-archive

В первую нужно будет переместить (а не копировать) все, что будет хранится на Ramdisk, например, я перенес туда всю директорию ~/.mozilla/firefox. Предварительно обязательно следует создать резервные копии переносимых файлов и директорий.

2. Прописываем раздел в fstab
sudo gedit /etc/fstab

И дописываем в конец строчку
tmpfs /home/user/.ramdisk tmpfs defaults,mode=1777 0 0

3. При перезагрузке все данные из Ramdisk будут исчезать, поэтому при включении нужно заново записывать в память данные из архива ~/.ramdisk-archive. Для этого нужно отредактировать файл /etc/init.d/rc.local (а не before.local как пишут на некоторых сайтах).
sudo gedit /etc/init.d/rc.local
и добавить в начало файла строчку
rsync -a /home/user/.ramdisk-archive/ /home/user/.ramdisk

4. Понятно, что сами собой файлы в архиве не возникнут, поэтому их нужно обязательно записывать при выключении компьютера.

Открываем для редактирования файл:
sudo gedit /etc/init.d/ramdisk-sync-shutdown
записываем в него следующее:
#!/bin/sh
rsync -a /home/user/.ramdisk/ /home/user/.ramdisk-archive
exit 0
Добавляем права на его исполнение:
sudo chmod +x /etc/init.d/ramdisk-sync-shutdown

Теперь в директориях  
  • /etc/rc0.d  
  • /etc/rc1.d 
  • /etc/rc6.d 
размещаем символические ссылки S00ramdisk-sync-shutdown на файл ramdisk-sync-shutdown.

Благодаря этому, при выключении или перезагрузке содержимое Ramdisk будет сохранено на жестком диске.

5. Для страховки можно периодически создавать резервные копии каждые 2 часа (частота зависит от ценности ваших данных и стабильности электропитания):
crontab 1 */2 * * * rsync -a ~/.ramdisk/ ~/.ramdisk-archive

Чтобы Ramdisk начал работать нужно перезагрузиться или выполнить
sudo umount -a
sudo mount -a

Полезные команды для проверки состояния рамдисков


1. Вывод списка всех смонтированны временных файловых систем:
grep -w tmpfs /proc/mounts

2. Проверка того, сколько они занимают места:
df -h | grep tmpfs

3. Проверка свободной памяти:
free -m

Полезные ссылки:
Виртуальный диск в памяти: как создать ramdisk в Linux?
Создание своего скрипта автозапуска при загрузке компьютера

пятница, 12 апреля 2013 г.

Ускоряем интернет в Ubuntu - настройка pdnsd

Как известно, скорость загрузки страниц зависит не только от ширины канала, который предоставляет вам ваш интернет-провайдер, но и от такого важного параметра как время задержки (Латентность или Latency). Не буду об этом долго распространятся, замечу только, что из-за наличия задержки при увеличении полосы пропускания вашего интернет-канала с 5 Мб/с до 10 Мб/с скорость загрузки может увеличится всего на 5%, что красноречиво демонстрируют следующие графики:


Отчасти проблему с задержками может решить кэширование запросов к DNS. Для этих целей в Ubuntu есть несколько пакетов:
  • dnsmasqd - начиная с версии Ubuntu 12.04 установлен по умолчанию, кэш держит только в памяти, поэтому хранит адреса только до первой перезагрузки
  • bind - подходит для больших сложных систем, не очень быстрый
  • pdnsd - легкий в настройке и быстрый - его мы и будем устанавливать
  • unbound - пока не пробовал

Установка pdnsd
sudo apt-get install pdnsd

Запуск
sudo service pdnsd start

Настройка многократно описывалась на разных сайтах, см. например Делаем свой локальный DNS (PDNSD), с блэкджеком и быстрее Google Public DNS.

Я же сосредоточусь на возможных проблемах

Во-первых после установки вы можете получить сообщение типа:

Not starting pdnsd (disabled in /etc/default/pdnsd)

Открываем в редакторе файл с настройками:

gksu gedit /etc/default/pdnsd

и добавляем или изменяем соответствующую строчку так, чтобы было прописано
START_DAEMON=yes

Далее, проверку состояния pdnsd можно выполнить с помощью следующей команды:
sudo pdnsd-ctl status

при этом я получил следующую ошибку:
Error: could not open socket /var/cache/pdnsd/pdnsd.status: No such file or directory

Решение

Во-первых пробуете вручную запустить pdnsd
sudo service pdnsd stop
sudo pdnsd

и по результату определяем в чем именно проблема. Например, в моем случае было вот что:

* 04/09 01:54:22| pdnsd: error: Could not bind tcp socket: Address already in use
* 04/09 01:54:22| pdnsd: error: Could not bind to udp socket: Address already in use
* 04/09 01:54:22| pdnsd: error: tcp and udp initialization failed. Exiting.

Дальше ищем что пишут об этой ошибке в интернете. Одной из причин может быть то, что порт с которым по-умолчанию работает pdnsd, может быть занят. Чтобы это проверить выполняем:
sudo netstat -lpn | grep 127.0.0.1:53
получаем:

tcp 0 0 127.0.0.1:53 0.0.0.0:* LISTEN 3453/dnsmasq
udp 0 0 127.0.0.1:53 0.0.0.0:* 3453/dnsmasq

откуда видно, что порт 53 уже занял демон dnsmasq.

Для того, чтобы освободить порт, редактируем NetworkManager.conf
sudo gedit /etc/NetworkManager/NetworkManager.conf

и закомментируем строчку
dns=dnsmasq
следующим образом
#dns=dnsmasq

Сохраняем файл и перезагружаем network-manager
sudo service restart network-manager

И снова запускаем pdnsd
sudo service pdnsd start

для проверки времени обработки запроса к dns можно использовать команду dig
dig @127.0.0.1 ubuntu-forward.blogspot.com | grep "Query time"
Query time: 55 msec

повторный запрос выполняется почти мгновенно:
Query time: 0 msec

Для того, чтобы все запросы с вашего компьютера направлялись через pdns, в настройках подключения network-manager нужно в графе
DNS Servers указать 127.0.0.1

И снова проверить работу pdnsd уже без указания какой именно сервер использовать
dig ubuntu-forward.blogspot.com | grep "Query time"
Query time: 0 msec

Для проверки реальной скорости работы pdnsd в рабочих условиях можно использовать namebench.

Популярные сообщения