Idle&&VirtualMachine

Team Fortress 2 - современный командный шутер с уникальной системой выбора класса игрока, от Пиромана с огнеметом до тяжеловооруженного штурмовика-пулеметчика.
Ответить
Сообщение
Автор
Tester30
Нович0к
Нович0к
Сообщения: 8
Зарегистрирован: 19.12.2012
Поблагодарили: 3 раза

#1 Сообщение 19.12.2012, 18:52

Вообщем хочу завести идл-сервер и несколько идлинг-аккаунтов.
Первый вариант был такой :

Код: Выделить всё

-applaunch 440 -heapsize 131072 -textmode -window -dxlevel 81 -console -noshader -nosound -low -novid -nopreload -replay_enable 0 -nohltv -tvdisable -nojoy -width 640 -height 480 +sv_password %password%-sw -port 29015 +sv_lan 0 +map %mapname% +maxplayers 2 +mp_idledealmethod 0
"немного" доработанные атрибуты для запуска из википедии тф2. Размножив(linked clone) настроенную ВинХП(всего 45 метров на старте) удалось добиться стабильной работы 10 клиентов на VMware Player(версии то ли 5 то ли 6+), 1 веб-сервера на убунту сервер плюс базовой работы 7-хоста(можно было, например, послушать музыку и посёрфить в сети. Фильмы в 720р уже подтормаживали - в основном было занято 80% из 6 гигов ОЗУ и 70% ЦПУ "фоном", глючило из за диска, но в целом всё было хорошо). Следующим пунктом плана было бы поднятие постоянного сервера(благо есть простая инструкция) - что позволило бы несколько освободить ЦП и ОЗУ а так же настройка конфигов, для подключения к этому серверу сразу после старта ТФ2.
НО! Был глобальный минус - невозможно отследить когда отвалиться сеть, а авто-реконнекта в textmode нет. А для того что бы вывести из фона приложение - приходилось запускать его заново, что требовало ресурсов, кои и так были заняты - соотвественно всё это кушало время. В принципе эта проблема решается довольно легко - достаточно настроить расписание и включить в него, допустим, 20% времени на случай "отключения" интернета и ввести короткие интервалы(2-3 часа) между рестартами.
Так же у меня на машине 3 сетевых интерфейса - один принадлежит "физически" веб-серверу, другой - выход хоста в интернет, третий - локалка между домашним компом и ноутбуком. В итоге, при подключении локалки(что бы быстренько слить какой нибудь файлик) НАТ ВМвари вереключался на последний доступный. Как решить эту проблему я так и не нашёл, и решил перейти на VirtualBox.

Успешно поставив ХП на виртуал бокс, а так же поставив стим и скопировав туда файлы ТФ2 и попытался запустить. Болт сказала мне система - и дело оказалось в 3д ускорении - виртуал бокс его, в отличии от вмвара - не поддерживал сразу. А эксперементальная поддержка(что из сейф мода запускается) - работает для полноэкранной ТФ2 но вываливает кучу ошибок в -textmode(ругаясь в основном на wine, что то там про обработку графики и неотвеченные запросы).

Собственно сейчас рассматриваю вариант сменить хостовую ОС на убунту, запустить на ней и виртуальный сервер, и сервер ТФ2, и поднять на виртуал десктопах нужное количество "виртуальных тф2". Это стало возможно благодаря бета-версии steam for linux. Плюсы - минимальные затраты ресурсов, простота. Минусы - я фактически я теряю возможность играть в хорошие игры, например Natural Selection 2 или DayZ(как мод, так и, думаю, standalone), т.к через Wine они будут работать хуже. Минус решается довольно просто - нужно тупо купить новое железо, а текущий комп оставить как сервер. Но на новый комп денег пока нет.

