智能預測之cpu使用率預測
05-14
智能預測之cpu預測
背景與目標
cpu是伺服器正常運行的比較重要的指標之一。為了保證其性能,業界通常為其設定閾值的方法來確保服務的可靠性和可用性。甚至有學者使用時間序列的預測模型來提前預測伺服器的cpu的走勢。在預測情況比較複雜的監控項時候,傳統的ARIMA或者指數平滑的方法很難達到比較好的效果,因為他們很難捕捉到以前從未出現過的情況。相反,神經網路模型由於輸入的是非線性方程,可以處理更複雜的時間序列。
本文採用神經網路模型去預測cpu的走勢,提前預測出將要發生報警的機器,儘可能將具有隱患的故障扼殺在搖籃中,提高系統的可靠性和可用性。
模型使用
獲取數據
我們採集過去7天的數據,採集間隔是1小時。使用下面代碼得到歷史的數據。
建立神經網路模型
建立神經網路模型,首先要確定輸入、隱藏和輸出層的神經元個數。
由於我們的線上業務具有天的周期性,所以我們將輸出層的個數設為24,隱藏層的個數一般為輸輸入層個數乘以2再加1,所以輸出層為49,輸出層的個數為1,,我們根據此規則建立模型:
構造數據集
訓練神經網路
訓練時候採用BP神經網路:
驗證與分析
我們可以挑選出測試集中的任意一個數據來驗證模型的好壞。
後期嘗試
上面輸出層含有一個神經元,如果想預測多個時間點的數據,可以修改輸出層的個數。
如果普通的BP神經網路的效果不理想,可以嘗試深度神經網路中的RNN模型。
推薦閱讀:
※網路喚醒全攻略(Wake On LAN)
※面試時到底在面什麼?
※時間序列異常檢測機制的研究
※MySQL 之多實例編譯安裝
※用43p140實現最簡單的hacmp環境(二)