Создание формулы для вычисления устройства “здоровье” на основе времени работы/перезагрузок

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

CheckinTime               Runtime
2010-01-01 02:15:00.000   101500
2010-01-01 02:25:00.000   102100
2010-01-01 02:35:00.000   102700

и т.д.

Если перезагрузки устройства, когда это перепроверяет в сервер, это сообщает о времени выполнения 0.

То, что я пытаюсь определить, является своего рода измеримой метрикой для "здоровья" устройства.

Если устройство перезагрузило много в прошлом, но не перезагрузило в прошлые xx дни, то это считают здоровым, по сравнению с устройством, которое имеет большое время работы за исключением прошлых xx дней, где оно неоднократно перезагружало. Кроме того, устройство, которое возросло в течение 30 дней и просто перезагрузило, нельзя считать "несчастным", по сравнению с устройством, которое постоянно перезагружало каждые 24 часа или так в течение прошлых xx дней.

Я попробовал несколько способов вычислить здоровье, с помощью множества метрик: 1. среднее число # перезагрузок 2. макс. (время работы) 3. в среднем (время работы) 4. # перезагрузок за прошлые 24 часа 5. # перезагрузок за прошлые 3 дня 6. # перезагрузок за прошлые 7 дней 7. # перезагрузок за прошлые 30 дней

Каждая отдельная метрика только составляет один аспект здоровья устройства, но не принимает во внимание полное здоровье по сравнению с другими устройствами или к его текущему состоянию здоровья.

Любые идеи ЗНАЧИТЕЛЬНО ценились бы.

6
задан Todd Brooks 1 February 2010 в 22:04
поделиться

5 ответов

Вы могли бы сделать что-то вроде «7 надежность Windows» - начните при полном здоровье (скажем, 10). Каждый час / день / Checkin Cycle, увеличивайте здоровье сольностью (10 - CurrentHealth) * Incrientefactor) . Каждый раз, когда сервер опустится, вычтите определенный процент.

Итак, с учетом компромезыватора 20% / аварии и инкремент. 10% / день:

  • Если устройство много перезагрузило в прошлом, но не перезагружалось за последние 20 дней, будет иметь здоровье 8,6

  • Большое время безотказной работы, за исключением последних 2 дней, когда он неоднократно перезагружался 5 раз, будет иметь здоровье 4,1

  • устройство, которое было в течение 30 дней, и просто перезагрузилось, будет иметь здоровье 8

  • Это постоянно перезагрузилось каждые 24 часа или около того за последние 10 дней, будет иметь здоровье 3,9

, чтобы пройти через пример:

, начиная с 10
День 1: Нет аварии, Новое здоровье = enceHealth + (10 - currenthealth) *. 1 = 10
День 2: Один аварийный, Новое здоровье = enceealth - Currethealth * .2 = 8 Но все еще увеличится каждый день, так что Новое здоровье = 8 + (10 - 8) *. 1 = 8,2
День 3: Нет аварии, новое здоровье = 8,4
День 4: два аварии, новое здоровье = 5,8

6
ответ дан 17 December 2019 в 02:28
поделиться

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

0
ответ дан 17 December 2019 в 02:28
поделиться

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

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

0
ответ дан 17 December 2019 в 02:28
поделиться

Вы можете нарушать устройства на группы подобных устройств? Тогда вы можете сравнить отдельное устройство к своим сверстникам.

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

0
ответ дан 17 December 2019 в 02:28
поделиться

.

Он всегда сообщает о его среде выполнения 0, на перезагрузке? Или что-то близкое к нулю (меньше, чем в любом случае, меньшее время)?

Вы можете рассчитать это два способа. 1. Чем ниже число, тем меньше проблем. 2. Чем выше число, оно забило наибольшие периоды.

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

Чем больше перезагружается в последний период, тем более сломанная система может быть. Но также смотрит на более короткие интервалы перезагрузки. Скажем, 5 перезагружается в день по сравнению с 10 перезагрузкой через 2 недели. Это значит много разных. Поэтому я думаю, что время должно быть метрикой, а также количество перезагрузки в этой формуле.

Я думаю, вам нужно рассчитать плотность количества перезагрузки в последний период.

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

Псевдо-код:

function calcHealth(machine)
float value = 0;
float threshold = 800;

for each (reboot in machine.reboots) {
    reboot.daysPast = time() - reboot.time;

    // the more days past, the lower the value, so the lower the weight
    value += (100 / reboot.daysPast);
}

return (value == 0) ? 0 : (threshold / value);
}

Вы можете продвинуть эту функцию, например, фильтрацию на MaxDaySpast и воспроизведение с порогом и такими людьми.

Эта формула основана на этом участке: f (x) = 100 / x . Как видите, на низких числах (низкое значение X) значение выше, а затем на большое значение X. Так что это о том, как эта формула рассчитывает вес DaysPast. Потому что нижний justpast == ниже x == веселый вес.

Со значением + = эта формула подсчитывает перезагрузку и с частью 100 / X, она дает вес перезагрузки, на то, где вес - это время.

При возвращении пороговое значение разделено через значение. Это потому, что чем выше оценка перезагрузки, чем ниже результат.

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

0
ответ дан 17 December 2019 в 02:28
поделиться
Другие вопросы по тегам:

Похожие вопросы: