Перейти к содержимому


Фотография

Оптимизация и производительность сервера

оптимизация производительность лаги

  • Авторизуйтесь для ответа в теме
Сообщений в теме: 156

#21 dr_leks

dr_leks

    Участник

  • Пользователь
  • PipPip
  • 64 сообщений

Отправлено 27 Февраль 2016 - 20:09

у меня 17 слотов. Учитывая что у меня ещё hardmod который исправляю и обновляю.

Скрытый текст

Сервер работает без падения больше 3 дней в основном если нет обновлений от меня или от valve.

Учитывая похожие версии серверов. То скорее проблема в большом количестве вещей которые и грузят сервер. + кривые плагины



#22 Accelerator

Accelerator

    Пользователь

  • Пользователь
  • PipPipPip
  • 188 сообщений

Отправлено 27 Февраль 2016 - 20:36

Графики арены - не показатель.

Скрытый текст

 

Тут вообще мониторинг не видит изменения коэффициентов использования ресурсов :D Но это уж не моя вина)

Лаги в основном при постоянных онлайнах 18+ (спустя более 15 часов работы сервера). Лефта сильнее глючит при больших кол-вах слотов (спустя время в работе разумеется). Делаю рестарты раз в 15 часов. Никого это не напрягает) Как никак, но сервер 60 тикрейт :)


Сообщение отредактировал Accelerator: 27 Февраль 2016 - 20:40


#23 dr_leks

dr_leks

    Участник

  • Пользователь
  • PipPip
  • 64 сообщений

Отправлено 27 Февраль 2016 - 22:30

Графики арены - не показатель.

Скрытый текст

 

Тут вообще мониторинг не видит изменения коэффициентов использования ресурсов :D Но это уж не моя вина)

Лаги в основном при постоянных онлайнах 18+ (спустя более 15 часов работы сервера). Лефта сильнее глючит при больших кол-вах слотов (спустя время в работе разумеется). Делаю рестарты раз в 15 часов. Никого это не напрягает) Как никак, но сервер 60 тикрейт :)

Ну у меня тоже был такой баг) по этому слежу за лагами и работы сервера. там легче. Делать рестарт каждые 15 часов по моему глупо) так как в это время могут играть люди. Учитывая донат на сервере это минус для меня. пока-то. После обновления решится и это проблема.



#24 MixJay

MixJay

    Пользователь

  • Пользователь
  • PipPipPip
  • 194 сообщений

Отправлено 28 Февраль 2016 - 6:30

Сам тоже понял, что рестарты необходимы! Как то вообще перестал перегружать сервер, так через несколько дней начинает подлагивать. По плану рестарт сделал в утренние часы, когда на сервере остаются единицы. Лута на сервере не много, вряд ли он причастен к проседанию производительности.



#25 Accelerator

Accelerator

    Пользователь

  • Пользователь
  • PipPipPip
  • 188 сообщений

Отправлено 28 Февраль 2016 - 6:37

Чем больше слотов, тем меньше времени сервер способен работать без лагов. Тут хоть что делай, хоть как плагины улучшай, через время лаги все равно будут. Это уже проблемы движка игры. Рестарты никого не напрягают, т.к. они делаются только на первых картах кампаний в самом начале. 

Да и вообще. Любой сервер от Valve нуждается в переодических рестартах :) 


Сообщение отредактировал Accelerator: 28 Февраль 2016 - 6:38

  • MixJay это нравится

#26 MixJay

MixJay

    Пользователь

  • Пользователь
  • PipPipPip
  • 194 сообщений

Отправлено 13 Март 2016 - 10:04

............
Делаю рестарты раз в 15 часов....

Подскажите пожалуйста, правильно ли делать рестарт таким образом: ServerCommand("_restart"); ?



#27 Accelerator

Accelerator

    Пользователь

  • Пользователь
  • PipPipPip
  • 188 сообщений

Отправлено 13 Март 2016 - 12:33

Да. У самого точно такой же способ.


  • MixJay это нравится

#28 MixJay

MixJay

    Пользователь

  • Пользователь
  • PipPipPip
  • 194 сообщений

Отправлено 13 Март 2016 - 15:03

Да. У самого точно такой же способ.

Спасибо за ответ.

Замечал пару раз, что при рестарте сервер будто зацикливался. Приходилось вручную жать стоп, потом запускать.



#29 MixJay

MixJay

    Пользователь

  • Пользователь
  • PipPipPip
  • 194 сообщений

Отправлено 20 Март 2016 - 12:17

Сравнение скорости выполнения элементарных скриптов и функций.
Чистый сервер без плагинов. Два скрипта для сравнения в одном плагине, выполняемые по очереди в несколько повторов. Количество циклов от 5 млн. до 10 млрд.
Игра с частотой процессора не особо влияла на результаты в плане сравнения результатов.

1) Циклы FOR и WHILE одинаковые по скорости.
2) В функциях (int &client) работает быстрее (int client), т.к. используется ссылка на переменную.
3) if (client) и if (client > 0) и if (client >= 0) примерно одинаковые по скорости.
4) Если сравнивать #define строку и простую "строку" - скорость не меняется.
5) Конструкция if() {if() {...} } быстрее, чем if(() && () &&...){}
6) return bool и return int одинаковые по скорости, если в качестве int выступает малое значение (0,1,...)
7) Конструкция if() {if() {...} } оказалась значительно быстрее ,чем if() return; if() return; ...
8) Фигурные скобки { } не влияют на производительность.
9) Конструкция if() return; немного быстрее, чем if(){} if else(){}, else(){}
10) Конструкция switch case значительно быстрее if() return;
11) Сравнение строк: strcmp незначительно быстрее strNcmp
12) strcmp & true значительно быстрее strcmp & false
13) sStr = "123" быстрее Format(sStr, sizeof(sStr), "123");
14) Указание кол-ва символов в строке через sizeof(sStr) оказалось быстрее, чем указывать само число!
15) if (int1) почти одинаковы с if (int1[int2])
16) Удивило - StrContains быстрее, чем strcmp. Так еще и удобств больше! Буду перепроверять в разных условиях.
17) StrEqual и StrCompare медленее, чем strcmp. Обе они работают через "инклуд" strcmp.

* примерно одинаковые результаты - не менее 500 млн. циклов и разницей в тысячные доли секунды.

** результаты сравнений не привожу в цифрах, т.к. их очень много было. Отмечал в блокнот лишь результат.

*** Не стоит верить всему, что здесь написано. Лучше перепроверить самостоятельно.

 

Если будет интересно, то добавлю еще...

 

Перепроверил в более реальных условиях StrContains VS strcmp.  strcmp всё же вышел победителем, хотя не оч. сильно, но всё же.

1 Тест 4.044433 Секунд (strcmp)
2 Тест 4.469408 Секунд (StrContains)


Сообщение отредактировал MixJay: 22 Март 2016 - 7:04

  • Accelerator, AlexMy, Apocalypse 2 и еще 1 это нравится

#30 MixJay

MixJay

    Пользователь

  • Пользователь
  • PipPipPip
  • 194 сообщений

Отправлено 01 Апрель 2016 - 15:34

Пересобрал почти все плагины. Снизил кол-во рядовых бомжиков. Нагрузка при полном сервере (16 слотов) около 30%. Возможно из за пинга лично у меня растет choke и играть становится не комфортно. =(

Попробую тик 66 на днях. Не знаю какой выйдет толк...



#31 MixJay

MixJay

    Пользователь

  • Пользователь
  • PipPipPip
  • 194 сообщений

Отправлено 02 Апрель 2016 - 9:14

Поковырял настройки клиента. Удалось минимизировать lerp & choke.

net_graph 4 - чтобы видеть все значения

 

cl_interp_ratio 2 - оставил по умолчанию

rate 30000

cl_updaterate 100 - было вроде 20. Настроится под максимум сервера! Т.е. в моем случае 33. Поднялся пинг в netrgaph ~ на 15, скорее всего стал правдоподобнее! Около 140 (было ~125). Владивосток-Москва.

cl_cmdrate 100 - по дефолту 20 или 30. Так же выставит максимально допустимое значение, согласно настройкам сервера.

cl_interp 0.033 - было 0.1. Ниже не смог опустить, т.к. становится желтым. Lerp упал с 100 до 33. Choke убрался. Иногда подскакивает на пару единиц. График стал более плавным. Вот загруженной сцены:

 

Скрытый текст

Сообщение отредактировал MixJay: 02 Апрель 2016 - 9:16

  • Apocalypse 2 это нравится

#32 Apocalypse 2

Apocalypse 2

    Постоянный пользователь

  • Пользователь
  • PipPipPipPipPip
  • 485 сообщений

Отправлено 02 Апрель 2016 - 12:21

Fixes Tickrate bugs 

Скрытый текст

Сообщение отредактировал Apocalypse 2: 30 Январь 2017 - 12:19

  • MixJay это нравится

#33 Accelerator

Accelerator

    Пользователь

  • Пользователь
  • PipPipPip
  • 188 сообщений

Отправлено 02 Апрель 2016 - 14:52

Поковырял настройки клиента. Удалось минимизировать lerp & choke.

net_graph 4 - чтобы видеть все значения

 

cl_interp_ratio 2 - оставил по умолчанию

rate 30000

cl_updaterate 100 - было вроде 20. Настроится под максимум сервера! Т.е. в моем случае 33. Поднялся пинг в netrgaph ~ на 15, скорее всего стал правдоподобнее! Около 140 (было ~125). Владивосток-Москва.

cl_cmdrate 100 - по дефолту 20 или 30. Так же выставит максимально допустимое значение, согласно настройкам сервера.

cl_interp 0.033 - было 0.1. Ниже не смог опустить, т.к. становится желтым. Lerp упал с 100 до 33. Choke убрался. Иногда подскакивает на пару единиц. График стал более плавным. Вот загруженной сцены:

 

Скрытый текст

cl_interp_ratio 2 - по умолчанию он и стоит 2.

cl_cmdrate, cl_updaterate нет смысла ставить выше 30, если сервер и не дает свыше 30. Пинг будет показывать выше, но толку от этого мало :)

Интерполяцию лучше вообще не трогать. Хотите ниже пинг, увеличивайте тикрейт :)

 

Fixes Tickrate bugs 

Скрытый текст

В этом вообще нет никакого смысла :) Сам использую 60 тикрейт, без сие фиксов. Хотя возможно на 100 тике они и нужны.


  • MixJay это нравится

#34 Apocalypse 2

Apocalypse 2

    Постоянный пользователь

  • Пользователь
  • PipPipPipPipPip
  • 485 сообщений

Отправлено 02 Апрель 2016 - 17:43

 

В этом вообще нет никакого смысла :) Сам использую 60 тикрейт, без сие фиксов. Хотя возможно на 100 тике они и нужны.


Сообщение отредактировал Apocalypse 2: 30 Январь 2017 - 12:19

  • MixJay это нравится

#35 MixJay

MixJay

    Пользователь

  • Пользователь
  • PipPipPip
  • 194 сообщений

Отправлено 03 Апрель 2016 - 9:26

cl_interp_ratio 2 - по умолчанию он и стоит 2.

cl_cmdrate, cl_updaterate нет смысла ставить выше 30, если сервер и не дает свыше 30. Пинг будет показывать выше, но толку от этого мало :)

Интерполяцию лучше вообще не трогать. Хотите ниже пинг, увеличивайте тикрейт :)

 

В этом вообще нет никакого смысла :) Сам использую 60 тикрейт, без сие фиксов. Хотя возможно на 100 тике они и нужны.

 

А у вас, если не ошибаюсь, тариф с 2-мя ядрами? Хотел поинтересоваться... неужели сервер использует оба ядра? Находил информацию, что используется только одно...



#36 Accelerator

Accelerator

    Пользователь

  • Пользователь
  • PipPipPip
  • 188 сообщений

Отправлено 03 Апрель 2016 - 9:56

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


Сообщение отредактировал Accelerator: 03 Апрель 2016 - 9:58

  • MixJay это нравится

#37 MixJay

MixJay

    Пользователь

  • Пользователь
  • PipPipPip
  • 194 сообщений

Отправлено 03 Апрель 2016 - 14:07

всё верно это под 100 не когда не рассматривал другие (66 это стандарт для l4d)
тик 100 сам по себе проблематичен в настройке но полученный финальный результат  (гладкая картинка) очень радует глаз и это того стоит

 

Перешел на тик 100. Пока что очень нравится!  :lol:  Нагрузка не выше 30% при 10 игроках. Зомби перестали рывками бегать. Lerp сократился до 20 (ниже не получается из за пинга ~120). Посмотрим при полной загруженности сервера что будет... Не знаю есть ли разница, ощутимая глазом между 66 и 100?! Но возвращаться на тик 33 точно не буду.

Для тика 100 требуется еще что либо, кроме настройки конфига?


Сообщение отредактировал MixJay: 03 Апрель 2016 - 14:13


#38 Apocalypse 2

Apocalypse 2

    Постоянный пользователь

  • Пользователь
  • PipPipPipPipPip
  • 485 сообщений

Отправлено 03 Апрель 2016 - 14:36

 

Для тика 100 требуется еще что либо, кроме настройки конфига?


Сообщение отредактировал Apocalypse 2: 30 Январь 2017 - 12:19

  • MixJay это нравится

#39 Accelerator

Accelerator

    Пользователь

  • Пользователь
  • PipPipPip
  • 188 сообщений

Отправлено 03 Апрель 2016 - 14:44

плагин у вас есть все нужные настройки там имеются 
вам осталось только поставить расширение 
L4D https://bitbucket.or...abler/downloads
tickrate_enabler.vdf (в папку addons)
tickrate_enabler.so (в папку extensions)
 

Ужас какой вы предлагаете О_О

И .so и .vdf файл в папку addons.


Сообщение отредактировал Accelerator: 03 Апрель 2016 - 14:46

  • Apocalypse 2 это нравится

#40 MixJay

MixJay

    Пользователь

  • Пользователь
  • PipPipPip
  • 194 сообщений

Отправлено 03 Апрель 2016 - 15:39

плагин у вас есть все нужные настройки там имеются 
вам осталось только поставить расширение 
L4D https://bitbucket.or...abler/downloads
tickrate_enabler.vdf (в папку addons)
tickrate_enabler.so (в папку extensions)
 

 

А что эта вещь дает? Без нее что не так будет? )  Я минималист, не люблю лишнее =)





Темы с аналогичным тегами оптимизация, производительность, лаги

Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных