2008-12-23 68 views
2

這個問題是關於一類類似的問題,但我會問它作爲一個具體的例子。如何可靠地檢測異常資源消耗?

我有一個文件系統的內容波動的服務器。我需要監視此文件系統上的可用空間,以確保它不會被填滿。爲了爭論,我們假設如果它填滿了,服務器就會關閉。

這並不重要,它可能是一個「工作」隊列。

在「正常」操作,在可用空間內的「正常」範圍而變化,但有可能是病變:

  • 其他一些(可能是外部的) 部件,增加了工作可能失控
  • 一些部件,消除工作抓住了,但仍未被發現

過程的統計特性基本上都是未知的。

我在尋找的是一種算法,它將可用空間的定時週期性測量值(歡迎輸入的替代建議)作爲輸入,併產生輸出,當事情「異常」時發出警報,文件系統「很可能會被填滿」。避免誤報顯然是非常重要的,但避免誤報幾乎同樣重要,以避免麻木系統管理員的大腦,因爲他們會發出警報。

我明白,有其他解決方案,比如在底層問題上拋出更多的存儲空間,但實際上我遇到了1000次不足的情況。

考慮到存儲的歷史測量結果的算法很好,儘管最小化歷史數據量的動態算法是優選的。


我已經接受了弗蘭克的回答,我現在要回到繪圖板,以深入研究他的引用。

有三種情況,我覺得,興趣愛好,不是爲了:

  1. 的「哈羅德銷售剛剛起步」的情景:活動的峯值,在一秒鐘的分辨率是「關撥號「,但並不代表資源枯竭的真正危險;
  2. 「全球變暖」情景:需要計劃(相對)穩定的增長;和
  3. 「Google向我發送索引的主動副本」方案:這會以相對較短的順序耗盡我的所有資源,除非我採取措施阻止它。

這是最後一個就是(我認爲)最有趣的,富有挑戰性的,從一個系統管理員的角度..

回答

1

如果它實際上是與工作的隊列,然後排隊論可能是找到答案的最佳途徑。

對於一般情況下,你可能試圖(多?)對歷史數據進行線性迴歸,以檢測資源使用量是否存在統計上顯着的上升趨勢,如果這種趨勢持續存在,則可能會導致問題(您可能還能預測它必須持續多久才能導致問題)這種技術 - 只需爲「問題」設置一個閾值,並使用趨勢的斜率來確定需要多長時間)。你將不得不玩弄這個和你收集的變量,看看是否有任何統計上顯着的關係,你可以在第一時間發現。

雖然它涵蓋了一個完全不同的主題(全球變暖),但我發現tamino的博客(tamino.wordpress.com)是一個非常好的資源,用於統計分析充滿知識和未知數據的數據。例如,請參閱this後。

編輯:根據我的評論我認爲這個問題有點類似GW的問題。您的短期活動平均值爲零,長期趨勢疊加,您可能感興趣。也可能有多個長期趨勢,並且會不時發生變化。塔米諾描述了一種可能適用於此的技術,但不幸的是我找不到我想要的文章。它涉及沿數據滑動迴歸(想象多條線適合噪音數據),並讓數據選取拐點。如果你能做到這一點,那麼你或許可以確定趨勢的重大變化。不幸的是,它可能只能在事實之後被識別,因爲您可能需要積累大量數據才能獲得重要意義。但它可能仍然是時候來應對資源枯竭。至少它可能會給你一個強有力的方式來確定未來需要的儲備安全邊際和資源。

+0

+1 Frank,謝謝你的深思熟慮。我已經探索了排隊論;和統計平滑,卡爾曼濾波等等。但是仍然存在的一個大問題是如何區分突然爆發的活動和未決的災難。 – 2008-12-23 14:16:57