为什么我的碳调查过程会占据越来越多的内存



我正在使用石墨 钻石来监视数百个服务器。我发现每20小时被OOM-killer杀死碳储存。起初,我以为可能是由于我的磁盘相对慢,因为它是SATA磁盘,而不是SSD。但是,当我使用iOstat检查磁盘的UTIT时,只有大约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

碳的每秒写入多少比例。如果您的磁盘尚未饱和,则可以增加此功能。请注意,如果您设置该设置过高,则如果您在共享存储(SAN/NAS(上,则可以在此系统或其他主机上饿死其他应用程序。

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

MAX_UPDATES_PER_SECOND =

为了防止系统杀死碳,您可以考虑配置最大缓存尺寸。这将防止碳被杀死,但如果达到极限,它将删除指标。限制是缓存中的点数,请参见公制碳。代理。也在carbon.conf中:

MAX_CACHE_SIZE =

还请记住,由于Python的全球解释器锁(GIL(,Carbon只能同时在一个核心上运行。您当前的CPU使用情况似乎不错,但是如果您的负载增加更多,则可以考虑运行4个碳缓存(因为您有4个核心(,并在前面有一个碳列层以充分利用您的系统资源。

最新更新