Lamp на raspberry pi 2 — на что способен arm cpu + usb

Lamp на raspberry pi 2 — на что способен arm cpu + usb

Оговорюсь сходу, поставленная цель — не определить максимум возможностей совокупности, а узнать принципиальную работоспособность современных микрокомпьютеров в качестве полноценных помочь-и веб серверов оценить конкурентноспособность довольно виртуальных хостингов. Исходя из этого, в данной статье не рассматриваются изучения и вопросы оптимизации предельно допустимой нагрузки. Вместо этого опыт проводится на действующих сайтах с настоящими визитёрами.
Смотрите кроме этого: Цена Raspberry Pi B+ снижена до $25

Обновленная версия «малинки», Raspberry Pi B+, была выпущена недавно, по цене в $35. на данный момент цена этого мини-ПК снижена производителем до $25, сходу на $10. По словам разработчиков, такое понижение произошло благодаря «оптимизации производства». Подробности довольно таковой оптимизации предоставлены не были, но это и не имеет значения — так как сейчас мини-ПК стали еще дешевле.

Необходимо подчеркнуть, что понижение цены выглядит в полной мере логичным шагом, поскольку Raspberry Pi B+ и Raspberry Pi 2, выпущенный в феврале, продавались по однообразной цене.

ВступлениеВероятно, многие, кто знаком с микрокомпьютерами съедобных семейств (Raspberry, Banana, Orange…), вспоминали о расширении круга их применения. Изначально предназначенные для совокупностей типа «умный дом» и робототехники, они становятся всё более стремительными при сохранении размеров. Малое энергопотребление с повышением мощности процессоров делает их привлекательными для потенциального применения в роли веб-серверов.

Давайте выберем подходящую для этого модель.Из-за чего Raspberry Pi 2 model B?Потому, что самое не сильный место таких совокупностей с позиций хостинга, — это процессор, владеющий низкой относительной производительностью (о чём чуть дальше), то мы попытаемся организовать веб-сервер на бюджетном варианте, но что, однако, сможет появляться достаточно замечательным для отечественных задач — это Raspberry Pi 2 model B. Он владеет 4-х ядерным процессором, трудящимся в штатном режиме без охлаждения на 900 Mhz и возможностью поменять эту частоту от 700 до 1200 Mhz. Поднимать тактовую частоту мы не будем, только увидим, что для «разгона» пригодится радиатор и, быть может, вентилятор.

Раз так сложилось, что на сегодня Raspberry Pi 2 model B владеет самым производительным процессором среди «одноклассников», выбираем его для тестирования.Технические изюминки разглядываемой платформыПроцессорПроцессор у нас необыкновенный, семейства RISC. Кратко возможно заявить, что комплект руководств у для того чтобы процессора намного меньше, чем у «простых», но простые команды он делает весьма скоро. Но для исполнения сложных руководств таких несложных команд нужно довольно много.

Исходя из этого и тактов уходит больше. Так что в случае если кому показалось, что 4 ядра по 900 Mhz — это более, чем достаточно для вебсервера, то стоит сделать поправку — Broadcom BCM2836 quad core Cortex A7 для отечественной задачи окажется не стремительнее старенького Pentium 300-400 Mhz.

Действительно, в 6 раз обгоняя прошлую одноядерную модель на Raspberry Pi, и в 1.9 раза опережая двухядерного соклассника на Banana Pi M2 (что хоть и рекламируется наличием SATA и гигабитного ethernet, но для веб-сервера из-за собственного процессора подходит в значительной степени меньше). Как раз по обстоятельству неторопливости центрального процессора мы замечаем рекордно низкое потребление микрокомпьютеров. По дешёвым данным, Raspberry Pi потребляет от 2 до 3-х ватт, 4 ватта при пиковой нагрузке, 1 ватт при простое.

