Благодаря ГлобаТел Мне удалось получить на тестирование один из серверов (модулей) из этой статьи.
Сервер на ARM? Сделано в России! .
Как вы понимаете, хостинг на ARM, а не на надоевший x86, это как минимум свежо и возможно будет модно.
Спасибо, ГлобаТел.
В этой заметке не хочу слишком поднимать тему производительности (но она будет), гораздо интереснее посмотреть, насколько плавно запустится весь софт в моем проекте.
Развернул только ПО, базу образов никуда не перемещал.
Итак, под катом аниме-pictures.net те.
nginx, Python+Pylons+SQLAlchemy, PostgreSQL, Memcached, Redis. Сразу оговорюсь – эта заметка не будет последней, это лишь первое впечатление.
Монтаж
На сервере стоит стабильная Ubuntu 12.04, мой проект тоже работает на этой версии ОС в Hetzner, только платформа более стандартная i7-3770 и 32 гигабайта ОЗУ.Удалив и остановив ненужные службы, я начал установку нужных мне пакетов:
- PostgreSQL : apt-get установил и всё работает, никаких проблем.
Для начала я использовал все настройки по умолчанию (кроме доступа) и развернул дамп базы примерно за 10 минут.
- Мемкеш, Редис : Все без проблем установилось из репозитория и запустилось, все так же, как и было на х86.
- Пилоны : Я установил pip через apt-get, а затем установил virtualenv через pip, а внутри я сделал pip install pylons, который подтягивает с десяток пакетов.
Все прошло отлично, даже то, что требовало gcc (dev-пакеты для python, естественно, были установлены).
- SQLАлхимия : Так получилось, что я устанавливал 0.9, 0.8, 0.7 через pip и все они прекрасно установились.
Но из-за смены API пришлось оставить 0.7 для postgres.ARRAY.
- Подушка (ПИЛ) : Вот тут я и думал, что будут проблемы.
Дело в том, что Ubuntu 12.04 поставляется с устаревшей версией PIL, а не с новым форком Pillow. Pillow — это библиотека для работы с изображениями и она содержит много кода на языке C и ссылки на всякие libjpeg, libpng. Кроме того, на своем сайте они заявляют только о поддержке 386, amd64 и PPC. Итак пипом устанавливаем Pillow и все собирается без проблем.
- увсги : Это тот же конкретный проект с кодом C. Установка через pip тоже прошла отлично.
- nginx : Все еще нет проблем.
Настроил и всё заработало.
- новаярелик: Думаю, все знают этот хороший сервис для мониторинга системы и приложений.
К сожалению, с ним не сложилось.
Свой клиент они распространяют в бинарном виде, а пакеты есть только для i386 и amd64. Написал в техподдержку и получил более-менее приятный ответ:
Спасибо, что сообщили нам о ваших требованиях к поддержке ARM на мониторе сервера Linux. Я добавил это как запрос функции от вашего имени.
так что вполне возможно, что такая поддержка скоро появится.Информация, которую вы предоставили в этом билете, будет передана команде разработчиков.
Производительность
Очень серьезных замеров я не проводил, так как о производительности ARM много написано (в этом статья и на сайте phoronix.com).Производительность низкая и этого никто не скрывает. Например, время отрисовки тестовой страницы (одной из страниц с картинкой на сайте) составляло от 0,200 до 0,230 секунды, а после дополнительной настройки СУБД смогла добиться 0,120-0,160 секунды, для сравнения на i7 страница отображается примерно за 0,050 секунды.
Разница в 3-4 раза не кажется страшной.
Затем, используя стенд Apache, я проверил, сколько страниц в секунду может генерировать сервер.
Сразу оговорюсь: я тестировал с 4 и 8 процессами для uwsgi и разницы не было.
Так, наш 4-ядерный ARM-сервер выдавал 20 запросов в секунду, тогда как i7-3770 выдавал до 30 запросов в секунду.
Это говорит о том, что где-то у меня есть узкое место и я надеюсь его устранить на днях.
По моим прикидкам я должен выдавать не менее 200 запросов в секунду (ранее были такие результаты).
Мысли
- Не бойтесь новой архитектуры; по крайней мере в Python все работает из коробки.
- Это отличная замена VPS! Чисто по субъективным ощущениям, ARM работает как VPS среднего/высокого класса.
Если вам нужно больше оперативной памяти и жесткого диска, то ARM-сервер легко заменит VPS. Надеюсь, цены будут сопоставимы.
- Запускать тяжелые приложения на таких платформах, как Pylons и Django, — глупая идея.
Это можно сделать только в том случае, если у вас очень небольшой визит.
- Для таких серверов идеально подходят асинхронные приложения на Python/Tornado или непосредственно на C++.
В настоящее время часто встречаются конфигурации с одностраничным приложением, где бэкэнд является просто интерфейсом к таким быстрым базам данных, как Redis или MongoDB.
кот /proc/cpuinfo Процессор: Marvell — процессор PJ4Bv7, версия 2 (v7l) процессор: 0 БогоМИПС: 1325,46 процессор: 1 БогоМИПС: 1325,46 процессор: 2 БогоМИПС: 1325,46 процессор: 3 БогоМИПС: 1325,46 Особенности: swp half-thumt fastmult vfp edsp vfpv3 tls Разработчик процессора: 0x56 Архитектура процессора: 7 Вариант процессора: 0x2 Часть процессора: 0x584 Версия процессора: 2 Аппаратное обеспечение: плата Marvell Armada XP GP. Ревизия: 0000 Серийный номер: 0000000000000000 кот /proc/meminfo MemTotal: 8019640 КБ MemFree: 4065896 КБ Буферы: 115744 КБ В кэше: 3421572 КБ Кэш подкачки: 0 КБ Активный: 2119148 КБ Неактивный: 1654100 КБ Активный(анон): 354668 КБ Неактивный(анон): 22808 КБ Активный(файл): 1764480 КБ Неактивный(файл): 1631292 КБ Неизбежный: 0 КБ Заблокировано: 0 КБ HighTotal: 7299036 КБ HighFree: 3635332 КБ НизкийВсего: 720604 КБ LowFree: 430564 КБ SwapTotal: 16777212 КБ SwapFree: 16777212 КБ Грязный: 48 КБ Обратная запись: 0 КБ AnonСтраницы: 235956 КБ Сопоставлено: 33484 КБ Шмем: 141548 КБ Плита: 156072 КБ SReclaimable: 92748 КБ SUnreclaim: 63324 КБ KernelStack: 912 КБ Таблицы страниц: 2904 КБ NFS_Unstable: 0 КБ Отказов: 0 КБ WritebackTmp: 0 КБ CommitLimit: 20787032 КБ Committed_AS: 587816 КБ VmallocВсего: 122880 КБ VmallocИспользовано: 21376 КБ VmallocChunk: 60648 КБ дф -ч Размер используемой файловой системы Доступно % использования Установлено на /dev/sda2 277G 4,6G 259G 2% / udev 3.9G 4.0K 3.9G 1% /dev tmpfs 1.6G 296K 1.6G 1%/запуск нет 5.0M 0 5.0M 0% /запуск/блокировка нет 3.9G 0 3.9G 0% /run/shm /dev/sda1 1008M 19M 938M 2% /boot Теги: #arm #python #pylons #tornado #redis #memcached #postgres #python
-
Давайте Защитим Ночное Небо
19 Oct, 24 -
Коротко Обо Всех Информационных Технологиях
19 Oct, 24