Всем доброго дня.
Разговор пойдет не совсем о трейдинге, а о технической стороне его составляющей. Причем технически, в прямом смысле этого слова. Так что кому не интересны железяки можете не тратить свое драгоценное время и переходить к следующим топикам.
-*-
Вот и подходит к концу 2015 год, и как всегда в конце мы подводим итоги. Что было сделано, чего не было сделано, что должно было быть сделанным. Но в этот раз, подведение итогов лично для нас коснулось кардинальными будущими переменами, чем мы и хотим поделиться с вами. Итак, дело было так:
Разобрав полеты наших роботов, и то как они выступили в этом году мы пришли к не утешительным выводам. СРОЧНО нужна оптимизация нашего технопарка. Железо, железо в которое было вбухано не мало средств и которое нужно отбивать. Которое пожирает арендо-места и жрет электричество. Что если включить энтузиазм и захотеть расшириться. Накинуть еще с десяток роботов, которые гоняются в демо режиме. Или делать дублеров то вообще подбив смету становится ясно, что мы тупо работаем на это железо. Т.е. абсолютно смысл во всем теряется.
А так как новые идеи торговых роботов рождаются со скоростью мысли, то прогон и тесты их в реальном времени начинают реально отнимать дорогие ресурсы и пожирать реальные деньги. В общем Шеф мягко намекнул, а скорее заявил прямо, что к новому году нам надо предложить решение о переезде действующей системы на более выгодную.
Под действующей системой мы понимаем следующий зоопарк:
Когда встал вопрос о том, что надо еще расширяться, то уже все смотрели на это все без особого энтузиазма. Никто не хотел тратить больше денег, никто не хотел платить за очередное арендо-место и электричество. Как в том мультике, — «чеето зря мы его кормим...» Поэтому идею Шева поддержали все! Итак начнем.
Делаем быстрый анализ того что имеем, возможные пожелания и приводим решение.
Что есть:
— Сервер управляющий роботами с бесперебойным электричеством и интернетом на пять часов.
— Сервер статистики роботов с бесперебойным электричеством и интернетом на пять часов.
— В режиме онлайн трудится 5-7 машин-роботов c бесперебойным электричеством и интернетом на пять часов.
— В режиме онлайн тестируется 3 машины c бесперебойным электричеством и интернетом на 30 минут.
— Машины роботы работают под Windows
— Сервера под Linux
Вот такой вот зоопарк.
Что хотим:
— Иметь теже ресурсы за в разы меньшие деньги.
— Снизить энергопотребление не потеряв в производительности.
— Снизить площадь технопарка не потеряв в рабочих единицах.
— Сократить использование платного софта ;) мсдый прывэт.
— Иметь возможность быстрой и дешевой масштабируемости.
Итак, решение:
Анализ показал, что наши роботы, сами по себе не такие уж и прожорливые к ресурсам машин. На одной машине у нас крутится по 4 робота. Посмотрев среднюю конфигурацию наших машин мы получили минимальные требования на робота:
— 500МГц тактовой частоты процессора.
— 100-200МБ оперативной памяти.
— 100-200МБ места на жестком диске.
Сразу же появилось желание запихать все в виртуалку! Быстро, просто и можно сказать дешего. И вроде с масштабируемостью все хорошо, и то и это. А потом кто то из нас сказал — «Ребята, ну это же виртуалка.». И как не странно, этим было все сказано. Выход из строя любого элемента ложил сразу весь пул. Да и надо признаться, пробовали мы нечто подобное уже в самом начале… В общем вариант отвергли. И тут один из нас предложил, а давайте пересядем на микроконтроллеры?
Тут кто то подхватил, что есть же одноплатные компы уже давно, и вроде работают не плохо. Производительность вроде как должна уложиться в наши запросы, энергопотребление у них минимально. Цена, цену надо узнать.
Загуглили, изучили вопрос и вот оно решение!
Raspberry Pi 2 Model B
- A 900MHz quad-core ARM Cortex-A7 CPU
- 1GB RAM
- Linux OS
- 4 USB ports
- 40 GPIO pins
- Full HDMI port
- Ethernet port
- Combined 3.5mm audio jack and composite video
- Camera interface (CSI)
- Display interface (DSI)
- Micro SD card slot
- VideoCore IV 3D graphics core
Оооо, счастью нет придела. Этот малыш, вернее малышка не намного уступает по производительности нашим атомам. А питание у нее всего 5Вольт. ПЯТЬ ВОЛЬТ! Получается, что на ней мы сможем так же гонять по четыре робота. Т.е. с десяток таких плат полностью заменят наши гробы. Вот это поворот!
Потом кто то прейдя в себя говорит, -«А у нас же роботы на винде». Твою же м… Гуглим, нет винду естественно не воткнешь на них. Армы всетаки, другая архитектура. Да и ну ее нафиг, мы же хотели сократить платное ПО, вот и давайте перепишем всех роботов под линуху? А давайте! Прикинули, псчитали сколько уйдет времени, какая должна быть архитектура ПО. Да, все реально, никаких очевидных причин это не сделать нет. Решено. В качестве базовых рабочих лошадок будут использоваться эти «малинки». Ось будет Linux, по четыре робота на машину.
Давайте по пунктам:
— Иметь теже ресурсы за в разы меньшие деньги. — РЕШЕНИЕ НАЙДЕНО
Одна малинка по производительности почти такая же как наши системники на атомах.
— Снизить энергопотребление не потеряв в производительности. — РЕШЕНИЕ НАЙДЕНО
Малинка потребляет, блин даже не будем считать… 5Вольт, мы досих пор в шоке. Любая зарядка от сотвого ее запитает.
— Снизить площадь технопарка не потеряв в рабочих единицах. — РЕШЕНИЕ НАЙДЕНО
Да, это решено, с ее миниатюрными габаритами останется придумать как их разместить. В 10 раз больший технопарк может уместиться на одном рабочем столе!
— Сократить использование платного софта ;) мсдый прывэт. — РЕШЕНИЕ НАЙДЕНО
Мы переезжаем на Linux!
— Иметь возможность быстрой и дешевой масштабируемости. — РЕШЕНИЕ НАЙДЕНО
Ну тут по моему очевидно все. Втыкай новую малинку в хаб, заливай софт и вперед.
Примерно вот так нам сейчас видится модернизация нашего технопарка. С нового года начнем. Осталось обдумать как это все упаковать красиво, что бы не получилось как с текущим, как будто человек паук на ежа наступил.
В общем если вам интересно чем все это закончится и в какие средства выльется, а так же хватит ли этих мощностей, то ставьте плюсы, будем писать.
Так же предложения и конструктивную критику по теме приветствуем.
Вот вам для примера 64 машины на одном рабочем столе )
— Иметь теже ресурсы за в разы меньшие деньги.» — т.е. эксплуатация в прошлом этих железяк денег не принесла и решили отыграться на железяках сделав их дешевле? Хм, я бы предпочёл сделать вас дешевле, а железяку бы не трогал. Она хорошая, она в умелых руках камаз гружённый деньгами к дому вызывает:)
Там на кортексах уже сервера есть веб.
И надежнее так ка дублируется.
А вот на чем у них роботы.
И где они возьмут исходники библиоткек коннекторов к бирже-плазе для кросскомпиляции под арм это вопрос.
Если у них робот сможет работать на арм подключаясь к брокеру то его можно на планшет поставить.
Один обойдётся 7-8 штук
Voyo mini PC
«В общем Шеф мягко намекнул, а скорее заявил прямо, что к новому году нам надо предложить решение о переезде действующей системы на более выгодную.»
«А потом ты проснулся обоссанный на паре» ???????
\
Чувак, ты придумал статью про то, какой ты алготрейдер, чтобы похвалиться тем, что узнал про мини-компьютеры?
Первая картинка легко ищется в гугле:
Ну и непонятно, что у вас там за роботы, которым нужно 500 МГц процессор, ты когда придумываешь — уж говори сразу, что нужно 4 ядра и SSD )))))))
Фарт-лаб — страна сказочников )))
Одна Две десктопные машины (для резервирования) все это перекроют, денег, подозреваю, стоить столько же будет, надёжности (с учётом коммутации) больше.
Но более всего удивляет подход «сэкономим на железе — перепишем роботов заново». Это серьёзно?? комп вместе с виндой стоит меньше месячной (месячной!) з/п программиста. Даже с серверной виндой, пожалуй, хоть она и не особо тут нужна, как мне видится.
На программистах сэкономить — выйдет явно эффективне. Например.
По поводу ЗП программистов, они, эти программисты как раз простаивают сейчас. Вот будет чем заняться.
Лучше две средней тачки и кластер с виртуалками.
2) Разве тут основные затраты это не зряплата работников? Может их подсократить?
3) Если всех роботов посадить в один процесс, разве не получится мощный симбиоз и соответственно экономия? Ну там положим бары будет строить не каждый процесс отдельно, а всего один. У меня штук 30 независимых алгоритмов работают внутри одного процесса. Вместе с квиком и виндой это раньше работало на 512Мб ОЗУ. Сейчас 1Гб за те же деньги, так вобще шоколад. И проц не жрется (может т.к. не HFT).
Так что в целом пост выглядит странновато.
В свое время мы тоже гоняли все на одной и двух машинах, сервера стояли Фуджитсу с ксеонами. Но потом как то начали штамповать роботов с такой скорастью, что нужно было разбивать их из одного процесса. Т.е. надо тебе ввести в строй очередного робота, что пересобирать заново весь пул? Поэтому решили что каждый робот будет работать сам по себе.
По поводу баров, так и есть, роботы у нас ничего не строят, а берут все что им нужно готовое с головной машины сервера. Т.е. Робот в нашем понимании это «тупо» алгоритм торговли. Все остальное сидит на сервере.
Выглядит это так. Придумали мы новый алгоритм, на уже шаблонизированных исходниках закодили его за 10 минут, еще за 20 минут проверили и закинули на свободную машину работать.
Эта схема нам очень нравится и устраивает, хотим ее сохранить.
Но тут вы правы в одном, что онда мощная машина потянет штук 10 наших роботов точно, может и больше. Да и скорее всего больше. Но встает небольшой вопрос надежности. При сбое этой машины падает сразу толпа роботов. Держать ее дублера можно, но как по нам, так лучше иметь машины по 2500р на которой от двух до шести роботов может крутиться, и менять их в случае выхода из строя методом замены картриджа в древней приставке. Сейчас весь мир идет к этим модульным компам.
2) Зачем делаеть инфраструктуру надежнее, чем не надежная (факт) биржа? ;).
При позиционной торговле это вобще не критично. У меня если даже роботы полежат пол-дня то особо ничего не изменится. А если дольше, то закрою все позиции вручную и свободен. Куда важнее надежность софта, например чтобы алгоритм не сбойнул в запил и не накормил брокера.
Покупаю дешевый VDS и он явно надежнее чем биржа ;)
Мы тоже используем VDS, не такие уж они и дешевые, если брать винду.
Подскажите, где берете дешевый?
ТО, ЧТО ВЫ СОБРАЛИ РЕАЛЬНО НЕАДЕКВАТНО!!!
И двигаться вы собираетесь в еще более неадекватную степь!