Собственно случайно сюда попал, но возможно мне посоветуют :
1) Конфиг-файл который заходит на определённый сервер(на сколько я понял он должен быть VAC-secure и иметь доступ к серверам стима что бы вещи падали), с паролем, выбирает рандомную сторону и рандомный класс и входит в игру(возможно - атакует вокруг себя и со временем умирает).
2) Гипервизор для виртуализации нормального нат(всё же хочу разделить веб-сервер и идл-машины) и 3д-ускорения. Имхо, идеально - убунту с сервером тф2, крон со скриптом на жонглирование клиентов и виртуальные десктопы, поддерживающие клиентов(идеальный вариант - тогда нагрузку можно будет распределить на "простой" компьютера и, на сколько я знаю - виртуальные десктопы в убунту ещё и хорошо работают вместе, в плане использования кеша/страниц памяти/вычислительных мощностей и прочего.).
3) Хорошо бы ещё и фидбек иметь - например выгрузку данных(выпали такие то вещи, тогда то, клиент такой то отпал по расписанию или просто отвалился) в лог(лог потом можно будет читать на сайте, например. Или в csv), падении интернета/связи со стимом у сервера, авто-реконнект сервера, авто-реконнект клиентов...

Вообщем что бы можно было запустить, настроить раз - а потом через месяц-другой собрать вещи, фактически - без каких либо вложений моего времени и без дележа ресурсов(в день около 15 часов простоя - непорядок) между ботами и реальными приложениями.

Если найдётся человек который понимает о чём я - пусть пишет на мыло([email protected]), я думаю мы сможем друг другу помочь.
ЗЫ так же смотрю в сторону других продуктов, например паралельс, говорят у них и 3д хорош, и ресурсов жрут меньше, но всё же я думаю что тот же убунту десктоп обеспечит наименьшее потребление ресурсов да и больший контроль.
ЗЫЫ если найдуться гуру ВМваре - может они посоветуют как сделать так, что бы нат не отваливался каждый раз когда шнурок в ноут засовываешь.
ЗЫЫЫ такие трудности нужны для выполнения всего 2 условий : лицензионный стим и лицензионная тф2. Во всех других случаях вещи изымаются, аккаунт баниться, и идлить будет бессмысленно.
Последний раз редактировалось Tester30 20.12.2012, 14:49, всего редактировалось 1 раз.

Аватара пользователя
Silver One
Майор
Майор
Сообщения: 843
Зарегистрирован: 17.12.2009
Откуда: Челябинск
Благодарил (а): 1 раз
Поблагодарили: 3 раза
Контактная информация:

#2 Сообщение 19.12.2012, 21:56

Зачем так усложнять? Зачем тебе виртуальные машины, если есть Sandboxie, который позволит запустить тебе 15+ клиентов без особых лагов. Виртуальные машины лютобешенно жрут ОЗУ и ЦПУ. Делай все из под обычной XP, запускай сколько угодно песочниц, и на этой же машине поднимай сервер.
А вы пробовали выключить и снова включить?©
Изображение

Tester30
Нович0к
Нович0к
Сообщения: 8
Зарегистрирован: 19.12.2012
Поблагодарили: 3 раза

#3 Сообщение 19.12.2012, 22:35

люто-бешено жрёт стим(~124 метра) и тф2 в ТЕКСТОВОМ моде(350+). Права как то менять их мы не имеем, а на копию винды - 45 метров, расходы на саму виртуальную машину - копеечны, особенно если учитывать что современные машины сокращают расход ОЗУ и ЦПУ за счёт похожести данных у эмулируемых машин. Единственное что - сдаёт винт при рандомном чтении, но оно и понятно.

Ну и выбор - использовать сандибокс или ту же убунту с виртуальными десктопами. Мне почему то кажеться что виртуальные десктопы в данном случае априори будут лучше. Да и крон-скрипты будут лучше чем планировщик, и уж точно лучше чем прога, куда можно ввести свой пароль от стима.

