Хостинг серверов Minecraft playvds.com
  1. Вы находитесь в русском сообществе Bukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на русский язык плагины наших собратьев из других стран.
    Скрыть объявление

Помогите Мониторинг TPS сервера и выполнение функции при его снижении

Тема в разделе "Разработка плагинов для новичков", создана пользователем Lucelarius, 14 ноя 2016.

  1. Автор темы
    Lucelarius

    Lucelarius Активный участник Пользователь

    Баллы:
    66
    Всем привет!
    Знаю, что данная тема довольно заезжена, но я не смог найти информации для решения задачи.

    Суть такова:
    Нужен плагин (или мод), который будет отслеживать TPS сервера (можно и время обработки тика), и в случае превышения установленного порога в интервале 5 минут, отправка сигнала модификации для отключения какой либо функции.

    Нужна информация, как получить наиболее точные данные TPS с сервера или отслеживание времени обработки тика.
    Последняя сборка KCauldrone-1614.
     
  2. Хостинг MineCraft
    <
  3. alexandrage

    alexandrage Администратор

    Баллы:
    173
    Skype:
    alexandr0116
    тпс и есть время тиков, лалка :D. (20 тиков==1сек) == лагов нет == 20 тпс.
     
  4. Автор темы
    Lucelarius

    Lucelarius Активный участник Пользователь

    Баллы:
    66
    Для меня время тика - это время затраченное на 1 тик, из которого и получается значение колличества тиков в секунду "TPS".
     
  5. alexandrage

    alexandrage Администратор

    Баллы:
    173
    Skype:
    alexandr0116
    Так в чем твои проблемы? Замеряй сколько тиков в секунде.
     
  6. Автор темы
    Lucelarius

    Lucelarius Активный участник Пользователь

    Баллы:
    66
    Увы не знаю как. На просторах интернета я нашел код для этой цели, но в нем есть ошибка и значение выдает ниже действительного. А по скольку знания ява пока что довольно скудные, найти ошибку самостоятельно довольно трудно. Не говоря уже про знание API "Bukkit" и "Spigot".
     
  7. alexandrage

    alexandrage Администратор

    Баллы:
    173
    Skype:
    alexandr0116
    А ты думал что ровно 20тка всегда? Оно почти всегда 19 с чем то там в основном.
     
  8. Автор темы
    Lucelarius

    Lucelarius Активный участник Пользователь

    Баллы:
    66
    То есть результат, который показывается при вводе команды /tps неверный? По тому как я ориентировался по нему, и он был всегда выше того, который выдавал мой плагин.
     
  9. alexandrage

    alexandrage Администратор

    Баллы:
    173
    Skype:
    alexandr0116
    Я не видел твой плагин. Но тпс определяется сколько тиков в секунде.
     
  10. Автор темы
    Lucelarius

    Lucelarius Активный участник Пользователь

    Баллы:
    66
    Код:
    public class TimingCheck extends JavaPlugin implements Listener {
    
        private double tps = 0;
    
        @Override
        public void onDisable() {
            getServer().getScheduler().cancelTasks(this);
        }
    
        @Override
        public void onEnable() {
            getServer().getScheduler().scheduleSyncRepeatingTask(this, new Runnable() {
                long sec;
                long currentSec;
                double ticks;
                int delay;
    
                @Override
                public void run() {
                    sec = (System.currentTimeMillis() / 1000);
    
                    if (currentSec == sec) {
                        ticks++;
                    } else {
                        currentSec = sec;
                        tps = (tps == 0 ? ticks : ((tps + ticks) / 2));
                        ticks = 0;
    
                        if ((++delay % 1) == 0) {
                            delay = 0;
    
                            Bukkit.broadcastMessage("TPS = " + tps);
                        }
                    }
                }
            }, 20, 1);
        }
    }
    

    Код:
    [13:04:47] [Server thread/INFO]: TPS = 21.49609372015402
    [13:04:48] [Server thread/INFO]: TPS = 20.24804686007701
    [13:04:49] [Server thread/INFO]: TPS = 19.624023430038505
    [13:04:50] [Server thread/INFO]: TPS = 19.312011715019253
    [13:04:51] [Server thread/INFO]: TPS = 19.156005857509626
    [13:04:52] [Server thread/INFO]: TPS = 19.078002928754813
    [13:04:53] [Server thread/INFO]: TPS = 19.039001464377407
    [13:04:54] [Server thread/INFO]: TPS = 18.519500732188703
    [13:04:55] [Server thread/INFO]: TPS = 18.75975036609435
    [13:04:56] [Server thread/INFO]: TPS = 18.879875183047176
    [13:04:57] [Server thread/INFO]: TPS = 18.939937591523588
    [13:04:58] [Server thread/INFO]: TPS = 18.969968795761794
    [13:04:59] [Server thread/INFO]: TPS = 18.984984397880897
    [13:05:00] [Server thread/INFO]: TPS = 18.992492198940447
    [13:05:01] [Server thread/INFO]: TPS = 18.996246099470223
    [13:05:02] [Server thread/INFO]: TPS = 18.998123049735113
    [13:05:03] [Server thread/INFO]: TPS = 18.999061524867557
    [13:05:04] [Server thread/INFO]: TPS = 18.99953076243378
    [13:05:05] [Server thread/INFO]: TPS = 18.99976538121689
    [13:05:06] [Server thread/INFO]: TPS = 18.499882690608445
    [13:05:07] [Server thread/INFO]: TPS = 18.749941345304222
    [13:05:08] [Server thread/INFO]: TPS = 18.87497067265211
    [13:05:09] [Server thread/INFO]: TPS = 18.937485336326056
    [13:05:10] [Server thread/INFO]: TPS = 18.968742668163028
    [13:05:11] [Server thread/INFO]: TPS = 18.984371334081516
    [13:05:12] [Server thread/INFO]: TPS = 18.492185667040758
    [13:05:13] [Server thread/INFO]: TPS = 18.24609283352038
    [13:05:14] [Server thread/INFO]: TPS = 18.62304641676019
    [13:05:15] [Server thread/INFO]: TPS = 18.811523208380095
    [13:05:16] [Server thread/INFO]: TPS = 18.905761604190047
    [13:05:17] [Server thread/INFO]: TPS = 18.952880802095024
    [13:05:18] [Server thread/INFO]: TPS = 18.976440401047512
    [13:05:19] [Server thread/INFO]: TPS = 18.988220200523756
    [13:05:20] [Server thread/INFO]: TPS = 18.994110100261878
    [13:05:21] [Server thread/INFO]: TPS = 18.49705505013094
    [13:05:22] [Server thread/INFO]: TPS = 18.74852752506547
    [13:05:23] [Server thread/INFO]: TPS = 18.874263762532735
    [13:05:24] [Server thread/INFO]: TPS = 18.937131881266367
    [13:05:25] [Server thread/INFO]: TPS = 18.968565940633184
    [13:05:26] [Server thread/INFO]: TPS = 18.984282970316592
    [13:05:27] [Server thread/INFO]: TPS = 18.992141485158296
    [13:05:28] [Server thread/INFO]: TPS = 18.99607074257915
    [13:05:29] [Server thread/INFO]: TPS = 18.998035371289575
    [13:05:30] [Server thread/INFO]: TPS = 18.999017685644787
    [13:05:31] [Server thread/INFO]: TPS = 18.999508842822394
    [13:05:32] [Server thread/INFO]: TPS = 18.999754421411197
    [13:05:33] [Server thread/INFO]: TPS = 18.9998772107056
    [13:05:34] [Server thread/INFO]: TPS = 18.9999386053528
    [13:05:35] [Server thread/INFO]: TPS = 18.999969302676398
    [13:05:36] [Server thread/INFO]: TPS = 18.9999846513382
    [13:05:37] [Server thread/INFO]: TPS = 18.999992325669098
    [13:05:38] [Server thread/INFO]: TPS = 18.99999616283455
    [13:05:39] [Server thread/INFO]: TPS = 18.999998081417274
    [13:05:40] [Server thread/INFO]: TPS = 18.999999040708637
    [13:05:41] [Server thread/INFO]: TPS = 18.99999952035432
    [13:05:42] [Server thread/INFO]: TPS = 18.99999976017716
    [13:05:43] [Server thread/INFO]: TPS = 18.99999988008858
    [13:05:44] [Server thread/INFO]: TPS = 18.49999994004429
    [13:05:45] [Server thread/INFO]: TPS = 18.749999970022145
    [13:05:46] [Server thread/INFO]: TPS = 18.874999985011073
    [13:05:47] [Server thread/INFO]: TPS = 18.937499992505536
    [13:05:48] [Server thread/INFO]: TPS = 18.968749996252768
    [13:05:49] [Server thread/INFO]: TPS = 18.984374998126384
    [13:05:50] [Server thread/INFO]: TPS = 18.992187499063192
    [13:05:51] [Server thread/INFO]: TPS = 18.996093749531596
    [13:05:52] [Server thread/INFO]: TPS = 18.998046874765798
    [13:05:53] [Server thread/INFO]: TPS = 18.9990234373829
    [13:05:54] [Server thread/INFO]: TPS = 18.99951171869145
    [13:05:55] [Server thread/INFO]: TPS = 18.999755859345726
    [13:05:56] [Server thread/INFO]: TPS = 18.999877929672863
    [13:05:57] [Server thread/INFO]: TPS = 18.99993896483643
    [13:05:58] [Server thread/INFO]: TPS = 18.999969482418216
    [13:05:59] [Server thread/INFO]: TPS = 18.999984741209108
    [13:06:00] [Server thread/INFO]: TPS = 18.999992370604552
    [13:06:01] [Server thread/INFO]: TPS = 18.999996185302276
    [13:06:02] [Server thread/INFO]: TPS = 18.99999809265114
    [13:06:03] [Server thread/INFO]: TPS = 18.99999904632557
    [13:06:04] [Server thread/INFO]: TPS = 18.999999523162785
    [13:06:05] [Server thread/INFO]: TPS = 18.999999761581392
    [13:06:06] [Server thread/INFO]: TPS = 18.999999880790696
    [13:06:07] [Server thread/INFO]: TPS = 18.999999940395348
    [13:06:08] [Server thread/INFO]: TPS = 18.999999970197674
    [13:06:09] [Server thread/INFO]: TPS = 18.99999998509884
    [13:06:09] [Server thread/INFO]: TPS from last 1m, 5m, 15m: 19.98, 19.93, 19.94 //результаты команды "/tps"
    [13:06:10] [Server thread/INFO]: TPS = 18.99999999254942
    [13:06:11] [Server thread/INFO]: TPS = 18.49999999627471
    [13:06:12] [Server thread/INFO]: TPS = 18.249999998137355
    [13:06:13] [Server thread/INFO]: TPS = 18.124999999068677
    [13:06:14] [Server thread/INFO]: TPS = 18.56249999953434
    [13:06:15] [Server thread/INFO]: TPS = 18.78124999976717
    [13:06:16] [Server thread/INFO]: TPS = 18.890624999883585
    [13:06:17] [Server thread/INFO]: TPS = 18.945312499941792
    [13:06:18] [Server thread/INFO]: TPS = 18.972656249970896
    [13:06:19] [Server thread/INFO]: TPS = 18.986328124985448
     
  11. alexandrage

    alexandrage Администратор

    Баллы:
    173
    Skype:
    alexandr0116
    Возможно broadcastMessage в самом шедулере замедляет. Ты лучше присваивай переменную и потом к ней обращайся.
     
  12. Автор темы
    Lucelarius

    Lucelarius Активный участник Пользователь

    Баллы:
    66
    Если сделать его отдельным методом, даст желаемый результат?
     
  13. LordElron

    LordElron Активный участник Пользователь

    Баллы:
    66
    Спасибо помогло :good:
     
  14. Автор темы
    Lucelarius

    Lucelarius Активный участник Пользователь

    Баллы:
    66
    Может подскажешь как?
    А то у меня всё равно не то выходит, да и времени не было толком...
     
  15. synthetic

    synthetic Активный участник Пользователь

    Баллы:
    76
    Плагин ClearLagg умеет выполнять команды консоли при снижении TPS. Посмотрите вот тут, опция TPS METER.
     

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