Тестирование Платформы Arm Marvel Armada Xp В Качестве Хостинга Для Проекта Python

Благодаря ГлобаТел Мне удалось получить на тестирование один из серверов (модулей) из этой статьи.

Сервер на ARM? Сделано в России! .

Как вы понимаете, хостинг на ARM, а не на надоевший x86, это как минимум свежо и возможно будет модно.

Спасибо, ГлобаТел.

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

Развернул только ПО, базу образов никуда не перемещал.

Итак, под катом аниме-pictures.net те.

nginx, Python+Pylons+SQLAlchemy, PostgreSQL, Memcached, Redis. Сразу оговорюсь – эта заметка не будет последней, это лишь первое впечатление.



Тестирование платформы ARM Marvel Armada XP в качестве хостинга для проекта Python



Монтаж
На сервере стоит стабильная 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 запросов в секунду (ранее были такие результаты).



Мысли
  1. Не бойтесь новой архитектуры; по крайней мере в Python все работает из коробки.

  2. Это отличная замена VPS! Чисто по субъективным ощущениям, ARM работает как VPS среднего/высокого класса.

    Если вам нужно больше оперативной памяти и жесткого диска, то ARM-сервер легко заменит VPS. Надеюсь, цены будут сопоставимы.

  3. Запускать тяжелые приложения на таких платформах, как Pylons и Django, — глупая идея.

    Это можно сделать только в том случае, если у вас очень небольшой визит.

  4. Для таких серверов идеально подходят асинхронные приложения на 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

Вместе с данным постом часто просматривают:

Автор Статьи


Зарегистрирован: 2019-12-10 15:07:06
Баллов опыта: 0
Всего постов на сайте: 0
Всего комментарий на сайте: 0
Dima Manisha

Dima Manisha

Эксперт Wmlog. Профессиональный веб-мастер, SEO-специалист, дизайнер, маркетолог и интернет-предприниматель.