为什么我的碳缓存过程会占用越来越多的内存?

时间:2017-06-04 02:16:32

标签: graphite grafana

我正在使用石墨+钻石来监控我的数百台服务器。我发现碳缓存每20小时被杀死一次杀死。起初,我想也许是因为我的磁盘相对较慢,因为它是SATA磁盘,而不是SSD。但是,当我使用iostat检查我的磁盘的util时,它只有大约70%:

Device:         rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util
xvdap1            2.00     0.00  313.00    0.00  2484.00     0.00    15.87     0.84    2.67    2.67    0.00   2.43  76.05

Device:         rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util
xvdap1            1.50   144.50  261.50  306.50  2136.00  1804.00    13.87     1.13    2.00    3.03    1.11   1.27  72.30

Device:         rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util
xvdap1            0.50    97.00  137.00  332.50  1120.00  1718.00    12.09     1.98    4.23    6.69    3.21   1.70  79.90

Device:         rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util
xvdap1            2.50     0.00  163.50    0.00  1334.00     0.00    16.32     0.63    3.86    3.86    0.00   3.58  58.50

Device:         rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util
xvdap1            1.00   102.00  131.50  167.00  1048.00  1076.00    14.23     0.71    2.39    4.32    0.87   1.80  53.65

Device:         rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util
xvdap1            0.00     0.00   83.00    0.50   642.00     4.00    15.47     0.20    2.46    2.47    0.00   2.33  19.45

我的CPU使用率也不是很高:

%Cpu0  : 34.8 us,  5.2 sy,  0.0 ni, 58.2 id,  0.0 wa,  0.0 hi,  1.0 si,  0.7 st
%Cpu1  :  0.0 us,  0.0 sy,  0.0 ni,100.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
%Cpu2  :  0.0 us,  0.0 sy,  0.0 ni, 99.7 id,  0.0 wa,  0.0 hi,  0.0 si,  0.3 st
%Cpu3  :  6.5 us,  1.7 sy,  0.0 ni,  5.4 id, 85.7 wa,  0.0 hi,  0.0 si,  0.7 st

我该如何处理这个问题?

PS:我们的console.log如下:

07/06/2017 19:41:57 :: Sorted 16 cache queues in 0.000308 seconds
07/06/2017 19:41:57 :: Sorted 2 cache queues in 0.000200 seconds
07/06/2017 19:41:58 :: Sorted 564 cache queues in 0.000762 seconds
07/06/2017 19:41:58 :: Sorted 116 cache queues in 0.000388 seconds
07/06/2017 19:41:59 :: Sorted 820 cache queues in 0.001008 seconds
07/06/2017 19:42:00 :: Sorted 52 cache queues in 0.000354 seconds
07/06/2017 19:42:00 :: Sorted 1 cache queues in 0.000175 seconds
07/06/2017 19:42:01 :: Sorted 491 cache queues in 0.000530 seconds
07/06/2017 19:42:01 :: Sorted 101 cache queues in 0.000431 seconds
07/06/2017 19:42:01 :: Sorted 21 cache queues in 0.000283 seconds
07/06/2017 19:42:02 :: Sorted 1342 cache queues in 0.001589 seconds
07/06/2017 19:42:02 :: Sorted 224 cache queues in 0.000525 seconds
07/06/2017 19:42:02 :: Sorted 67 cache queues in 0.000299 seconds
07/06/2017 19:42:03 :: Sorted 1812 cache queues in 0.002230 seconds
07/06/2017 19:42:03 :: Sorted 360 cache queues in 0.000583 seconds
07/06/2017 19:42:03 :: Sorted 109 cache queues in 0.000430 seconds
07/06/2017 19:42:03 :: Sorted 27 cache queues in 0.000269 seconds
07/06/2017 19:42:04 :: Sorted 1570 cache queues in 0.001632 seconds
07/06/2017 19:42:05 :: Sorted 348 cache queues in 0.000656 seconds

1 个答案:

答案 0 :(得分:0)

Carbon的速率限制是每秒写入的数量。如果您的磁盘尚未饱和,则可以增加此值。请注意,如果将此设置得过高,则如果您使用共享存储(SAN / NAS),则可能会使此系统或其他主机上的其他应用程序匮乏。

您可以在carbon.conf文件中找到此速率限制。设置为:

MAX_UPDATES_PER_SECOND =

为防止系统杀死碳,您可以考虑配置最大缓存大小。这样可以防止碳被杀死,但如果达到极限就会降低指标。限制是缓存中的点数,请参阅度量标准carbon.agents。$ instance.cache.size以确定一个好的值。同样在carbon.conf中:

MAX_CACHE_SIZE =

另请注意,由于Python的全局解释器锁(GIL),碳只能同时在一个核心上运行。您当前的CPU使用情况似乎很好,但如果您的负载增加更多,您可以考虑运行4碳缓存(因为您有4个核心),前面有碳中继,以充分利用您的系统资源。