Войти или зарегистрироваться
  • Вы находитесь в сообществе Rubukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на различные языки плагины наших коллег из других стран.

Туториал Проверяем свой сервер,машину на мощь. (Stress-test)

Полезный туториал/тема?

  • Да

    29 голосов 87,9%
  • Нет

    4 голосов 12,1%

Nightfear

Старожил
Пользователь
Баллы
103
Имя в Minecraft
nightfear
stress-test.jpg
Уже больше чем 2 года меня беспокоит тема о стресс-тесте сервера. Как можно узнать запредельные и придельные возможности сервера и каким образом это можно измерять?!
Много постов по типу:
  • " Сколько слотов открывать с таким-то и таким-то компом или хостингом? "
  • " Сколько потянет слотов хостинг? "
  • и т.п.
Я решил создать этот туториал-опрос для того, что бы сравнивать значения и показатели серверов и окончательно понять статистику нагрузки сервера. Предлагаю делать обозревание своего сервера в плане его работоспособности и вывешивать статистику от которой можно будет оттолкнутся и найти ответы на множество вопросов.

Этот туториал будет обновляться, как только Вы будете присылать новые способы тестов машины и сервера и если Вы нашли какой-то новый и рациональный способ тестирования машины и сервера пишите - мы вывесим его что бы и другие могли протестировать.

Ниже будут указаны различные способы тестирования серверов, но нельзя оперяться на полученные значения , т.к. все измерения проводятся с погрешность. По этому цифры которые будут получены в следствии тестов - будут приблизительными к яви.


Для качественных результатов я прошу Вас делать всё четко по инструкции(Тесты будут проходить , в основном, на чистых серверах без плагинов и на различных ядрах).​

На данный момент поисков есть такие альтернативы тестирования машины и сервера :


1) Тестирование ботами, которые летают по карте.​
Работает только на версии 1.5.2 сервера.​
(буду ждать апдейта от Девелопера)​
​
​
Суть стресс-теста : увидеть нагрузку зависимую от кол-ва игроков зашедших на сервер.

Что бы запустить ботов которые будут заходить к Вам на сервер и хаотично летать нужно:

Настроить сервер для теста:​
  1. Загрузить чистый сервер minecraft-а.
  2. Запустить(дать возможность погрузится настройкам).
  3. В конфиге сервера(bukkit.yml,server.properties) поставить connection-throttle: 0 и allow-flight=true, online-mode=false, max-players=500 (например, если вы думаете, что ваш сервер 500 ботов выдержит).
С настройкой серверной части закончили.
Настроить клиентскую часть:​
Для работы *клиент-скрипта* вам понадобится Pyton и еще пару скриптовых штук.​
Качаем и устанавливаем себе:
  1. Python.
  2. Pycrypto.
Далее качаем саму бот-систему, которую можно частично назвать *клиентом*:
Распаковываем и кладем куда-то поближе к корневому каталогу(что-то на подобие С:\bot\, или как у меня C:\pyCraft-bots\).
Запускаем бот-систему​
  1. Пуск --> Выполнить --> cmd . *открытие консоли
  2. Идем в папочку с бот-системой (C:\Users\Администратор> cd \pyCraft-bots\ ).
  3. Вводим такое : *start.py -x -b 500 -s IP-Вашего_сервера 25565 -u nickname*
  4. Enter.
  5. Profit !!!11! 500 ботов начнут подключатся к серверу.
Тут же консоль начнет бесится и выдавать кучу всякого хлама(как я понимаю такого быть не должно, но оно работает и черт с ним. Я не имел опыта работы с Питоном, тем более не я писал этот скрипт, по-этому закинул дело с ошибками).
Кто переведет и сделат гайд как для ОС Windows - Буду очень благодарен.​
Сейчас на прописывание аналогичного дейсвия для Linux нету времени.​
P.S. Хотя для трушных линукс-дрочеров то что написано ниже не проблема. Всё понятно и так.​
​
​
If you're on linux then installing is a breeze, simply install the following (example on an aptitude based system)
apt-get install python-pip
apt-get install build-essential
apt-get install python-dev
and then run in the directory you extracted/cloned the repo to (see below)
pip install -r requirements.txt
Once you've got everything installed, clone the git repository and checkout to the "bots" branch. Alternatively for those who aren't git savvy, simply extract this .zip archive somewherehttps://github.com/ammaraskar/pyCraft/archive/bots.zip
Now, open the command line/terminal and change directory to the place where you saved the repo. Now run the following command python start.py -x -b <bot count>

Do note that these bots can only be used in offline mode, that's what the parameter -x does and -b naturally represents the number of bots. These bots will fly around and hence assume that they have the appropriate permissions to do so. So make sure you allow them to fly!

Настоятельно прошу Вас оформлять комментарии и ответы с вашими результатами тестов по форме, которая написано специально для Вас , ниже.

Машина​
  1. VDS,VSP,Личный сервер(домашний).
  2. CPU.
  3. RAM.
  4. OS (Linux,debian,CentOS,WinServer).
Сервер​
​
  1. Ядро,версия(Craftbukkit, spigot, libigot, Bukkit and etc.)(1.5.2, 1.6.2 and etc.).
  2. Строка запуска сервера( .sh , .bin , .bat).
  3. Сколько ботов удалось запустить при средней загрузке сервера(когда CPU иногда или не на долго достигает отметки в 100% загруженности, т.е. 70-95% всех ядер).
  4. Сколько ботов удалось запустить при максимальной загрузке сервера(когда CPU постоянно на 100% загружен).
  5. Если есть возможность снимать на видео как сервер будет реагировать на такой поток ботов - буду только рад.


2) Тестирование взрывами ТНТ(динамита) на сервере.​
​
Суть стресс-теста: Узнать за какое время взорвется шар R=10 кубов динамита(~ 6056 кубов).
Настроить сервер для теста:​
  1. Загрузить чистый сервер minecraft-а.
  2. Запустить(дать возможность погрузится настройкам).
  3. Установить плагин WorldEdit, что бы выставить шар динамита радиусом 10 кубов.
С настройкой серверной части закончили.
Настроить клиентскую часть:​
  1. Заходим на сервер и делаем себя Администратором(/op).
  2. Используем команду *//sphere tnt 10* , после чего Вас поместит в центр шара. Выберетесь наружу.
  3. Возьмите зажигалку и секундомер.
  4. В то время как поджигаете - засекайте время.
  5. По окончанию всех взрывов(~ 6056 кубов ТНТ) остановите секундомер. Это время Вам и надо будет указать в форме для тестов.
Настоятельно прошу Вас оформлять комментарии и ответы с вашими результатами тестов по форме, которая написано специально для Вас , ниже.

Машина​
  1. VDS,VSP,Личный сервер(домашний).
  2. CPU.
  3. RAM.
  4. OS (Linux,debian,CentOS,WinServer).
Сервер​
​
  1. Ядро,версия(Craftbukkit, spigot, libigot, Bukkit and etc.)(1.5.2, 1.6.2 and etc.).
  2. Строка запуска сервера( .sh , .bin , .bat).
  3. Сколько понадобилось серверу, что бы взорвался весь динамит?
  4. Если есть возможность снимать на видео как сервер будет реагировать на такой поток взрыва динамита - буду только рад.
 
Тестирование ботами. ​
​
Машина
  1. Личный сервер(домашний). Поднята виртуалка через VMware
  2. AMD Phenom II X6 1045T (2,7 ГГц). Разогнан до 3,2
  3. RAM 16ГБ.
  4. OS Windows server 2008.
Сервер
  1. Spigot 1.5.2 RB.
  2. Строка запуска сервера
  3. 278 ботов - стабильная работа.
  4. 460 ботов - максимальное кол-во.
  5. Добавлено 2 видео.
300 ботов​
500 ботов​

Тестирование динамитом.​
  1. Spigot 1.6.2 DevBuild.
  2. -Xms1G -Xmx5G -server -d64 -Dfile.encoding=UTF-8 -XX:permSize=128m -XX:MaxPermSize=1024m -XX:+DisableExplicitGC -XX:+UseConcMarkSweepGC -XX:+UseParNewGC -XX:+UseNUMA -XX:+CMSParallelRemarkEnabled -XX:+UseAdaptiveGCBoundary -XX:-UseGCOverheadLimit -XX:+UseBiasedLocking -XX:SurvivorRatio=8 -XX:TargetSurvivorRatio=90 -XX:MaxTenuringThreshold=15 -XX:UseSSE=3 -XX:+UseFastAccessorMethods -XX:+UseStringCache -XX:+UseCompressedOops -XX:+OptimizeStringConcat -XX:+AggressiveOpts -jar craftbukkit.jar.
  3. На взрыв 6056 блоков динамита понадобилось 31.41 секунды.
  4. Видео добавлено. Оно тому и подтверждение.

 
Machine:
  1. Desktop
  2. AMD Phenom II X4 B55 (3.3 GHz) @3.31 GHz
  3. 4 GB x2
  4. Win 8 ('Bad Sectors' Edition)