Вопрос скорее в том как это всё дело автоматизировать - самый большой напряг был в том что мне приходилось раз в две недели запускать по 15 машин на 20 часов и надеяться что все проидлятся. Сейчас я хочу что бы сервер ТФ2 писал логи в какой либо файл, а я потом бы его читал и ресетал те машины, которые "неожиданно" вышли. Я правда не силён в никсах, но думаю man мне поможет.
К тому же можно будет сделать много вкусных фич, если связать это всё на сайте.
ЗЫ а песочница, на сколько я понял - ничем не лучше обыкновенного "Запуска от имени такого то пользователя". ВинХП позволяля таким макаром открывать сколько угодно приложений от левого профиля с галкой "не трогать ничё", например - при этом обходились почти все проверки на копии приложения.
ЗЫЫ я думаю если поднять один сервер и туда коннектиться - можно будет сократить расходы ОЗУ до 200-250 за клиента

Вообщем выходные потрачу на то что бы поставить убунту с вирт.десктопами, попробую запускать тф2, если всё будет в шоколаде - подниму тф2 сервер и веб сервер, законнекчу клиентов, посмотрю - падают ли шмотки вообще.

Потом уже будет та область в которой я шарю мало - крон скрипты, возможно - ввод пароля в форму стима(можно даже стим гвард будет обходить, если правильно настроить мейлер), конфиги для "игры"(хотя, по большому счёту - проще это сделать настройкой сервера, если необходимо)

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

Аватара пользователя
Sidex44
Лейтенант
Лейтенант
Сообщения: 102
Зарегистрирован: 03.01.2012
Благодарил (а): 2 раза
Контактная информация:

#4 Сообщение 20.12.2012, 02:02

Tester30, прочитал все твои размышления, вполне неплохо, некоторые моменты не понял, но это не важно. Главное, что суть уловил. Так вот, у меня была похожая мысль,еще полгода назад, об уменьшении потребления ресурсов на виртуальной машине и запуск хотя бы 5-10 аккаунтов на ней без сильного ощущения лагов. Я искал единомышленников, но так и не нашел, у меня ничего не получилось с оптимизацией идла, так как уже 3 запущенные игры сильно тормозили мой ПК, который по-моему не слабоват (AMD Athlon 64x2 5400+, 4гб ОЗУ) и я решил уйти из этого бизнеса. Вот сейчас подумываю вернуться, но уже используя какой-то другой метод. Насчет линукса ты подкинул мне хорошую идейку, надо будет попробовать, интересно будет ли работать скрипт Ротатора от Mad.Eagle через вайн. Еще придумал такой вариант: поставить урезанную ХР винду на виртуальную машину с 1 гб ОЗУ, обычно такая винда кушает 50 мб оперы, потом попробывать запускать 5 аккаунтов поочередно и пресовать их потребляемую память через оптимизаторы памяти, а сервер запустить на основной ОС.
Возможно последняя идея тебе покажется глупой, но я не так прошарен во всех делай связанных с ос, программированием и прочим, мне просто интересно все это и трудно понять.

Tester30
Нович0к
Нович0к
Сообщения: 8
Зарегистрирован: 19.12.2012
Поблагодарили: 3 раза

#5 Сообщение 20.12.2012, 14:52

Написал в форму обратной связи Mad.Eagl'у, они как раз в открытой ветке обсуждают возможность перехода под линь, и в принципе мы бы могли помочь друг-другу.

