Опыт использования выделенного сервера на Intel Atom 330

Недавно я пытался привлечь внимание к серверам на процессорах Intel Atom. Многие встретили их со скептицизмом: «Разве может процессор для дешевых ноутбуков быть в сервере?». Сейчас услуга colocation nettop-ов на Atom-ах уже стала рядовой, и я готов поделиться с вами месячным опытом использования сервера на Intel Atom.

Конфигурация сервера – неттоп Acer Aspire Revo 3600 на платформе nVidia Ion, Intel Atom 330 (2 физических ядра, 64 битный), 4Гб DDR2-800 памяти(Ubuntu 64-битная увидела только 3.2Гб, надо крутить BIOS), SSD OCZ Vertex 30Gb. Из оптимизаций под SSD – раздел cмонтирован с noatime, отключены access-логи, отключен swap (это нужно для увеличения срока службы – меньше записей – дольше прослужит, обо всем этом в отдельной статье. К слову, за месяц истрачено менее 0.5% ресурса SSD).

Сервер был размещен в компании Агава - у них это уже официальный тарифный план.
За 1000 рублей в месяц у нас неограниченный трафик по соотношениям (это немного напрягает, особенно зарубежный трафик), бесплатный KVM 1 час в день (пользовался – все без проблем), перезагрузка в течении 15-30 минут «руками».

Производительность : UnixBench

Для начала UnixBench 4.1 WHT:
                     INDEX VALUES
TEST                                        BASELINE     RESULT      INDEX
 
Dhrystone 2 using register variables        376783.7  4769578.3      126.6
Double-Precision Whetstone                      83.1      343.6       41.3
Execl Throughput                               188.3     2114.9      112.3
File Copy 1024 bufsize 2000 maxblocks         2672.0    59159.0      221.4
File Copy 256 bufsize 500 maxblocks           1077.0    15846.0      147.1
File Read 4096 bufsize 8000 maxblocks        15382.0   657318.0      427.3
Pipe-based Context Switching                 15448.6   137070.2       88.7
Pipe Throughput                             111814.6   504798.0       45.1
Process Creation                               569.3     7158.0      125.7
Shell Scripts (8 concurrent)                    44.8      446.9       99.8
System Call Overhead                        114433.5  1731146.5      151.3
                                                                 =========
     FINAL SCORE                                                     118.1

Перед тем как сравнивать с производительностью VDS-ок, нужно учесть, что тут 4Гб памяти, а там – 64-256Мб. От объема памяти unixbench не зависит. Также, нужно аккуратно сравнивать с VDS-ками с негарантированым CPU – они в спокойные времена могут вам дать почти весь сервер. Сильно медленными оказались вещественные числа двойной точности – к счастью, они редко используются в Web-серверах. Возможно ради экономии площади кристалла двойная точность «эмулируется», потому и тормозит страшно?

Производительность : Web-приложения

На сервер был установлен Apache2+MySQL5+PHP 5.3+APC, nginx. Apache2 был настроен в режиме prefork с 4-мя процессами: менее 4-х процессов – система не нагружается на 100% и снижается скорость работы. Больше – тоже медленное падение скорости. (Т.е. оптимальное кол-во детей – по количеству виртуальных ядер с hyper-threading-ом). Очередь запросов таким образом «висит» в nginx, который с этой задачей справляется идеально. MySQL был настроен на потребление ~0.7Гб памяти. PHP-сессии хранятся в memcached.

Таким образом, получилось, что при любой нагрузке Apache+MySQL+PHP не займет больше ~1Гб памяти.

NB: Во время заполнения данных в MyISAM таблицу с 400'000 строк и 2-мя индексами проводилось по 1000 вставок в секунду отдельными запросами из PHP.

Нагрузочные тесты проводились на моей домашней страничке http://3.14.by/ru/ - 6 SQL запросов, легкий PHP), а также на PhpBB 3.0.6 форуме, с кэшированием в APC. PHP/MySQL/Apache2/nginx оптимизированы руками. Запросы посылались с другого сервера в Москве, 45 параллельных запросов.

Для сравнения – незагруженный shared хостинг ночью (нагрузка около 0, eu107.activeby.net), с MySQL в кластере на отдельных серверах. 12Гб памяти, процессор – Xeon E5410 (4 ядра), 2.33Ghz. Apache2, PHP5.2, eAccelerator, nginx.
Atom 330Shared Xeon E5410
http://3.14.by/ru/
6 SQL запросов, легкий PHP
240 RPS198 RPS
http://3.14.by/forum/
PhpBB 3
30 RPS21 RPS
*RPS – запросов в секунду

Почему Atom обогнал? Локальный MySQL+большие кэши под пару сайтов, а не под сотни.

Заключение

О результатах можно спорить, но факт остается фактом: все работает идеально, ну очень быстро, куча свободной памяти на вырост, отсутствие даже намеков на тормоза с диском или сетью (в любой момент можно резко начать отдавать 10 Мб/с, пинги по Москве 0.5-4мс, 20 мс до Беларуси).

Но, как говорится "Memento mori" – свой сервер когда-нибудь сломается. Хоть из механики всего 1 вентилятор, нужно к этому быть готовым. Если вас это не устраивает, то придется довольствоваться более скромными возможностями VPS. С другой стороны, если что и случиться - вы всегда полностью контроллируете ситуацию, никто не будет "кормить вас завтраками".

Это отличный пример замедления технического прогресса - даже low-end решение может быть идеальным решением для многих задач: легкий web-сервер, файл-сервер(даже 1Гбит/сек), раздача статики (1Гбит/с), потоковое видео (1Гбит/с). Задачи для "толстых" серверов безусловно остаются, но им придется немного потесниться

Лично я – более чем доволен «Атомным» сервером

О будущем

В следующем году(2010) выходит следующее поколение Atom-ов: Pineview(32nm). Основное отличие - интегрированный одноканальный контроллер памяти(+возможно будет только 2Гб памяти). Не знаю, лучше ли это для серверных приложений чем двухканальный в чипсете, но потребление энергии точно будет сильно меньше.

Что действительно было бы круто - массовое производство маленьких ARM серверов. Например Cortex-A9 MPCore уже сейчас выглядит очень и очень вкусно по производительности, тепловыделению, цене. Сервера обычно работают на Linux, поэтому с другой системой команд не будет проблем - уже сейчас даже есть Ubuntu для ARM процессоров. Возможно будет иметь смысл делать такой процессор без SIMD и с эмулированным FPU.

Также в ARM можно было бы увидеть много слотов памяти, 2Гб модули еще долго будут самыми дешевыми. Парадоксальная ситуация - купить памяти на 300$ можно, только вставить её некуда :-) 8-16 слотов в mid-end серверах было бы очень вкусно. Зачем так много? Кэша не бывает много, и опять же, память нынче дешевая. В x86 много слотов не будет в mid-end секторе, чтобы не создавать лишнюю конкуренцию дорогим решениям, с ARM руки развязаны

Update: Dell не спит. Привильным путем идете, товарищи! Правда чуть дороговато, 400$ если брать кучку.
2 Октября 2009

RSS@BarsMonster3@14.by