Server:
  1. CraftBukkit 1.5.2 R-1.0 (Plugins (1): EssentialsLite)
  2. java -Xmx8G -jar craftbukkit.jar
  3. Bot Attack: 160 Players, ~13 TPS
  4. 6056 TNT = 56.32 Sec. (В учет шли ещё "пустые взрывы")
@Nightfear, готово :D
 
Итак. Сервер craftbukkit, 20k слотов, 2 гб рамы:
Фриз сервера при более 70 игроках + поедание всего тайминга процессора.

6056 блоков динамита взорвалось полностью за 56.32 сек.

AMD Phenom II X4 B55 3.3 GHz, 8 GB. 81.161.21.97

Можно я тебя еще поднапрягу чутка. Я вывесил свои результаты. Можешь сделать свои : по шаблону. Я хочу что бы в Теме было всё культурно и понятно. По-удаляй ранее сообщения.

Вот так:
Машина
  1. VDS,VSP,Личный сервер(домашний).
  2. CPU.
  3. RAM.
  4. OS (Linux,debian,CentOS,WinServer).
Сервер
  1. Ядро,версия(Craftbukkit, spigot, libigot, Bukkit and etc.)(1.5.2, 1.6.2 and etc.).
  2. Строка запуска сервера( .sh , .bin , .bat).
  3. Сколько ботов удалось запустить при средней загрузке сервера(когда CPU иногда или не на долго достигает отметки в 100% загруженности, т.е. 70-95% всех ядер).
  4. Сколько ботов удалось запустить при максимальной загрузке сервера(когда CPU постоянно на 100% загружен).
  5. Если есть возможность снимать на видео как сервер будет реагировать на такой поток ботов - буду только рад.
 
Машина
  1. *Секрет*
  2. *Секрет*
  3. RAM 2GB
  4. CentOS
Сервер
  1. Bukkit
  2. *Секрет*
Ботов впадлу настраивать, чуть позже допишу.
Видео тоже кину.

Динамит - 6056 блоков (Сфера 10) - 26.149 секунд.
Сервер не совсем чистый, стоит около 15 плагинов.

Надеюсь довести это время до 15 секунд.
Скину результаты.
 
Я провел не большой тест. Мне лень заполнять все формы:)
И так. 15000 ТНТ - за 22 сек+ около 30 плагинов, норм?
 
Машина
  1. *Секрет*
  2. *Секрет*
  3. RAM 2GB
  4. CentOS
Сервер

  1. Bukkit
  2. *Секрет*
Ботов впадлу настраивать, чуть позже допишу.

Видео тоже кину.

Динамит - 6056 блоков (Сфера 10) - 26.149 секунд.
Сервер не совсем чистый, стоит около 15 плагинов.

Надеюсь довести это время до 15 секунд.
Скину результаты.

Тогда твой результат не является конкурентным. Мы делаем статистику не по настройки сервера а по его работе. Мы сравниваем ядра, машины, сервера... По этому - то , что у тебя на сервере стоят плагины - говорит о том, что действительный результат без плагинов у тебя может быть и 50+ сек и 100.

А по-поводу секретов :
Секретничать глупо. Я не прошу никакой информации, какая могла бы выдать твой проект, или то, чего ты так бережешь. Всё что ты мог использовать в любом случаи есть в сети в той или иной конструкции.
Я сомневаюсь что ты дошел до такой вот штуки и на основании прочитаной фичи нашел выход и варианты для создания своего личного стартера. Скорее всего это чей-то модифицированный стартап, в который ты влил свою конфигу(хотя может быть всё что угодно, не хочу говорить точно).

Это можно сочесть за *наезд* , но прости. Я тут создаю тему для всех. Пытаюсь сделать статистику лучшего решения и если каждый будет относится так - то ничего толкового не выйдет.
Я провел не большой тест. Мне лень заполнять все формы:)
И так. 15000 ТНТ - за 22 сек+ около 30 плагинов, норм?

Вы вообще тему читаете???
Я вам через плагины и моды время взрыва динамита могу свести до 5 сек. НЕ В ЭТОМ СУТЬ!

Суть в тесте! И на основании множества различных тестов сделать вывод. Для этого и нужны *Заполненые формы*, что бы потом ВЫ могли держать нормальные сервера и не ныть, что они у вас тормозят или что-то подобное.
Я провел не большой тест. Мне лень заполнять все формы:)
И так. 15000 ТНТ - за 22 сек+ около 30 плагинов, норм?

Так что, если хочешь помочь общему делу - на 5 минут создай новую папочку и не ставь плагины. Вот и всё. Заполнение готовой формы - еще 5 минут.
Благодарность от меня - не вычислимая;)
 