Так что если кто есть на их форуме, или знает как гарантированно связаться с этим человеком - пишите на мыло [email protected]
ЗЫ на 4 гигах можно будет запустить ~5-6 вирт машин, 7 уже скорее всего будут тормозить - способом через WinXP, linked clone и создание собственного "локального" сервера для каждой машины. Я думаю если сделать через хоста-убунту с тф2 сервером и десктопами и прогу, автоматический скрипт на подключение клиенов - влезет ~8(смотря от того, на сколько хорошо оптимизированы виртуал десктопы).
Ещё немного мыслей
В общем и целом ЕСЛИ получиться собрать "с миру по нитке" то в идеале я вижу примерно следующее :
1) Убунту live flash. Понадобиться большая флешка, скорее всего на 16 или на 32 гига с USB 3.0(хотя и 2.0 будет шустрее чем винт на 7200 рпм). Стоит примерно 25$, отличный вариант "SSD" диска - на выходе исключаем узкое место - теперь узким местом будет ОЗУ либо ЦПУ, либо - весь комп сразу. Потому что HDD на 7200 оборотов в рандомном чтении выдаёт по ~8 мегабайт поток, в то время как обычная флешка выдаст 30. Ну и для сохранения ОЗУ и ЦПУ можно будет не эмулировать машину с диском-флешкой а тупо с флешки загрузиться. Плюсы - удобно, подходит для абсолютно любых машин с поддержкой 2.0 и вообще. Ну а если не хочется покупать флешку - можно будет и без неё.
2) Веб-сервер годная идея. В том числе можно будет использовать "централизованный"(вы только представьте какие будут возможности при такой схеме), и даже рулить из веб-сервера своей машинкой вручную, при необходимости. Но - нужно оставить возможность использовать локально(развернуть веб-морду(если есть сервер) или поднять целый сервер), заходя из какого нибудь teamviewer что бы через localhost рулить&наблюдать а так же - чисто offline, без веб-сервера(для экономии), но с автоматической ротацией(мб и поддержкой подключения). Сюда же входит ещё много мелких фич, перечислять долго, но в целом - будет действительно _удобный_ сервис.

Tester30
Нович0к
Нович0к
Сообщения: 8
Зарегистрирован: 19.12.2012
Поблагодарили: 3 раза

#6 Сообщение 24.12.2012, 22:38

Вообщем делюсь новостями с фронтов.
помоему я попал "в струю":
Поддержка OpenGL для линуха в VMWARE 9.1, плюс куча плюшек для виртуальных десктопов внутри хостевой ОС.
плюс, если всё же не выгорит с убунтой - в 9 версии добавили что то типа планировщика. Плюс помоему они наконец то добавили настройку на то, к какому интерфейсу биндиться NAT'у(хотя я могу ошибаться, но мне в любом случае это уже не пригодиться).
Ставить собираюсь Ubuntu 12.04(как Stable).
Изначальные параметры :
32 гига диска(что бы влезло на флешку).
3 гига ОЗУ.
2 ядра(от q6600) по 2 потока.
Хочу:
полноценный веб-сервер с ftp, ispconfig.
ТФ2 приват сервер.
Возможность включить как минимум 10 клиентов тф2, как максимум - 15.
Автоматизировать заход клиентов на сервер.
Создать удобный сервис по отслеживанию состояний ботов а так же возможностью ими манипулировать через веб-морду.
(сюда потом добавлю всё что за сегодня сделаю).
Сегодня дальше установки воркстейшена и на него убунту дело не дошло. Зато уже собственно говоря есть с чего начинать.

Senio
Майор
Майор
Сообщения: 523
Зарегистрирован: 05.09.2011
Поблагодарили: 12 раз
Контактная информация:

#7 Сообщение 25.12.2012, 13:52

А теперь в двух словах обьясни, чем виртуальная машина или ротатор лучше обычного идла?
Можно запустить больше 32х аккаунтов? Если нет, то вся твоя затея это трата времени.

Tester30
Нович0к
Нович0к
Сообщения: 8
Зарегистрирован: 19.12.2012
Поблагодарили: 3 раза

#8 Сообщение 26.12.2012, 02:31

