Если закачки стали
тормозить, следуйте нашим советам.
Итак, вы настроили маршрутизатор, оптимизировали
сервер и сменили все широкополосные фильтры в своем доме – но скорость все еще мала.
Прежде чем злобно звонить своему провайдеру, проверьте, не является ли узким местом
клиентская машина. С помощью следующих настроек вы сможете улучшить вашу связь или,
по крайней мере, исключить свой компьютер как причину неисправности.
Дать хосту имя
‘localhost’
Само по себе революции это не произведет, однако в сочетании с другими
приведенными здесь сетевыми трюками увеличит скорость сети вашей машины. Просто
откройте от имени root в текстовом редакторе файл /etc/hosts и поменяйте
самые верхние строки на
127.0.0.1 localhost yourhost
127.0.0.1 yourhost
где yourhost –
имя машины (например, bobdesktop). Обязательно сохраните старую копию файла /etc/hosts,
на случай, если что-то пойдет не так!
Оптимизация
настроек TCP
Дистрибутивы поставляются с настройками для «усредненных» пользователей
Интернета, однако в пестром мире 3G, телефонных модемов и ADSL понятия «среднего
потребителя» не существует. Отредактируйте от имени root файл /etc/sysctl.conf,
добавив в него такие строки:
net.ipv4.tcp_timestamps
= 0
net.ipv4.tcp_sack
= 1
(Отчасти это метод
проб и ошибок, так что сохраняйте резервные копии изменяемых вами файлов). Верхняя
строка удаляет временные отметки, сокращая сетевые пакеты на 12 байт. Нижняя
включает т. н. «выборочное подтверждение» (Selective Acknowledgement, SAK) и уменьшает
число пакетов, передаваемых повторно. Это может оказаться заметным на «плохом» канале,
но не даст ощутимого эффекта в надежной сети.
MySQL
Если
у вас работает база данных MySQL, вы можете сделать резервную копию в одном
файле, всего одной командой в терминале:
mysqldump -u root -p -F
--masterdata=2 --delete-master-logs -A > backup.sql
Если
она не сработает, убедитесь, что в файле ~/.my.cnf (который, может быть,
придется создать), выставлено log-bin=mysql-bin. Этот файл также можно
использовать для установки беспарольного входа. Добавьте в него следующие строки:
[client]
user=имя_пользователя
password=пароль
Главное – не позволяйте другим пользователям системы просматривать данный
файл, ведь он содержит пароли MySQL в текстовом виде! Можно ограничить права
доступа следующей командой:
chmod
600 ~/.my.cnf
Теперь
для входа просто введите в терминале mysql без параметров. При необходимости
использовать другие реквизиты просто укажите их в командной строке mysql.
Спасибо Джону Хадсону
[John Hudson] и Леандро Моргадо [Leandro Morgado] (Sun Microsystems) за эти советы.
Метрики
и история
Вы можете продолжить оптимизацию своих TCP-настроек, приписав в тот
же текстовый файл следующие строки:
net.ipv4.tcp_no_metrics_save
= 1
net.core.netdev_max_backlog
= 2500
Верхняя строка ускоряет соединение, обеспечивая, чтобы TCP-метрики
для закрытых соединений не сохранялись в кэше. Вторая устанавливает размер «истории»
(backlog) пакетов.
Что касается примерных
значений параметра netdev_max_backlog, то для беспроводных или старых сетей
Ethernet рекомендуется брать около 2000, а для Gigabyte Ethernet – около 5000. С
другой стороны, для дорогого 10-ГБ кабеля Ethernet это значение можно повысить до
30000. Чем медленнее соединение, тем короче должна быть «история», и цель этой настройки
– подобрать такой размер буфера входящих пакетов, при котором ядро успевает обработать
их все без отклонения и повторной передачи.
Вариации окна
TCP
Настройки окна TCP определяют минимальный и максимальный размер пакетов,
которые можно получать и посылать. Владельцы телефонных модемов обнаружат повышение
скорости при меньшем размере пакетов, а пользователи широкополосных каналов – при
большем размере. Отредактируйте /etc/sysctl.conf от имени root, приписав
туда
net.ipv4.tcp_window_scaling = 1
net.ipv4.tcp_wmem = 10240 87380 16777216
net.ipv4.tcp_rmem = 10240 87380 16777216
net.ipv4.tcp_mem
= 16777216 16777216 16777216
net.core.rmem_max
= 16777216
net.core wmem_max = 16777216
Эти цифры оптимизированы
для 2-Мбит соединения через широкополосную беспроводную связь Sky, а в общем случае
рекомендуемый размер пакета равен максимальной ширине полосы, деленной на время
ожидания. Эти значения можно найти, зайдя на www.speedtest.net; заодно можно
проанализировать, как ваши изменения повлияли на связь, посетив www.speedguide.net:8080.
