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

Lucelarius

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

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

Нужна информация, как получить наиболее точные данные TPS с сервера или отслеживание времени обработки тика.
Последняя сборка KCauldrone-1614.
 
тпс и есть время тиков, лалка :D. (20 тиков==1сек) == лагов нет == 20 тпс.
 
тпс и есть время тиков, лалка :D. (20 тиков==1сек) == лагов нет == 20 тпс.
Для меня время тика - это время затраченное на 1 тик, из которого и получается значение колличества тиков в секунду "TPS".
 
Так в чем твои проблемы? Замеряй сколько тиков в секунде.
Увы не знаю как. На просторах интернета я нашел код для этой цели, но в нем есть ошибка и значение выдает ниже действительного. А по скольку знания ява пока что довольно скудные, найти ошибку самостоятельно довольно трудно. Не говоря уже про знание API "Bukkit" и "Spigot".
 
Увы не знаю как. На просторах интернета я нашел код для этой цели, но в нем есть ошибка и значение выдает ниже действительного. А по скольку знания ява пока что довольно скудные, найти ошибку самостоятельно довольно трудно. Не говоря уже про знание API "Bukkit" и "Spigot".
А ты думал что ровно 20тка всегда? Оно почти всегда 19 с чем то там в основном.
 
А ты думал что ровно 20тка всегда? Оно почти всегда 19 с чем то там в основном.
То есть результат, который показывается при вводе команды /tps неверный? По тому как я ориентировался по нему, и он был всегда выше того, который выдавал мой плагин.
 
То есть результат, который показывается при вводе команды /tps неверный? По тому как я ориентировался по нему, и он был всегда выше того, который выдавал мой плагин.
Я не видел твой плагин. Но тпс определяется сколько тиков в секунде.
 
Я не видел твой плагин. Но тпс определяется сколько тиков в секунде.
Код:
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
 
Код:
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
Возможно broadcastMessage в самом шедулере замедляет. Ты лучше присваивай переменную и потом к ней обращайся.
 
Плагин ClearLagg умеет выполнять команды консоли при снижении TPS. Посмотрите вот тут, опция TPS METER.
 
Назад
Верх