有没有人有任何公式,或者他们环境中的一些样本数据可以帮助我估计每个数据点石墨将使用多少磁盘空间?
有没有人有任何公式,或者他们环境中的一些样本数据可以帮助我估计每个数据点石墨将使用多少磁盘空间?
Answers:
whisper-info.py
让您深入了解每个文件的聚合方式和聚合方式,包括文件的大小。
但是,它仅对现有的耳语文件有用。
如果希望在将模式放置到位之前看到其预测大小,请尝试使用耳语计算器,例如https://gist.github.com/jjmaestro/5774063上可用的计算器。
编辑:
当被问到一个例子...
storage_schema:
{
:catchall => {
:priority => "100",
:pattern => "^\.*",
:retentions => "1m:31d,15m:1y,1h:5y"
}
}
看我的档案applied-in-last-hour.wsp
,ls -l
产量
-rwxr-xr-x 1 root root 4415092 Sep 16 08:26 applied-in-last-hour.wsp
和whisper-info.py ./applied-in-last-hour.wsp
产量
maxRetention: 157680000
xFilesFactor: 0.300000011921
aggregationMethod: average
fileSize: 4415092
Archive 0
retention: 604800
secondsPerPoint: 10
points: 60480
size: 725760
offset: 52
Archive 1
retention: 2678400
secondsPerPoint: 60
points: 44640
size: 535680
offset: 725812
Archive 2
retention: 157680000
secondsPerPoint: 600
points: 262800
size: 3153600
offset: 1261492
因此,基本上,您将每个统计信息的每个保留匹配项,每个保留期限段的主机相结合,再乘以您也打算应用此系统的系统因子,再乘以要跟踪的新统计信息的数量。然后,您需要使用任何数量的存储空间,至少要加倍(因为我们要购买存储空间,并且我们知道我们会使用它...)
ls -l
因此我将其作为字节。当我将.wsp文件中的档案大小加起来(由所报告whisper-info.py
)时,它们接近.wsp文件的整体大小(其余的我认为是元数据等。这应该是所有文件的大小)时间的推移,数据下降到较低的数据分辨率,并且旧的数据点都被丢弃。
ServerCount * MetricCount * 4.5MBytes
没有使用Graphite的直接经验,但是我想可以使用与用于Cacti或其他任何RRD或时间翻转驱动的逻辑相同的逻辑(Graphite不再在内部使用RRD,但存储逻辑似乎具有可比性。)
快速的答案是“可能没有您认为需要的空间那么多”。
长答案涉及一些特定于站点的数学。对于我们的监视系统(InterMapper),我确定了保留期限,分辨率和数据点大小,进行了乘法运算,并增加了开销。
例如,我将使用磁盘空间-我们以5分钟的精度存储30天的数据,以15分钟的精度存储另外60天的数据,然后以小时的精度存储另外300天的数据,而我们使用的是64位(8字节)整数存储它:
每个样本8个字节,大约173KB,加上用于存储索引的正常开销等,一个分区的磁盘使用情况数据将其增加到大约200KB(任何错误都可能导致高估)。
根据基本指标,我可以算出平均的“每台计算机”大小(10个磁盘分区,交换空间,RAM,平均负载,网络传输以及其他一些东西)-每台计算机大约5MB。
我还要在最终数字的基础上再加上一个10%的值,然后进行四舍五入,因此我将每台机器的大小调整为6MB。
然后,我查看一下用于存储用于绘制图表的指标数据的1TB空间,然后说:“是的,除非我们大量增长,否则我一生可能不会用光存储空间!” :-)
我有70个节点,它们生成大量数据。使用Carbon / Whisper,一个节点仅创建了91k个文件(该节点生成多个模式,每个模式具有多个计数器和变量字段,这些字段需要可选,例如:(nodename)。(schema)。(counter)。(subcounter)。(etc )....等等)。
这提供了绘制所需图形所需的粒度。运行脚本以填充其余69个节点后,我的磁盘上有1.3TB的数据。而且,每个节点仅需要6个小时的数据。让我得到的是6个小时数据的实际平面csv文件约为230Mb /节点。70个节点约为16Gb的数据。我的存储模式为120s:365d。
我是数据库的新手,所以我可能做错了事,但是我猜想这是每个样本的全部开销。
因此,这是一个有趣的实验,但我认为对我存储的数据使用耳语是没有道理的。MongoDB似乎是一个更好的解决方案,但是我需要弄清楚如何将其用作Grafana的后端。