Иконка ресурса

Performance Monitor 2.0

Madness aka null138

Участник
Сообщения
713
Реакции
734
  • Автор ресурса
  • #1
Madness aka null138 добавил(а) новый ресурс:

Performance Monitor - Уведомляет и логирует о лагах, простоях и крашах сервера. Автоматически создает "handles dump"

Выводит в логи информацию о проблемах, когда сильно падает производительность сервер. Автоматически создает файл handles dump когда такое происходит.
Так же выводит информацию о том, крашнулся ли сервер в прошлый раз и на какой карте, с каким количеством игроков на сервере.

Узнать больше об этом ресурсе...
 

Zkiffy

Участник
Сообщения
547
Реакции
192
Немного не понял для чего предназначен кфг. Это для включения, выключения записи данных (карта, кол-во игроков) или что ?

1653289171085.png
 

danil253467

💘Italo-Disco & Neon One Love💘
Сообщения
90
Реакции
52
Немного не понял для чего предназначен кфг. Это для включения, выключения записи данных (карта, кол-во игроков) или что ?

В начале каждой карты сюда записывается, какая карта на данный момент и сколько игроков
 

Madness aka null138

Участник
Сообщения
713
Реакции
734
  • Автор ресурса
  • #4

Danyas

Участник
Сообщения
2,173
Реакции
1,072
уф, как будет весело, когда сервер будет скипать фреймы из-за задержки по hdd, а плагин будет каждый тик в лог писать 😀
 

Madness aka null138

Участник
Сообщения
713
Реакции
734
  • Автор ресурса
  • #9
уф, как будет весело, когда сервер будет скипать фреймы из-за задержки по hdd, а плагин будет каждый тик в лог писать 😀
каждый тик, конечно. ведь там в коде же нет задержки в одну секунду на каждый лог.
тем более не вижу реальной причины такого поведение hdd. даже у меня на ноуте с заводским hdd, которому 8 лет, во время проверки плагина с параллельно запущенным сервером на локальном и с ботами, плагином на искусственную нагрузку - никаких смещений фреймов не наблюдалось.
да и суть плагина в этом и есть - уведомлять о падениях производительности. плагин что, раз в час должен писать ?
 

Madness aka null138

Участник
Сообщения
713
Реакции
734
  • Автор ресурса
  • #10

Danyas

Участник
Сообщения
2,173
Реакции
1,072
каждый тик, конечно. ведь там в коде же нет задержки в одну секунду на каждый лог.
тем более не вижу реальной причины такого поведение hdd. даже у меня на ноуте с заводским hdd, которому 8 лет, во время проверки плагина с параллельно запущенным сервером на локальном и с ботами, плагином на искусственную нагрузку - никаких смещений фреймов не наблюдалось.
да и суть плагина в этом и есть - уведомлять о падениях производительности. плагин что, раз в час должен писать ?
А всё очень просто - на говнохостинге ставиться в старый тазик такой хдд и какой-то из серваков начинает обновляться \ менять карты \ заливать тонны овна \ etc, а там серверов например десяток.
 

Grey83

не пишу плагины с весны 2022
Сообщения
8,521
Реакции
4,982
Поковырял код, потестил немного.
Нашёл кучу недостатков для меня (поддержка только одного сервера запускаемого из одной папки, зачем-то случайные числа в дампе, когда можно заюзать UNIX-time, не умеет создавать файл с инфой о запущенной карте, не сохраняет в папке соурсмода, если используется папка с нестардартным именем).

В общем переписал чтобы исправить перечисленное.
SM 1.11:
//// performancemonitor 2.1.0_11.07.2022.sp
//
// Code size:         8864 bytes
// Data size:         3640 bytes
// Stack/heap size:      16928 bytes
// Total requirements:   29432 bytes
//
// Compilation Time: 0,3 sec
// ----------------------------------------

//// performancemonitor.sp
//
// Code size:         8736 bytes
// Data size:         3660 bytes
// Stack/heap size:      16924 bytes
// Total requirements:   29320 bytes
//
// Compilation Time: 0,3 sec
// ----------------------------------------
Для более удобной сортировки путь к логу лагов сервера изменён на lag_logs-%порт%_%год-месяц-число%.txt, к дампу хэндлов на lag_dump-%порт%_%unixtime%.txt.
В случае если отсутствует файл pfm_savedata.ini в папке configs, то плагин сам его создаст (и даже выставит права на чтение и запись) и для каждого сервера будет создана своя секция с его портом в качестве имени (ну и немного изменил имена ключей).
 

Вложения

  • performancemonitor 2.1.0_11.07.2022.sp
    5.2 КБ · Просмотры: 15

Madness aka null138

Участник
Сообщения
713
Реакции
734
  • Автор ресурса
  • #14
Поковырял код, потестил немного.
Нашёл кучу недостатков для меня (поддержка только одного сервера запускаемого из одной папки, зачем-то случайные числа в дампе, когда можно заюзать UNIX-time, не умеет создавать файл с инфой о запущенной карте, не сохраняет в папке соурсмода, если используется папка с нестардартным именем).

В общем переписал чтобы исправить перечисленное.
SM 1.11:
//// performancemonitor 2.1.0_11.07.2022.sp
//
// Code size:         8864 bytes
// Data size:         3640 bytes
// Stack/heap size:      16928 bytes
// Total requirements:   29432 bytes
//
// Compilation Time: 0,3 sec
// ----------------------------------------

//// performancemonitor.sp
//
// Code size:         8736 bytes
// Data size:         3660 bytes
// Stack/heap size:      16924 bytes
// Total requirements:   29320 bytes
//
// Compilation Time: 0,3 sec
// ----------------------------------------
Для более удобной сортировки путь к логу лагов сервера изменён на lag_logs-%порт%_%год-месяц-число%.txt, к дампу хэндлов на lag_dump-%порт%_%unixtime%.txt.
В случае если отсутствует файл pfm_savedata.ini в папке configs, то плагин сам его создаст (и даже выставит права на чтение и запись) и для каждого сервера будет создана своя секция с его портом в качестве имени (ну и немного изменил имена ключей).
нашел время для плагина в такие тяжелые времена. это очень круто однозначно.
 

Grey83

не пишу плагины с весны 2022
Сообщения
8,521
Реакции
4,982
@Madness aka null138, сижу дома заняться нечем (а чем-то серьёзным заняться лень), давай, думаю, плагин гляну.
Ну и посмотрел. =)
Сообщения автоматически склеены:

Просто я себе когда-то (самый свежий билд от 4 апреля 2020) пилил плагин, чтобы детектить падения сервера.
Нуно будет немного его переписать с учётом кода этого плагина.
 

Вложения

  • server_restarts_log.sp
    1.3 КБ · Просмотры: 11

Grey83

не пишу плагины с весны 2022
Сообщения
8,521
Реакции
4,982
Сделал себе плагинчик с логом падений и наткнулся на косяк в коде performancemonitor: в строке 84 должно было быть
SetFilePermissions(sPath, FPERM_U_READ|FPERM_U_WRITE|FPERM_G_READ|FPERM_G_WRITE|FPERM_O_READ|FPERM_O_WRITE);
(т.е. buffer ==> sPath).

В общем немного апдейтнул код:
SM 1.11:
//// performancemonitor 2.1.0_18.07.2022.sp
//
// Code size:         8480 bytes
// Data size:         3556 bytes
// Stack/heap size:      17004 bytes
// Total requirements:   29040 bytes
//
// Compilation Time: 0,27 sec
// ----------------------------------------
 

Вложения

  • performancemonitor 2.1.0_18.07.2022.sp
    4.9 КБ · Просмотры: 42

XBITID

Участник
Сообщения
20
Реакции
2
и как это распознать Performance problems! The engine is unstable. Ticks passed: 25
 

FuckYeah

Челик
Сообщения
474
Реакции
57
Как этим пользоваться?!

Часто в консоли сервера Performance problems! The engine is unstable. Ticks passed: 48 , и разные числа всегда
 
Последнее редактирование:

FuckYeah

Челик
Сообщения
474
Реакции
57
Нужно смотреть что в файле логов и handles dump. Пути есть в описании.
C-подобный:
x008c008b    PLUGINSYS               Plugin                  5156   
0x008e008d    PLUGINSYS               Plugin                  5108   
0x0090008f    PLUGINSYS               Plugin                  5152   
0x00920091    PLUGINSYS               Plugin                  5155   
0x00940093    PLUGINSYS               Plugin                  5112   
0x00960095    PLUGINSYS               Plugin                  5171   
0x00980097    PLUGINSYS               Plugin                  5213   
0x00990098    custom_weapons_refor    GlobalFwd               4       
0x009a0099    custom_weapons_refor    GlobalFwd               4       
0x009b009a    custom_weapons_refor    GlobalFwd               4       
0x009e009d    PLUGINSYS               Plugin                  5188   
0x009f009e    ClientMod.smx           GlobalFwd               4       
0x00a0009f    ClientMod.smx           GlobalFwd               4       
0x00a200a1    PLUGINSYS               Plugin                  5133   
0x00a400a3    PLUGINSYS               Plugin                  5116   
0x00a600a5    PLUGINSYS               Plugin                  5157   
0x00a800a7    PLUGINSYS               Plugin                  5108   
0x00aa00a9    PLUGINSYS               Plugin                  5112   
0x00ac00ab    PLUGINSYS               Plugin                  5161   
0x00ae00ad    PLUGINSYS               Plugin                  5123   
0x00b000af    PLUGINSYS               Plugin                  5127   
0x00b200b1    PLUGINSYS               Plugin                  5100   
0x00b400b3    PLUGINSYS               Plugin                  5112   
0x00b600b5    PLUGINSYS               Plugin                  5119   
0x00b800b7    PLUGINSYS               Plugin                  5134   
0x00b900b8    levelsranks.smx         GlobalFwd               16     
0x00ba00b9    levelsranks.smx         PrivateFwd              16     
0x00bb00ba    levelsranks.smx         PrivateFwd              4       
0x00bc00bb    levelsranks.smx         PrivateFwd              16     
0x00bd00bc    levelsranks.smx         PrivateFwd              4       
0x00be00bd    levelsranks.smx         PrivateFwd              4       
0x00bf00be    levelsranks.smx         PrivateFwd              16     
0x00c000bf    levelsranks.smx         PrivateFwd              4       
0x00c100c0    levelsranks.smx         PrivateFwd              16     
0x00c200c1    levelsranks.smx         PrivateFwd              16     
0x00c300c2    levelsranks.smx         PrivateFwd              4       
0x00c400c3    levelsranks.smx         PrivateFwd              16     
0x00c500c4    levelsranks.smx         PrivateFwd              4       
0x00c600c5    levelsranks.smx         PrivateFwd              4       
0x00c700c6    levelsranks.smx         PrivateFwd              4       
0x00c800c7    levelsranks.smx         PrivateFwd              16     
0x00c900c8    levelsranks.smx         PrivateFwd              16     
0x00ca00c9    levelsranks.smx         PrivateFwd              4       
0x00cb00ca    levelsranks.smx         PrivateFwd              4       
0x00cc00cb    levelsranks.smx         PrivateFwd              16     
0x00cd00cc    levelsranks.smx         PrivateFwd              16     
0x00cf00ce    PLUGINSYS               Plugin                  5198   
0x00d200d1    PLUGINSYS               Plugin                  5166   
0x00d400d3    PLUGINSYS               Plugin                  5172   
0x00d600d5    PLUGINSYS               Plugin                  5108   
0x00d900d8    PLUGINSYS               Plugin                  5167   
0x00db00da    PLUGINSYS               Plugin                  5172

Для меня это ничего не понятно)
Кинул лишь кусок, там намного больше всего и куча названий плагинов (почти всех)
 
Сверху Снизу