About

Все публикации с тегом “hosting”

И снова переезд

Начитавшись Ивана Сагалаева решил переехать с TekTonic на Linode.

Основными аргументом в пользу переезда было то, что у Linode есть датацентры в Лондоне, а это должно значительно ускорить доступ к сайту (67 ms у Linode против 146 у TekTonic). Были, конечно и другие проблемы: довольно частые перезагрузки, некоторая кривизна дистрибутива и другие мелкие глюки. Ещё говорят, что Xen VDS работает несколько лучше, чем Virtuozzo.

Но в процессе переезда я столкнулся просто с ужасной работой TekTonic: sales не отвечал неделями, «терялись» письма системе поддержки, ломалось их собственное доменное имя и не синхронизировались ns-сервера.

В целом переезд, практически, закончен. Были освоены новые инструменты: runit — прекрасная система запуска сервисов, не нуждающийся в представлении ngnix и rdiff-backup в качестве замены rsync. Ещё немного ранее был установлен прекрасный fail2ban, который просто работает (хотя можно выполнить тонкую настройку). Не обошлось, правда, без косяков: так webdav nginx’а не может использоваться для синхронизации Zotero, пришлось запускать за nginx’ом lighttpd. А rdiff-backup имеет ужасно многословный синтаксис (почти везде приходится писать абсолютные пути) и выводит странные сообщения об ошибках.

Пока Linode работает просто отлично, сервер стал намного отзывчивее.

P. S.Основное имя теперь xkcd.ru (без www).

Прикладная география

Ping до нового сервера идёт около 180 мс. Думаю, неприятные задержки при открытии страниц во многом связаны именно с этим.

Хостинг TekTonic находится в Атланте (Джорджия). Расстояние от Москвы до Атланты составляет порядка 8700 км.

Если поделить расстояние на скорость распространения электромагнитного сигнала, то мы получим задержку порядка 30 мс. А если учесть то, что сигнал передается отнюдь не по кратчайшему маршруту (возможно, даже через спутник), и огромное количество оборудования стоящего на пути (traceroute показывает 18 прыжков), то отличие всего в шесть раз кажется не таким уж плохим.

Эх, как же сделать, чтобы сайт по-быстрее открывался?

7 минут

Во время переезда на новый хостинг сервер не работал около семи минут. На сервере находятся две версии архива: обычная и отладочная. Естественно, они используют разные базы данных. Поэтому можно довольно свободно экспериментировать с отладочной версией, не боясь поломать основную. Когда отладочная версия работает хорошо, можно сделать hg pull path_to_dev && hg update, и обычная версия обновится до отладочной.

Процедура переезда была такова:

  1. Копирование исходников обеих версий на новый сервер.
  2. Изменение исходников отладочной версии до рабочего состояния (в основном исправление путей к файлам и путей на сервере).
  3. Отключение возможности записи в базу данных на старом сервере. Да, это довольно грубый хак, но в рассылке все были предупреждены. В MySQL это делается приблизительно так: mysql> REVOKE INSERT,DELETE,UPDATE on db.* from 'usr'@'localhost'; flush privileges;
  4. Создание на новом домене (DNS запись которого была предусмотрительно переведена на новый сервер) новой рабочей копии архива. Для этого на старом сервере делаем: python manage.py dumpdata > backup.json. Затем на новом python manage.py syncdb, python manage.py (вывод передаём в ваш любимый клиент) и python manage.py loaddata backup.json.
  5. Создание редиректа при помощи mod_rewrite со старого сервера на новый (несколько простых правил). Собственно, на этом пункте и возник простой. Он длился точно не более 7 минут, а скорее всего меньше. Если бы я не поленился и отладил правила для mod_rewrite на другом сервере, то задержка составляла бы несколько секунд.
  6. Поднятие виртуального хоста для старого домена на новом сервере.
  7. Изменение DNS старого домена на новый сервер.

Вся процедура заняла около двух часов спокойной работы (включая не быстрое перекачивание всех картинок со старого сервера на новый).

Пока, FirstVds, здравствуй, TekTonic

Желание создать свой технический блог победило.

Вскоре, впрочем, оказалось, что 64 Мб, которые предлагает на самом дешёвом тарифе FirstVDS, — это очень мало для двух разных Django сайтов: блога на Byteflow и архива переводов xkcd. При одновременной работе двух сайтов они начинали страшно тормозить, и иногда вместо нужной страницы сервер выдавал ответ нулевой длины. Причём, я опасался, что 96 Мб на более дорогом тарифе не изменят ситуацию радикально.

По совету Ивана Сагалаева я купил себе VDS на TekTonic. За немного большие деньги (от 15$ в месяц) я получаю намного больше: 13 Гб под файлы (против 1 Гб), 294 Мб оперативной памяти (против 64 Мб), 500 Гб трафика (против 25 Гб) и 64-битную Ubuntu, c который я имею больший опыт общения, чем с FreeBSD. Единственный замеченный на данный момент недостаток: терминал работает несколько медленней. Видимо, сказывается то, что сервера находятся дальше.