Что ж, 2-3 ватта (5V, 0.4-0.6А) в среднем для всей совокупности, за исключением питания носителей информации — это то, за что стоит побороться на поприще корпоративного либо домашнего вебхостинга, то, что может сделать его удачным с экономической точки зрения.ПамятьПамять употребляется не самая стремительная, это DDR2, но имеется в полной мере достаточный количество — 1GB. Нужно заявить, что это хороший количество для простых вебсерверов под управлением Linux.Сетевой интерфейс100-мегабитный сетевой интерфейс в полной мере достаточен для передачи данных.

Больше нам и не требуется — процессор хранения и подсистема информации просто не справятся с большей нагрузкой.Хранение информацииПереходим к весьма занимательному моменту — встроенный картридер разрешает совокупности загружаться лишь с него (в случае если лишь не перенаправить загрузчик…), а это в штатной обстановке ограничивает выбор главного носителя микро SD картой. Радует то, что сейчас они смогут быть уже большого количества и трудиться скоро.

Не смотря на то, что недочёты уже налицо — мы вряд ли захотим держать на ней файлы вебсайтов, базы данных, swap и логи, во избежании медленной преждевременного сокращения и работы срока судьбы носителя. Для этого у нас будет ещё один носитель на шине USB. Таковой подход не только увеличит производительность совокупности, но и даст преимущество модульности — легко заменить носитель на запасной и делать бэкапы всего образа.

Вопрос в том, что именно мы желаем применять в качестве внешнего носителя — SSD диск, HDD либо стремительную карту памяти. Тут любой решает сам для себя, очень многое зависит от сайтов и характера.

направляться не забывать, что на Raspberry Pi 2 употребляется стандарт USB 2.0, ограничивающий отечественную файловую систему в скорости передачи данных.В данном примере в качестве внешнего устройства мы разглядим довольно медленный вариант для записи — это USB-картридер с подключенной полноформатной SD-картой Lexar Professional, разрешающей записывать эти на скорости всего лишь около 15Mb/s наряду с этим подключении. Не смотря на то, что (в общем случае) нам будет неважна скорость носителя выше 100 мегабит как для чтения, так и для записи, поскольку сообщение с внешним миром ограничена данной цифрой.

При применении дисковых систем необходимо задуматься об их энергопотреблении. Винчестер 2.5 потребляет ~5 ватт и, возможно, потребует отдельного источника питания. направляться кроме этого не забывать про специфичную организацию ввода-вывода на Raspberry через USB, разумеется, у нас имеется ещё одно узкое место:Итак, носители для теста:«Внутренний»: MicoSD 8Gb class 10«Внешний»: SD 32Gb class 10+ (UHS)состав и Установка LAMPСистема должна быть простой, но иметь полноценный функционал.

Исходя из этого одно требование — ничего лишнего, но лишь Apache запрячем за Nginx, благо память разрешает.Операционная системаНа «внутреннем» носителе ставится Minibian с образа 2015-02-18-wheezy-minibian.img.Это — Debian 7.8 в минимальной комплектации для Raspberry. Оговоримся, в стандартном репозитарии ожидают PHP не выше 5.5 и Apache не выше 2.2. Это никакое не досадное ограничение, но для данной статьи полезно проверить возможность применения самых свежих предположений.

Чтобы установить не входящие в обычный репозитарий PHP 5.6.x и Apache 2.4.x, было нужно поменять источник для 8-й версии Raspbian, совокупность по окончании apt-get upgrade начала иметь версию 8.0.ApacheВерсия 2.4.10 (Raspbian). Включен gzip, подключены все чаще всего применяемые модули из стандартной поставки, включая mod_rewrite, mod_cache…, не считая тех, что включены по умолчанию.PHP5.6.12-0+deb8u1 (cli). Выполняется в Apache как prefork. Имеется php-curl, php-gd и другие популярные библиотеки.MySQL5.5.44-0+deb8u1 — (Raspbian).NginxNginx/1.6.2. Nginx несёт ответственность за статику.