Мы делаем статистику не по настройки сервера а по его работе. Мы сравниваем ядра, машины, сервера... По этому - то , что у тебя на сервере стоят плагины - говорит о том, что действительный результат без плагинов у тебя может быть и 50+ сек и 100.
Извини, я не разглашу не конфигов машины, ничего другого - проект коммерческий.
И любой достойный результат тут - будет так же скрыт, ибо комерсы не мамы терезы.
Мое ядро это дефолтный Bukkit оптимизированный уникально... своими руками...
Плагины - не касаются динамита и даже NoLagg у меня не стоит, стоит то что грузит...
WG... LWC...
Чистяк как ястреб полетел бы (по крайней мере на моем ядре)

Я знаю что мой пост смысла кроме "у меня 999секунд, я крут" не несет - я только хотел апнуть тебе тему.
Так как она мне интересна.

Возможно, сегодня вечером приду с работы и создам новую папочку ;)
Интересно ядрышко прогнать...
Суть в руках, а не в железе и сборке.
До этой штуки я в 15лет дошел... :\
Мне 21 год, я разбираюсь что делаю, а ты собираешь на меня какую то грязь про то что я чужие старты ворую.
Кончай это дерьмо.
 
Возможно оффтоп, но кто-нибудь может мне обьяснить строку запуска?

-Xms1G -Xmx5G -server -d64 -Dfile.encoding=UTF-8 -XX:permSize=128m -XX:MaxPermSize=1024m -XX:+DisableExplicitGC -XX:+UseConcMarkSweepGC -XX:+UseParNewGC -XX:+UseNUMA -XX:+CMSParallelRemarkEnabled -XX:+UseAdaptiveGCBoundary -XX:-UseGCOverheadLimit -XX:+UseBiasedLocking -XX:SurvivorRatio=8 -XX:TargetSurvivorRatio=90 -XX:MaxTenuringThreshold=15 -XX:UseSSE=3 -XX:+UseFastAccessorMethods -XX:+UseStringCache -XX:+UseCompressedOops -XX:+OptimizeStringConcat -XX:+AggressiveOpts -jar craftbukkit.jar.

У меня у самого всего там одна маленькая строка..
 
Возможно оффтоп, но кто-нибудь может мне обьяснить строку запуска?
У меня у самого всего там одна маленькая строка..

Она растет пропорционально бороде, не переживай.
А еще существуют секретные опции ускоряющие все в разы. Oracle их скрывает.
Только нотч и я знаем :D

По поводу твоей строки:

Куча дерьма :(
Половина строк -дефолтны сами по себе.
Плюс еще куча ошибок...
-XX:+UseConcMarkSweepGC и -XX:+UseAdaptiveGCBoundary вместе не работают.
AdaptiveGCBoundary ваще только в Parallel GC юзается :eek:

Хотя о чем я... Хочешь серв? Плати!)
6056 TNT = 56.32 Sec. (В учет шли ещё "пустые взрывы")

Я учитывал время с зажигания до "отлагивания"
Пустые взрывы могут быть еще некоторое время но они нам уже не показатель.
(Это остаточная анимация, вызванная сигналами сервера которые клиент не успел обработать в пиковой нагрузке... она ест чуть менее чем ничего и была обработанна сервом 100 лет назад до того как ты ее увидел)
 
Извини, я не разглашу не конфигов машины, ничего другого - проект коммерческий.
И любой достойный результат тут - будет так же скрыт, ибо комерсы не мамы терезы.
Мое ядро это дефолтный Bukkit оптимизированный уникально... своими руками...
Плагины - не касаются динамита и даже NoLagg у меня не стоит, стоит то что грузит...
WG... LWC...
Чистяк как ястреб полетел бы (по крайней мере на моем ядре)

Я знаю что мой пост смысла кроме "у меня 999секунд, я крут" не несет - я только хотел апнуть тебе тему.
Так как она мне интересна.

Возможно, сегодня вечером приду с работы и создам новую папочку ;)
Интересно ядрышко прогнать...
Суть в руках, а не в железе и сборке.

До этой штуки я в 15лет дошел... :\
Мне 21 год, я разбираюсь что делаю, а ты собираешь на меня какую то грязь про то что я чужие старты ворую.
Кончай это дерьмо.

Понял тебя. Догатки оказались ложными, спасибо за откровение. Я не стремлюсь иметь хороший сервер - я стремлюсь иметь хорошую машину. Я железячник.
 
Понял тебя. Догатки оказались ложными, спасибо за откровение. Я не стремлюсь иметь хороший сервер - я стремлюсь иметь хорошую машину. Я железячник.

Проще простого !
  1. 8gb+ DDR 3 строго с частотой 2800+ mhz (не меньше) ествественно, одинаковых и в слай и операционка 64...
  2. SSD не больше 100-200GB - Опять же, важна частота (скорость) а не размер, там только чанки лежат и все... а они по ху*не весят.
  3. Материнка с поддержкой всевозможных плюх мультиканальности пямять-проц (Не особо в этом шарю)
  4. ПРОЦ
Проц это отдельная песня.
Есть понятия: Физическое ядро, виртуальное ядро.
И с ними все понятно.
Нам нужны показатели 4.8+ на ядро, каким бы оно нибыло.
Но все это х*ня по сравнению с КЕШАМИ проца - они нужны самые-самые.

Теперь о ядрах.
Моды (благо) могут выгружатся в свой скромненький ядройд.
Можно 1 ядро, максимум 2 ядра... Остальное ху*та.
Лучше конечно 2 ядра по 1 вирту, то есть 2:2...

А так топовые сборки этих процов:
Intel Core 2 Duo Wolfdale (Именно он, у них Quad Pumping)
Intel Xeon MP Dunnington
 
Проще простого !
  1. 8gb+ DDR 3 строго с частотой 2800+ mhz (не меньше) ествественно, одинаковых и в слай и операционка 64...
  2. SSD не больше 100-200GB - Опять же, важна частота (скорость) а не размер, там только чанки лежат и все... а они по ху*не весят.
  3. Материнка с поддержкой всевозможных плюх мультиканальности пямять-проц (Не особо в этом шарю)
  4. ПРОЦ
Проц это отдельная песня.

Есть понятия: Физическое ядро, виртуальное ядро.
И с ними все понятно.
Нам нужны показатели 4.8+ на ядро, каким бы оно нибыло.
Но все это х*ня по сравнению с КЕШАМИ проца - они нужны самые-самые.

Теперь о ядрах.
Моды (благо) могут выгружатся в свой скромненький ядройд.
Можно 1 ядро, максимум 2 ядра... Остальное ху*та.
Лучше конечно 2 ядра по 1 вирту, то есть 2:2...

А так:
Intel Core 2 Duo Wolfdale (Именно он, у них Quad Pumping)
Intel Xeon MP Dunnington

да, я читал про важность Кеша 1-го уровня. Т.к. доступ к нему самый быстрый. достаточно будет 4 мб - и проц будет золотой.
 
да, я читал про важность Кеша 1-го уровня. Т.к. доступ к нему самый быстрый. достаточно будет 4 мб - и проц будет золотой.

Кеша первого уровня не может быть более 128кб :)
Да и важность их сразу отпадает поэтому, в такой то нагрузке...
Обращай внимание на L2-L3
24 метра L3 - Это топ.
Intel Xeon MP Beckton
В нем и L2 ништяк...
 
Я жаждю получить такой бюджетный проц. И 2-х сокетную мать.
Кеша первого уровня не может быть более 128кб :)
Да и важность их сразу отпадает поэтому, в такой то нагрузке...
Обращай внимание на L2-L3
24 метра L3 - Это топ.
Intel Xeon MP Beckton
В нем и L2 ништяк...

я говорю о том, что было бы идиально.
 
Я жаждю получить такой бюджетный проц. И 2-х сокетную мать.


я говорю о том, что было бы идиально.

Какая мать ему подойдет на твой взгляд?
Кеши у него полное говно на деле.
Объем кэша L1 64 Кб
Объем кэша L2 1024 Кб
Объем кэша L3 8192 Кб

Мечтать так с песней?
Объем кэша L1 48 Кб
Объем кэша L2 16384 Кб
Объем кэша L3 16384 Кб
Таких 2.
 
Так то оно - так. Мечтать можно о Е5, а еще до 2015 года подождать, интел выпустит проц с литографией 5нм и всё. А еще я поднял темку, почитай - по идее наше будущее.

Под проц(1155) - Материнка.
Какая мать ему подойдет на твой взгляд?
Кеши у него полное говно на деле.
Объем кэша L1 64 Кб
Объем кэша L2 1024 Кб
Объем кэша L3 8192 Кб

Мечтать так с песней?
Объем кэша L1 48 Кб
Объем кэша L2 16384 Кб
Объем кэша L3 16384 Кб
Таких 2.
Мда... Жирновато будет 2 цпу. 32 ядра, что с ними делать?)
 

Поделиться этой страницей

Назад
Верх