Авторизация

IT технологии

Бюджетный веб сервер на orange pi. Часть 3. Результаты и впечатления

В продолжение 1 части и 2 части как и обещал немного результатов, впечатлений и размышлений.

Ну начну с того, что мой мини веб сервер с четырехядерным процессором работающем на частоте 1,6 Ггц и 1 Гб DDR3 памяти на борту работает. Работает он круглосуточно и при этом тянет три сайта на Joomla 3.x. Впечатления остались двоякие непонятное сомнение както меня оставлявлять совсем не хочет...

Ну и к результатам тестов и немного о загруженности ресурсов.

Утилита ad мне показала вот такие дела

Finished 1019 requests

Server Software:        nginx
Server Hostname:        localhost
Server Port:            80

Document Path:          /
Document Length:        11403 bytes

Concurrency Level:      10
Time taken for tests:   60.096 seconds
Complete requests:      1019
Failed requests:        1
   (Connect: 0, Receive: 0, Length: 1, Exceptions: 0)
Non-2xx responses:      1
Keep-Alive requests:    1
Total transferred:      12122803 bytes
HTML transferred:       11616195 bytes
Requests per second:    16.96 [#/sec] (mean)
Time per request:       589.754 [ms] (mean)
Time per request:       58.975 [ms] (mean, across all concurrent requests)
Transfer rate:          197.00 [Kbytes/sec] received

Connection Times (ms)
              min  mean[+/-sd] median   max
Connect:        0    0   0.3      0       5
Processing:   258  586  90.8    569    1443
Waiting:      241  562  85.3    549    1443
Total:        263  586  90.7    570    1443

Percentage of the requests served within a certain time (ms)
  50%    570
  66%    600
  75%    622
  80%    642
  90%    692
  95%    734
  98%    801
  99%    911
 100%   1443 (longest request)

 

Посмотрим на это как на тест нормального сервера, ведь в идеале мы хотим именно такой сервер. Результаты так скажем не блещут. Скорость отдачи страниц от 0,57 до 1,4 сек., а количество обрабатываемых запросов в секунду 16,96. По поводу скорости отдачи у меня есть большое сомнение в правильных настройка и php, и MySQL и apach с nginx. Мои знания пока не позволяют это сделать по человечески, но я учусь и в процессе понимаю, что при настройках по умолчанию я имею и буду иметь тормоза. Все надо настраивать и делать это правильно, под свое конкретное железо и сборку програмную. Ну нет пока знаний, значит пока довольствуем ся тем, что есть и потихоньку выращиваем себе извилины.

Немного погуглил... Немного подправил... Пока поднял до 17,5 запросов в секунду. Сейчас понимаю, что многое упирается в чтение/запись и все еще в неоптимизированные процессы. Нужно играть с кешированием и больше задействовать ЩЗУ, но при памяти в 1Гб много не поиграешь. Будем искать баланс)).

По поводу 16,96 запросов в секунду. С выключенной панелью на один запрос больше, но это не существенно. Имеем 1019 полноценно обработанных запросов в минуту. Для нормального сервера это так же крайне мало. Причина скорее кроется в первой упонянутой проблеме и думаю при правильной настройке на 30-40% показатели поднять реально. Но... Сильно ситуацию это не спасет.

После всего этого я немного было расстроился и начал искать замену в холодных и экономичных рядах Intel Atom. Но как оказалось, достойную замену найти оказалось проблематично. По тестам Atom-ы показывали максимум в два раза бОльшую производительность, но при этом по энергопотреблению не шли ни в какое сравнение.

Тогда я взял те же цифры и от тестов перешел к осмыслению реальности. Ну давайте реально (хотя и очень грубо) посчитаем. Подсчет конечно проведем для статичных сайтов типа блога, каталоги или чего-то подобного. Итак 1019 округлим до 1000. А далее 1000х60=60 000 запросов/час. 60 000х24=1 440 000 запросов/сутки. Таким образом наш сервер при потоке в сутки может полноценно обработать почти полтора миллиона запросов. Но это конечно опять теория, на практике не все так радужно. Если грубо представить, что посетители ходят только днем (делим пополам), если учесть, что зачастую массовые наплывы посетителей зачастую утром, в обеденный перерыв и вечером (поделим... ну пусть еще на 4), если учесть, что к нам не просто зашли/вышли, а читают и через определенное время все же переходят постраницам (грубо поделим еще на 4), оставим время ботам и немного разгрузим процессор (ну и еще грубо поделим на 4) получим 1 440 000/2/4/4/4=11 250 реальных посетителей в сутки. Мало? Ну если у вас блог Джастина Бибера или Дональда Трампа, то это конечно очень мало. Но для среднестатистического сайта более чем предостаточно! В данный момент для трех моих сайтов (включая этот блог) таких ресурсов выше крыши и каких либо существенных нагрузок (кроме моих нагрузочных тестов) я пока не наблюдал. В общем если вы хотите отказаться от хостинга, у вас пара не сильно требовательных к ресурсам сайтов с парой тысяч посетителей в сутки (ну может до 5-8 тысяч), стабильный канал, есть желание повозиться и хотя бы минимальные знания и понимание процесса, то веб сервер на апельсине это то, что вам нужно. Если хоть одно условие не выполняется, то лучше не соваться.