Senio писал(а):А теперь в двух словах обьясни, чем виртуальная машина или ротатор лучше обычного идла?
Можно запустить больше 32х аккаунтов? Если нет, то вся твоя затея это трата времени.
"Немного лирики"
По минимуму нам нужно(для "полной" версии) :
1) Веб-сервер. ~200 метров.
2) ТФ2 сервер. ~200 метров.
3) ОС. ~100 метров.
4) Клиент ТФ2+Стим = ~400 метров.
Т.е минимум который необходим для одного клиента - гиг ОЗУ, как минимум 1 процессор на 2 потока на 2.4 Ггц(субъективно) и любая видеокарта(хотя чем она будет лучше - тем быстрее будет всё загружаться - т.к даже в текстовой версии, судя по всему - грузиться и обрабатывается графика). По минимуму - нужно хотя бы 512 метров+быстрый своп.
Теперь считаем часы - в неделю нужно 1 клиенту 10 часов, в неделе всего 168 часов, т.е можно запустить на минимальной конфигурации по максимуму 17 клиентов(с ротатором на 1 клиента). Соответсвенно запуская два клиента, учитывая оптимизацию и быстрый своп, на 1 гиге ОЗУ - можно будет запустить до 34 клиентов с полным идлом. Добавив ещё немного ресурсов(допустим, полтора гига) - можно будет запускать уже по 4 клиента за раз, а это уже 4*17 всего клиентов с полным идлом. Почему 4 а не 3? А потому что оптимизация. Чем больше клиентов запускаем - тем дешевле нам каждый последующий клиент. На 2 гигах ОЗУ уже можно будет запустить около 7 клиентов. На 3 гигах - уже как минимум 10, но я думаю если разместить всё на флешке - влезет и 15 одновременно, за счёт использования быстрого свопа и оптимизации работы "виртуальных машин" в убунту.
Теоретически я рассчитываю получить идл от одной "средней" машинки на 170~255 аккаунтов. Фактически, с использованием только времени простоя компьютера(15 часов) и резервированием части ресурсов на веб-сервер(максимальная нагрузка - 60-75%) я смогу обслуживать только 8 аккаунтов в режиме одного аккаунта(в неделю) и соотвественно около 80(пусть будет 50 - с учётом отсуствия света, интернета и связи со стимом) клиентов в неделю.

Пусть это будет даже 30 аккаунтов в неделю. Мне-то достаточно 15. Мне главное - автоматизация процесса, удобный сервис отслеживания и удалённое управление. В целом - мне даже не особо важно как это технически будет реализовано, но внятных реализаций, отвечающих моим требованиям - нет.

PS при установке убунту как хостовой системы на машинку с 6 гигами озу, ССД диском(узкое место, не позволяющее разогнаться больше 10-11 машин) и процом не ниже q6600 можно будет запустить штук 15 в режиме "реального времени". Вот умножь это число на эффект масштаба - получишь 22 машинки при удешевлении на 50%. При этом я уверен что 85% данных, которые обрабатываются клиентами-копиями - суть те же страницы памяти, те же обращения к процессору, те же данные от сервера. Соответственно получим что то около 25-28 копий машин на уже далеко не передовом ПК. Дальше, скорее всего - не позволит двигаться ЦП, т.к каждое приложение будет кушать хотя бы по 5%, а для того что бы не получать таймаут нужно хотя бы 3,5%

Добавлено спустя 8 часов 21 минуту 7 секунд:
С убунту всё слегка посложнее чем просто поставить&пользоваться, на данный момент закачиваю тф2 для линуха.
Столкнулся с проблемой - KVM не запуститься в виртуальной машине, т.к виртуализации нет. Хотя, я так прикинул - виртуальная машина в линухе ваще и совсем не нужна, т.к можно ведь использовать одни и те же файлы, но под разными пользователями. Не известно как будут обрабатываться такие запросы, но вообщем нужно копать в эту сторону.

Tester30
Нович0к
Нович0к
Сообщения: 8
Зарегистрирован: 19.12.2012
Поблагодарили: 3 раза

#9 Сообщение 02.01.2013, 18:51

Изображение
Видимо сотрудничать с обитателями форума "ротатора" не получиться.

Аватара пользователя
wormster
Нович0к
Нович0к
Сообщения: 14
Зарегистрирован: 04.01.2010
Благодарил (а): 5 раз
Поблагодарили: 12 раз
Контактная информация:

#10 Сообщение 08.01.2013, 16:39

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

Ответить