我有興趣知道是否有任何替代rrdtool記錄時間序列數據。我正在研究一些可以擴展大量設備的功能。rrd工具替代高容量
從我對這個問題看,rrdtool的是I/O綁定當你用大量數據的擊打。由於我設想這可以擴展到大量的設備進行監控,我很好奇,如果有任何替代方案不會窒息I/O。基於SQL的優選,但不一定。
感謝
我有興趣知道是否有任何替代rrdtool記錄時間序列數據。我正在研究一些可以擴展大量設備的功能。rrd工具替代高容量
從我對這個問題看,rrdtool的是I/O綁定當你用大量數據的擊打。由於我設想這可以擴展到大量的設備進行監控,我很好奇,如果有任何替代方案不會窒息I/O。基於SQL的優選,但不一定。
感謝
如果I/O性能是主要擔心的話,那麼您想研究一下類似於當前版本(1.4)RRDTools中可用的rrdcached。
的I/O開銷不在數據的功能被寫入,每個數據源中的所有各值8個字節之後。 I/O帶寬來自整個扇區(通常爲4k)在寫出之前需要讀入的事實。突然寫8個字節,你已經讀/寫了8K字節。
的rrdcached聚結所有這些寫在一起,以便當一個RRD被更新的有用數據(實際DS值)浪費數據(在該扇區中備用字節)的比率降低。當他們檢測到它運行(通過環境變量)
所有RRDTools將自動rrdcached工作。這可以讓他們在需要時觸發刷新,例如從數據生成圖表時。
當切換到基於SQL的解決方案可以幫助考慮將需要支持SQL額外的I/O。考慮到你不傾向於按照那種隨機訪問模式使用RRD數據,數據庫對於這個問題來說是一個大錘。儘管堅持使用RRDTool可以訪問所有理解和可以處理文件的工具的生態系統,如果您已經熟悉這些文件,這尤其有用。
我的一個朋友做了一些工作,前一段時間在SQL後端存儲循環賽數據:http://rrs.decibel.org
不過,我懷疑,既然你問「設備監控」 ,您可能正在尋找更完整的解決方案。
有一些時間序列數據庫具有高可用性和/或可擴展性爲目標。
也許看看
如果每秒的I/O操作是您的主要瓶頸,並且您正在使用Linux,那麼存在一個簡單的黑客攻擊只會降低您的內存。使用tmpfs掛載來進行RRD寫入。
所有的I/O操作會在內存中完成,將不會產生任何做磁盤中發現的瓶頸的I/O(這是速度甚至比使用固態磁盤)。然後,您可以使用cron作業和rsync將每隔幾分鐘僅更改一次的RRD複製到磁盤。
創建目錄
bash-4.2# mkdir /mnt/rrd-reads
bash-4.2# mkdir /mnt/rrd-writes
創建具有適當的選項
bash-4.2# mount -t tmpfs -o size=500m,mode=0750,uid=collectd,gid=collectd none /mnt/rrd-writes
bash-4.2# echo "none /mnt/rrd-writes tmpfs size=500m,mode=0750,uid=collectd,gid=collectd 1 2" >> /etc/fstab
複製舊RRD文件500MB,最大內存文件系統到新的掛載點
bash-4.2# cp -a /var/lib/collectd/rrd/* /mnt/rrd-writes
配置您的RRD的編寫應用程序寫入到新的安裝點
bash-4.2# sed -i -e 's/DataDir "\/var\/lib\/collectd\/rrd"/DataDir "\/mnt\/rrd-writes"/' /etc/collectd/collectd.conf
建立一個cron作業同步僅將更改的RRD磁盤每2分鐘
一次bash-4.2# echo "*/2 * * * * collectd rsync -a /mnt/rrd-writes/* /mnt/rrd-reads/ ; sync" > /etc/cron.d/rrd-sync
不要忘記複製您保存的RRD文件es進入掛載點之前你開始你的rrd-writing應用程序!您可能需要編輯該服務的初始化腳本以確保文件在啓動之前存在。如果在沒有文件的情況下啓動,則會創建新的裸機,並且一旦讀取的目錄被空的RRD覆蓋,您將非常困惑。
如果在某些時候,你需要調整掛載tmpfs的,你可以這樣做對飛:
bash-4.2# mount -t tmpfs -o remount,size=850m /mnt/rrd-writes
如果它的I/O瓶頸,那不是很好?這意味着你可以採用硬件解決方案,比如RAID,固態硬盤和多臺機器來跟蹤不相關的數據? – JasonSmith 2009-12-12 13:43:11
我的觀點是......問題在於HW的使用情況如何...... rrdcached的使用是非常優化的...數據庫(在一天結束時)也必須將東西寫入磁盤,但由於它是更通用的目的,我懷疑它可以像rrdtool一樣高效地處理它... – 2010-11-29 07:21:55