Включено сжатие gzip.Напомню, что все логи пишутся на внешний носитель, база данных MySQL в том месте же, swap не отключен, но пустой на всё время тестирования.В качестве запасных утилит использую PhpMyAdmin, htop, iostat и webmin. Установлен exim4, но лишь для отправки сообщений из форм. Как видно, наш сервер в полной мере современен и функционален. Любителей панели управления VESTA разочарую — к сожалению, производитель не поддерживает ARM процессоры и не планирует этого делать в скором будущем.

Исходя из этого webmin.ТестированиеЯ сходу не планировал делать никаких синтетических тестов, т. к. они скорее из области весьма далёкой теории. На практике же всё во многом зависит от характера хостируемых сайтов, от распределения нагрузки по времени, от канала связи, количества просмотров, времени визитёров на сайте…, и от настроек. Иначе говоря предлагаю взглянуть, что получается в действительности, на действующих сайтах.

Тестируемые вебсайты не основаны на какой-либо CMS, но применяют отображение картин из базы данных на динамических (PHP) страницах, исходя из этого возможно достаточно интенсивная нагрузка в течении. А вот AJAX-соединений нет вовсе. Потому, что отечественный хостинг пока не претендует на опытный, то посчитал достаточным для теста размещение на нём 16-ти действующих сайтов с низкой посещаемостью, из которых около пяти — около 100-200 человек в день, остальные — не более 50-ти визитёров за это же время.

Всего — около 800-900 человек в сутки, что аналогично по допустимой нагрузке с недорогим виртуальным хостингом. Добрая половина визитёров приходится на вечер, главные визита случаются в 20-22 часа (~300 человек за два часа, в среднем 4 просмотра = 10 просмотров в 60 секунд по ~700 кб любой = 116 килобайт трафика в секунду). Это время обозначим «час пик» и одвременно с этим совершим тестирование.

Тестов будет всего два вида — оценка производительности посредством сторонних сервисов и отчёт утилит htop, iostat по настоящей работе.1. загрузки и Время генерации пользователем страниц в «часы пик»Применяем всего два главных параметра — время генерации загрузки и время страницы страницы, для двух типов страниц — «тяжёлых» (тяжёлой для процессора, т. к. большое количество картин из MySQL, продолжительная генерация) и «лёгких» (простая динамическая страница PHP).

Повторим любой тест 10 раз, дабы уменьшить возможность случайного результата, и будем применять различные сервисы.Напомню про географию тестирующих серверов и про их вероятную загруженность. Исходя из этого полные результаты смогут разниться очень сильно, это естественно. Повторные замеры делал с перерывами в 5-10 мин., дабы попадать в различное время загруженности сервисов. Канал тестируемого Raspberry — гигабитная оптика, география — Сибирь, 150 гарантированных мегабит до Москвы.

Чтобы убедиться в способности сервера обслуживать пара одновременных соединений, тестирование запускал в один момент на следующих сайтах-сервисах:`Лёгкая` страница (547 кб, без обращений к MySQL)PingDom.com, ШвецияВремя загрузки страницы (46 запросов): минимум — 925 мс, максимум — 1124 мс, средняя — 955 мс.Гугл PageSpeed InsightsНареканий по скорости нет.Sitespeed.ruОбщее время загрузки страницы 3.9-4.2, среднее 4.0. Время генерации страницы от 139 до 157, среднее 145 мс.

Вот из-за чего у Гугла нареканий нет — попадаем в допустимые им 200 мс.`Тяжёлая` страница (843 кб, включая 38 картин по 10-15 кб из MySQL)PingDom.com, ШвецияВремя загрузки страницы (85 запросов): минимум — 946 мс, максимум — 1001 мс, средняя — 973 мс.Гугл PageSpeed InsightsНареканий по скорости нет.Sitespeed.ruОбщее время загрузки страницы 5.3-4.2, среднее 4.0. Время генерации страницы от 158 до 169, среднее 162 мс.2. Отчёт утилиты htopКак и ожидалось, Htop продемонстрировал, что главный потребитель процессорного времени — это процессы mysql.

Они «скушали» 98 мин. из последних дней процессорного времени. Что неудивительно — нередкие и «тяжёлые» запросы к базе у нас предполагались изначально. Будь картины в кэше nginx, мы бы имели прирост в производительности, но тест тем и занимателен, что с запасом моделирует повышенную нагрузку на MySQL, характерную, кстати, для большинства CMS.3.

Отчёт утилиты iostatЭта утилита продемонстрировала записи скорости и средние чтения на носители:1. «Внутренний» носитель (совокупность) — 0.87 кб / с чтение в среднем, 15,5 кб / с запись в среднем (вероятнее из-за кеширования nginx, имеется что доработать в конфигурации).2. «Внешний» носитель (сайты, логи, базы данных) — 2.4 кб / с чтение и 3 кб / с запись (тут всё нормально, чтение закешировано, пишутся логи).4. Распределение ресурсов процессораРаспределение процессорного времени по htop, выборка — ровно двое дней работы (обслужено ~1600 неповторимых визитёров согласно данным Яндекс-метрики):mysql 6.8%htop 1.8%nginx 0.75%apache2 Практически всё другое время процессор отдыхал.Как следствие, имеем громадной запас по свободному процессорному времени, запас по поднятию частоты процессора, запас по скорости работы носителей информации на запись.

Доступно множество оптимизаций в настройке как серверных программ (вынести кеш nginx на отдельный носитель, к примеру), так и самих сайтов. Всё совместно — хороший потенциал для повышения неспециализированной производительности.ИтогНашему виртуальному визитёру понравилась скорость работы вебсервера на микрокомпьютере, не обращая внимания на то, что были другие одновременные визиты.

Так, не обращая внимания на узкие места (USB и процессор), имеем в полной мере очевидный вывод — полноценный вебсервер на Raspberry Pi 2 model B настоящ. Как по ПО, так и по техническим параметрам.

Исходя из совсем низкой загруженности в разглядываемом варианте, предположу, что он сможет оперативно обслуживать как минимум пару-тройку тысяч визитёров среднестатистического сайта (сайтов ?) в день.Многопроцессорность оказывает помощь стремительнее совладать с запросами, памяти достаточно для кеширования, передача данных через USB удовлетворительная, так что сервер-малыш может не только разрешить сэкономить на электричестве, но и осуществлять стремительную (плюс недорогую!) замену вышедшего из строя оборудования. Такая совокупность может окупать себя при применении в сети предприятия в качестве корпоративного сервера (сервер базы данных, веб-сервер, сервер резервного копирования, файлообменник) по сравнению с другими популярными ответами.

И уж точно быть альтернативой виртуальному хостингу в умелых руках. Скажем, на бюджетном источнике бесперебойного питания микрокомпьютер в паре с роутером может трудиться часами, так что вопрос краткосрочного (и не весьма) отключения электроэнергии возможно нивелирован дома, в случае если на узле провайдера кроме этого стоят UPS. А ещё возможно руководить электричеством, давать команды разным устройствам, подключитьвидеокамеруи разные датчики…Пробуйте, экспериментируйте, микрокомпьютеры — это не только недорого, но и до приятного негромко…

Случайная статья:

apache php mysql server installation on raspberry pi 3


Похожие статьи:

  • Свежезамороженный raspberry pi

    Хорошего времени дней, дорогие товарищи!Думаю многие обладатели гаджета, указанного в топике, или испытывали проблему перегрева, или хотя бы ею. Другими…

  • Raspberry pi из newark (сша)

    Привет всем.В далеком прошлом увидел, что у большинства появляется неприятность с заказом Raspberry Pi из Англии (магазин Farnell.com). Фактически,…

  • Как мы решили узнать, зачем люди используют raspberry

    По окончании подборки мини-плат для разработчиков, мы действительно задумались о том, что же с этими устройствами делают люди, и совершили конкурс для…

Комментирование и размещение ссылок запрещено.

Обсуждение закрыто.