Этот вопрос касается целого класса подобных проблем, но я задам его в качестве конкретного примера.
У меня есть сервер с файловой системой, содержимое которого колеблется. Мне нужно следить за доступным пространством в этой файловой системе, чтобы убедиться, что оно не заполняется. Ради аргумента, давайте предположим, что если он заполняется, сервер отключается.
Неважно, что это такое - например, это может быть очередь «работы».
Во время «нормальной» работы доступное пространство изменяется в «нормальных» пределах, но возможны патологии:
- Некоторые другие (возможно, внешние)
компонент, который добавляет работу, может закончиться
управления
- Некоторые компоненты, удаляющие работу, блокируются, но остаются незамеченными
Статистические характеристики процесса в основном неизвестны.
То, что я ищу, - это алгоритм, который принимает в качестве входных данных периодические периодические измерения доступного пространства (альтернативные предложения для ввода приветствуются) и выдает в качестве выходных данных сигнал тревоги, когда все «ненормально», и файл система "скорее всего заполнится". Очевидно, что важно избегать ложных негативов, но почти так же важно избегать ложных срабатываний, чтобы не заглушить мозг сисадмина, который получает сигнал тревоги.
Я ценю, что есть альтернативные решения, такие как выделение большего объема памяти для основной проблемы, но на самом деле я встречал случаи, когда 1000 раз было недостаточно.
Алгоритмы, которые учитывают сохраненные исторические измерения, хороши, хотя предпочтительны алгоритмы на лету, которые минимизируют количество исторических данных.
Я принял ответ Фрэнка и теперь возвращаюсь к чертежной доске, чтобы глубже изучить его рекомендации.
Есть три случая, я думаю, представляющих интерес, не по порядку:
- Сценарий «Продажи Harrods только что начался»: пик активности, который с разрешением в одну секунду «вне шкалы», но не представляет реальной опасности истощения ресурсов;
- Сценарий «Глобальное потепление»: необходимость планирования (относительно) стабильного роста; и
- Сценарий "Google отправляет мне нежелательную копию индекса": это приведет к истощению всех моих ресурсов в относительно короткие сроки, если я не предприму что-либо, чтобы остановить его.
Это последний, который (я думаю) наиболее интересный и сложный, с точки зрения системного администратора.