Казалось бы, живи и радуйся! Но как я упомянул, впечатления двоякие... Все же вспомним кто именно выполняет роль нашего веб сервера. Малюсенькая платка неизвестного производителя на процессоре для медиаприставок с очень сырым ПО. И все это работает на SSD через очень дешевый китайский переходник SATA-USB. Да, многие скажут - да купи ты себе нормальный хостинг и не парься! А не хочу, причем принципиально. Дорогой хостинг лично мне брать бессмысленно, а дешевого я наелся от и до. Бррр... как вспомнишь...

Ну и общие  впечатления от самой работы... Шума нет никакого впринципе, ибо нет ни одного кулера. Нормально подобранный радиатор справляется с поставленной задачей легко. Потребление 5 Ватт., смешная цифра для любого компьютера. Скорость... Ну если вы читаете эти статьи, значит можно сказать все сами и увидели, блог то сейчас на этом апельсине и крутится. Единственное, что иногда вызывает неудобство - тормоза в некоторых ситуациях. Когда апельсин пытается произвести чтение/запись больших объемов мелких файлов. Не сказать чтобы все безумно зависало, просто непривычно и неприятно притормаживает. Лично я тут вижу причину в настройках и отсутствии полноценного SATA. Поэтому следующим моим шагом все же будет приобретение orange pi plus, который имеет отдельный чип на LAN (кстати до 1 Гбит/с), SATA2 и ненужным, но бонусом wi-fi и сборка обоих устройств в кластер. Кстати Ajenti поддерживает работу в кластере. В итоге получим восемь ядер на частоте 1,6Ггц и 2Гб DDR3. Во сколько обойдется подобный хостинг? Да еще без претензий на нагрузку, количество сайтов, БД и т.д.  Правда заковыка в том, что функции контроллера SATA выполняет чип SATA-USB. Но погуглив я понял, что на подавляющем большинстве контроллеров построенных на этом чипе заявленная скорость до 480 Мбит/с, а это уже нормальная скорость в отличие от непонятного нонейма на непонятном железе, сделанном в китайском сарае в третью смену перед праздниками.

Пока без фото. Както стыдно выкладывать стянутую резинками сборку платы с SSD и проставками в виде прищепок)). Организую корпус - будет фото.

 

Update:

После включения кеширования (именно в плагине) и муторного колдования в конфигах nginx и MySQL все же получилось добиться почти троекратного увеличения количества ответов сервера в секунду (до почти 50) и уменьшение времени отклика.

Finished 2976 requests


Server Software:        nginx
Server Hostname:        localhost
Server Port:            80

Document Path:          /
Document Length:        14559 bytes

Concurrency Level:      10
Time taken for tests:   60.001 seconds
Complete requests:      2976
Failed requests:        4
   (Connect: 0, Receive: 0, Length: 4, Exceptions: 0)
Keep-Alive requests:    0
Total transferred:      44477499 bytes
HTML transferred:       43336852 bytes
Requests per second:    49.60 [#/sec] (mean)
Time per request:       201.615 [ms] (mean)
Time per request:       20.161 [ms] (mean, across all concurrent requests)
Transfer rate:          723.91 [Kbytes/sec] received

Connection Times (ms)
              min  mean[+/-sd] median   max
Connect:        0    0   0.2      0       3
Processing:   107  201  65.7    194    2000
Waiting:       81  169  49.4    164    1136
Total:        107  201  65.8    194    2000

Percentage of the requests served within a certain time (ms)
  50%    194
  66%    206
  75%    215
  80%    220
  90%    235
  95%    253
  98%    287
  99%    418
 100%   2000 (longest request)

Так же пришлось добавить маленький кулер от северного моста материнской платы, запитав его на 5V. Получился легкий (но эффективный при таком радиаторе) обдув при болной его беззвучности. Теперь сервер с легкостью выдерживает внештатные перегрузки (не путать с dDos!) и даже тестовая нагрузка в 100% не дает нагрева даже до 65 градусов.

Комментарии   

+2 # RE: Бюджетный веб сервер на orange pi. Часть 3. Результаты и впечатленияjudest 07.08.2016 17:46
Зря стесняешься показывать свой сервер без корпуса. Как раз на внутренности интереснее смотреть, чем на красивую коробку.
Сообщить модератору
+1 # в конфигах nginx и MySQLАлексей 26.12.2016 12:48
Раз Вы упомянули оптимизированные конфиги данных сервисов, было бы чудно, если Вы их выложили в паблик. Тем самым дав народу возможность не пропасть результатам Вашего труда?
Сообщить модератору
+1 # RE: в конфигах nginx и MySQLadmin 12.01.2017 23:42
В общем ситуювина такая. Нагрузка ботов, мелкие глюки и жесткие зависания из-за этих прелестных пакостей, а так же катастрофическая нехватка времени из-за кучи работы заставили временно забить на апельсин (как и на сайт к сожалению) и опять поднять сервер на атлоне. Кстати боты с глюками очень жрут память - 1 гиг это мало. Либо своп, но жалко SSDшку.
В ближайшее время очень хочу испытать dietpi, отзывы неплохие, а заявления разрабов так вообще сказочные.
Сообщить модератору
0 # Слово цифра пишется через ИВладимир 19.02.2017 09:00
Поправьте пожалуйста, глаза режет.....
Сообщить модератору

You have no rights to post comments

Яндекс.Метрика