Pull to refresh

Hetzner dedicated или в поисках дешевого хостинга

Reading time 7 min
Views 20K
Хочу рассказать о том, как я озадачился поиском недорогого хостинга с поддержкой Java.
В начале решил, что неплохо бы купить железку, поставить ее дома, дать ей хороший канал и радоваться жизни. Но потом решил подсчитать примерную ежемесячную стоимость такого решения, и вышло, что 200Вт блок будет кушать ~3-4кВт в месяц (100-150Вт будет кушать железо), и это обойдется в 350-400 руб (у меня газовая плита).
Прибавим сюда хороший канал+ип, и имеем порядка 750 рублей (и это без резервного!).
Итого около 1000 рублей в месяц и еще порядка 8000 рублей уйдет разово на покупку компонентов, которые могут сойти за «файлопомойку» + UPS (>=2000 р) и мы видим что самостоятельно хостить «пару сайтов и почту» становится напряжных делом.
Кто-то предложит окупить это размещением проектов — но кто согласится платить на хостинг, которые висит дай-то бог на 30 мегабитах, при этом имеет шансы быть в offline из-за того, что кто-то перерезал провод в щитке, или у провайдера «опять сгорел dns».
Начал поиск я с матушки России и нашел хостинг от brim.ru (через Хабропоиск), пообщался с суппортом, и предлагаемые условия, мягко говоря, маловаты стандартны.
6. Память (базовые 256Мб) выделяется на
аккаунт (ядро, службы, приложения).
Расширение возможно — стоимость услуги:
100 руб/мес за 64Мб

7. Аккаунт существует на RAID 1 массиве.
Бэкапирование данных и/или образа
аккаунта не производится.

цена 500 рублей в месяц, бекапы они не делают + есть ratio на трафик, то есть свои же бекапы себе же и будут портить жизнь (просто скачивая их) и в 256 мегабайтах Java не развернутся, как не толкайся (хотя я уверен, что мне напишут как выжать максимум из этого объема памяти, но для почты+jsp+php+ftp+DB это несерьезно).

Смотрим шире


Потолкавшись на скудном рынке с более заоблачными ценами я был заинтригован уймой предложений от 1.5$ в месяц и выше. Вышел на mochahost.com (не заметить трудно, ибо гугл пиарит его при любом запросе видаjava hosting), который за 7 долларов готовый был предложить мне золотые горы, sftp и tomcat, безлимитный траффик и такое же место.
Что я могу сказать о них… там есть только задержка при коннекте на сервер, жутные лаги всего динамического, включая cPanel и ужасную техподдержку. Java на тарифе с Java они включать только по заявке в суппорт, активация аккаунта занимает 6+ часов. Возможно кому-то повезет с ними больше… если жить рядом с ДЦ… или вроде того.
Единственное их предназначение — это хостить почту. На минимальном тарифе можно обслуживать 1 домен и на нем почтовые аккаунты и всего за «доллар-девяносто-пять».

Пободавшить с суппортом (да-да-да! я в них верил, вернее в те 20$ которые там оставил) sftp так и не дали (всучили SSL), обработка JSP занимала целую вечность (секунда реакции, причем не в первый раз, а уже после того, как томкат ее «сжевал», JSP использует net.Socket).

Они ближе чем мы думали..


И я вернулся снова на темную дорожку поиска хостера. Яндекс вывел меня на разные русские ресурсы (Хабру в том числе), Гугл на зарубежные, но так же я вышел на VDS хостинг, и первое название что я увидел это было Hetzner. Прочитав про него статьи, так же прочитав их Вики, просмотрев как пользователи здешнего портала без особых проблем ставили туда ФриБСД или любой образ из installimage я ими не на шутку заинтересовался.

Для начала заказал себе план VQ12, 1Гб памяти, 40 Гб места, линукс на выбор (и виндовс тоже) и 2 Тб траффика на 100 мегабитах.
Взяв уже готовый из коробки debian6@32, я почувствовал какова пропасть межну shared хостингом и (виртуальная машина, но все таки..) VDS. Поставил там nginx+tomcat+MySQL и начал радоваться жизни и всего за 12.9евро-19% = 10.84 евро (так как я русский, я VAT не плачу).
Далее были Dovecot+Postfix+sasl, сертификаты, база пользователей в MySQL, письма летять, логи пишутся, порты закрыты, ssh уехал с 22… Все было замечательно. И тарифный план ~430 рублей в месяц замечателен, но не хватает процессорной мощности.
Система бекапа сделана мною так, что в начале контент пакуется (часть со сжатием 7z a, часть без 7z a -mx0) в 7z, а следом он шифруется открытым ключем через gpg, размер ключа 4096, скидыватся в папку, которая привязана к поддомену в nginx.
Далее я дома запускаю wget -r --no-check-certificate .... и цепляю ***.7z.gpg, ну и в конце расшифровываю.
Вот в моменты шифрования я очень резко ощутил, как «процессор» зашкаливает на 100% и при этом почта на сервер начитает идти очень туго, jsp медлит, а roundcube бьет головой стену (можно было ограничить ресурсы для gpg, но помимо процессора мне понадобилось need mooore free space, об этом чуть ниже).

К тому же в тот момент я определился четко, что я буду размещать, и места в 40 Гб оказалось недостаточно (вернее через месяц-два такой момент мог возникнуть, ~30 Гб это почтовые аккаунты).

Все как у «взлослых»


Мой выбор пал на Dedicated «сервера». Почему «сервера», а не сервера? Потому, что они собраны на обычном железе, которое можно купить в любом магазине и которое вполне доступно. Был соблазн перейти на тариф EQ4, но для моих нужд 8Гб памяти и 1.5Тб места было как-то выше-крыши. Тем более на четверть дешевле были тарифы, которые меня устраивали.
И так я купил X3 (икс-три). Из маленьких плюсов: обнаружил 5600+ процессор вместо 4200+ и 2 винта по 400Гб вместо «трехсоток». На текущий момент производительности системы хватает для решения задач, а месте для хранения нужных мне данных (и жадной почты в т.ч.). Жесткие работают в софтовом режиме RAID-1, так что к моим бекапам добавилось дополнительно зеркало. На него поставил в начале debian6@64, но процессы стали есть в 1.5-2 раза больше памяти, но пряник тоже был — по тесту 7z b он выдает на 300 попугаев больше. В итоге был установлен debian6@32, диск размечен под нужды:
PART swap swap 4G
PART /boot ext4 512M
PART /var ext4 32G
PART / ext4 16G
PART /usr ext4 all
, в качестве админ сервера железного я еще не волшебник, но, надеюсь, разметка не очернит общей информативности поста. var ограничил, так как туда по дефолту пишу логи, на корень на «всякий случай» 16 гигов, свап=2хпамять (обмусоливание этой темы было на linux.org.ru), а весь контент хранится в /usr
На данный момент полет сервера нормальный и я доволен как слон.

В заключении хочу сообщить, что я крайне не согласен с теми авторами, кто говорит (миф#5), что хостинг на магазинном железе это надувательство и детский сад. От себя хочу заметить, что множество задач успешно решаются на простом процессоре с 2-4Мб кеша и 2-4-мя адрами, и за мощности xeon'а, и за ECC, и за шустрый SAS, если их отсутствие не критично для проекта — переплачивать не надо.
Сервер VQ12 был готов за полчаса, сервер X3 был готов за час с небольшим.

Тестирование производительности


Ниже приклепляю небольшой тест производительности этих двух тарифных планов (увы, как не гуглил хабрил, никто тестов по этому немцу не выкладывал).

VQ12

--> hdparm -tT /dev/sda

/dev/sda:
Timing cached reads: 16732 MB in 2.00 seconds = 8375.75 MB/sec
Timing buffered disk reads: 482 MB in 3.01 seconds = 160.37 MB/sec
===========
--> time echo '2 1000000 ^ p'|dc

real 0m5.592s
user 0m5.056s
sys 0m0.024s
===========
--> wget mirror.yandex.ru/debian-cd/6.0.0-live/i386/iso-hybrid/debian-live-6.0.0-i386-standard.iso

2011-03-21 22:06:50 (5.36 MB/s) - “debian-live-6.0.0-i386-standard.iso” saved [232783872/232783872]
===========
--> time taskset 0xFFFFFFFF 7z a test.7z debian-live-6.0.0-i386-standard.iso

7-Zip 9.04 beta Copyright (c) 1999-2009 Igor Pavlov 2009-05-30
p7zip Version 9.04 (locale=en_US.UTF-8,Utf16=on,HugeFiles=on,1 CPU)
Scanning

Creating archive test.7z

Compressing debian-live-6.0.0-i386-standard.iso

Everything is Ok

real 2m54.989s
user 2m44.754s
sys 0m8.989s
===========
--> taskset 0xFFFFFFFF 7z b

7-Zip 9.04 beta Copyright (c) 1999-2009 Igor Pavlov 2009-05-30
p7zip Version 9.04 (locale=en_US.UTF-8,Utf16=on,HugeFiles=on,1 CPU)

RAM size: 1010 MB, # CPU hardware threads: 1
RAM usage: 419 MB, # Benchmark threads: 1

Dict Compressing | Decompressing
Speed Usage R/U Rating | Speed Usage R/U Rating
KB/s % MIPS MIPS | KB/s % MIPS MIPS

22: 1607 100 1568 1563 | 19696 100 1778 1778
23: 1897 100 1933 1932 | 19965 100 1833 1828
24: 1788 100 1924 1922 | 20066 100 1865 1862
25: 1252 99 1439 1430 | 19535 100 1830 1837
----------------------------------------------------------------
Avr: 100 1716 1712 100 1827 1826
Tot: 100 1771 1769
===========
--> grep -m 4 -e "model name" -e "MHz" -e "cache size" -e "bogomips" /proc/cpuinfo
model name : QEMU Virtual CPU version 0.13.0
cpu MHz : 3073.982
cache size : 4096 KB
bogomips : 6147.96

и X3 тариф

--> hdparm -tT /dev/md4

/dev/md4:
Timing cached reads: 2148 MB in 2.00 seconds = 1074.50 MB/sec
Timing buffered disk reads: 220 MB in 3.02 seconds = 72.82 MB/sec
===========
--> time taskset 0xFFFFFFFF echo '2 1000000 ^ p'|dc

real 0m7.430s
user 0m6.660s
sys 0m0.036s
===========

--> wget mirror.yandex.ru/debian-cd/6.0.0-live/i386/iso-hybrid/debian-live-6.0.0-i386-standard.iso

2011-03-21 21:57:47 (6.45 MB/s) - “debian-live-6.0.0-i386-standard.iso” saved [232783872/232783872]
===========
--> time taskset 0xFFFFFFFF 7z a test.7z debian-live-6.0.0-i386-standard.iso

7-Zip 9.04 beta Copyright (c) 1999-2009 Igor Pavlov 2009-05-30
p7zip Version 9.04 (locale=en_US.UTF-8,Utf16=on,HugeFiles=on,2 CPUs)
Scanning

Creating archive test.7z

Compressing debian-live-6.0.0-i386-standard.iso

Everything is Ok

real 1m17.403s
user 2m29.109s
sys 0m1.452s
===========
--> taskset 0xFFFFFFFF 7z b

7-Zip 9.04 beta Copyright (c) 1999-2009 Igor Pavlov 2009-05-30
p7zip Version 9.04 (locale=en_US.UTF-8,Utf16=on,HugeFiles=on,2 CPUs)

RAM size: 1993 MB, # CPU hardware threads: 2
RAM usage: 425 MB, # Benchmark threads: 2

Dict Compressing | Decompressing
Speed Usage R/U Rating | Speed Usage R/U Rating
KB/s % MIPS MIPS | KB/s % MIPS MIPS

22: 3037 170 1736 2955 | 42922 200 1937 3875
23: 3077 176 1778 3135 | 42357 200 1941 3878
24: 3061 182 1808 3291 | 41719 200 1939 3871
25: 3023 178 1941 3452 | 41133 200 1936 3868
----------------------------------------------------------------
Avr: 177 1816 3208 200 1938 3873
Tot: 188 1877 3541
===========
--> grep -m 4 -e "model name" -e "MHz" -e "cache size" -e "bogomips" /proc/cpuinfo
model name : AMD Athlon(tm) 64 X2 Dual Core Processor 5600+
cpu MHz : 2800.000
cache size : 1024 KB
bogomips : 5599.72


Дополнение:


taskset 0xFFFFFFFF cmd — это значит, что для обработки cmd будут задействаны все процессорные ядра.
time — чтобы узнать затраченное время.
1 раз скорость на VDS была 10Мб в сек при скачивании образа с яндекса, пруфа к сожалению нет.
Оба сервера находятся в территориально в одном и том же месте (была задан вопрос, так как меня интересовало, не потеря ли я пинг ~60-65 и хороший канал с Россией при смене тарифа и сервера): your VQ-server is in DC12, your X3 is in DC13.
It is the same location
.
Tags:
Hubs:
+36
Comments 54
Comments Comments 54

Articles