เบเบฒเบ™เบงเบดเป€เบ„เบฒเบฐ TSDB เปƒเบ™ Prometheus 2

เบเบฒเบ™เบงเบดเป€เบ„เบฒเบฐ TSDB เปƒเบ™ Prometheus 2

เบ–เบฒเบ™เบ‚เปเป‰เบกเบนเบ™เบŠเบธเบ”เป€เบงเบฅเบฒ (TSDB) เปƒเบ™ Prometheus 2 เป€เบ›เบฑเบ™เบ•เบปเบงเบขเปˆเบฒเบ‡เบ—เบตเปˆเบ”เบตเป€เบฅเบตเบ”เบ‚เบญเบ‡เบเบฒเบ™เปเบเป‰เป„เบ‚เบงเบดเบชเบฐเบงเบฐเบเปเบฒเบ—เบตเปˆเบชเบฐเบซเบ™เบญเบ‡เบเบฒเบ™เบ›เบฑเบšเบ›เบธเบ‡เบ—เบตเปˆเบชเปเบฒเบ„เบฑเบ™เบเปˆเบฝเบงเบเบฑเบšเบเบฒเบ™เป€เบเบฑเบšเบฎเบฑเบเบชเบฒ v2 เปƒเบ™ Prometheus 1 เปƒเบ™เปเบ‡เปˆเบ‚เบญเบ‡เบ„เบงเบฒเบกเป„เบงเบเบฒเบ™เบชเบฐเบชเบปเบกเบ‚เปเป‰เบกเบนเบ™, เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เบชเบญเบšเบ–เบฒเบกเปเบฅเบฐเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบ‚เบญเบ‡เบŠเบฑเบšเบžเบฐเบเบฒเบเบญเบ™. เบžเบงเบเป€เบฎเบปเบฒเป„เบ”เป‰เบ›เบฐเบ•เบดเบšเบฑเบ” Prometheus 2 เปƒเบ™ Percona Monitoring and Management (PMM) เปเบฅเบฐเบ‚เป‰เบญเบเป„เบ”เป‰เบกเบตเป‚เบญเบเบฒเบ”เป€เบ‚เบปเป‰เบฒเปƒเบˆเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ‚เบญเบ‡ Prometheus 2 TSDB. เปƒเบ™เบšเบปเบ”เบ„เบงเบฒเบกเบ™เบตเป‰เบ‚เป‰เบฒเบžเบฐเป€เบˆเบปเป‰เบฒเบˆเบฐเป€เบงเบปเป‰เบฒเบเปˆเบฝเบงเบเบฑเบšเบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบšเบ‚เบญเบ‡เบเบฒเบ™เบชเบฑเบ‡เป€เบเบ”เบเบฒเบ™เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰.

เบ›เบฐเบฅเบดเบกเบฒเบ™เบเบฒเบ™เป€เบฎเบฑเบ”เบงเบฝเบเบ‚เบญเบ‡ Prometheus เบชเบฐเป€เบฅเปˆเบ

เบชเปเบฒเบฅเบฑเบšเบœเบนเป‰เบ—เบตเปˆเปƒเบŠเป‰เป€เบžเบทเปˆเบญเบˆเบฑเบ”เบเบฒเบ™เบเบฑเบšเบ–เบฒเบ™เบ‚เปเป‰เบกเบนเบ™เบ—เบตเปˆเบกเบตเบˆเบธเบ”เบ›เบฐเบชเบปเบ‡เบ—เบปเปˆเบงเป„เบ›, เบงเบฝเบเบ‡เบฒเบ™ Prometheus เบ›เบปเบเบเบฐเบ•เบดเปเบกเปˆเบ™เบซเบ™เป‰เบฒเบชเบปเบ™เปƒเบˆเบซเบผเบฒเบ. เบญเบฑเบ”เบ•เบฒเบเบฒเบ™เบชเบฐเบชเบปเบกเบ‚เปเป‰เบกเบนเบ™เบกเบตเปเบ™เบงเป‚เบ™เป‰เบกเบ—เบตเปˆเบˆเบฐเบ„เบปเบ‡เบ—เบตเปˆ: เบ›เบปเบเบเบฐเบ•เบดเปเบฅเป‰เบงเบเบฒเบ™เบšเปเบฅเบดเบเบฒเบ™เบ—เบตเปˆเบ—เปˆเบฒเบ™เบ•เบดเบ”เบ•เบฒเบกเบชเบปเปˆเบ‡เบ›เบฐเบกเบฒเบ™เบ•เบปเบงเป€เบฅเบเบ”เบฝเบงเบเบฑเบ™เบ‚เบญเบ‡ metrics, เปเบฅเบฐเป‚เบ„เบ‡เบชเป‰เบฒเบ‡เบžเบทเป‰เบ™เบ–เบฒเบ™เบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เบ‚เป‰เบญเบ™เบ‚เป‰เบฒเบ‡เบŠเป‰เบฒ.
เบเบฒเบ™เบฎเป‰เบญเบ‡เบ‚เปเบ‚เปเป‰เบกเบนเบ™เบญเบฒเบ”เบˆเบฐเบกเบฒเบˆเบฒเบเปเบซเบผเปˆเบ‡เบ•เปˆเบฒเบ‡เป†. เบšเบฒเบ‡เบชเปˆเบงเบ™เบ‚เบญเบ‡เบžเบงเบเป€เบ‚เบปเบฒ, เป€เบŠเบฑเปˆเบ™: เบเบฒเบ™เปเบˆเป‰เบ‡เป€เบ•เบทเบญเบ™, เบเบฑเบ‡เบžเบฐเบเบฒเบเบฒเบกเบชเปเบฒเบฅเบฑเบšเบกเบนเบ™เบ„เปˆเบฒเบ—เบตเปˆเบซเบกเบฑเป‰เบ™เบ„เบปเบ‡เปเบฅเบฐเบ„เบฒเบ”เบ„เบฐเป€เบ™. เบ„เบปเบ™เบญเบทเปˆเบ™, เป€เบŠเบฑเปˆเบ™เบเบฒเบ™เบฎเป‰เบญเบ‡เบ‚เปเบ‚เบญเบ‡เบœเบนเป‰เปƒเบŠเป‰, เบญเบฒเบ”เบˆเบฐเป€เบฎเบฑเบ”เปƒเบซเป‰เป€เบเบตเบ”เบเบฒเบ™เบฅเบฐเป€เบšเบตเบ”, เป€เบ–เบดเบ‡เปเบกเปˆเบ™เบงเปˆเบฒเบ™เบตเป‰เบšเปเปˆเปเบกเปˆเบ™เบเปเบฅเบฐเบ™เบตเบชเปเบฒเบฅเบฑเบšเบงเบฝเบเบชเปˆเบงเบ™เปƒเบซเบเปˆ.

เป‚เบซเบผเบ”เบเบฒเบ™เบ—เบปเบ”เบชเบญเบš

เปƒเบ™เบฅเบฐเบซเบงเปˆเบฒเบ‡เบเบฒเบ™เบ—เบปเบ”เบชเบญเบš, เบ‚เป‰เบฒเบžเบฐเป€เบˆเบปเป‰เบฒเป„เบ”เป‰เบชเบธเบกเปƒเบชเปˆเบ„เบงเบฒเบกเบชเบฒเบกเบฒเบ”เปƒเบ™เบเบฒเบ™เบชเบฐเบชเบปเบกเบ‚เปเป‰เบกเบนเบ™. เบ‚เป‰เบญเบเป„เบ”เป‰เบ™เบณเปƒเบŠเป‰ Prometheus 2.3.2 เบ—เบตเปˆเบฅเบงเบšเบฅเบงเบกเบ”เป‰เบงเบ Go 1.10.1 (เป€เบ›เบฑเบ™เบชเปˆเบงเบ™เบซเบ™เบถเปˆเบ‡เบ‚เบญเบ‡ PMM 1.14) เปƒเบ™เบเบฒเบ™เบšเปเบฅเบดเบเบฒเบ™ Linode เป‚เบ”เบเปƒเบŠเป‰เบชเบฐเบ„เบฃเบดเบšเบ™เบตเป‰: StackScript. เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบœเบฐเบฅเบดเบ”เบเบฒเบ™เป‚เบซเบผเบ”เบ—เบตเปˆเปเบ—เป‰เบˆเบดเบ‡เบ—เบตเปˆเบชเบธเบ”, เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เบ™เบตเป‰ StackScript เบ‚เป‰เบฒเบžเบฐเป€เบˆเบปเป‰เบฒเป„เบ”เป‰เป€เบ›เบตเบ”เบ•เบปเบงเบซเบผเบฒเบเบ‚เปเป‰ MySQL เบ”เป‰เบงเบเบเบฒเบ™เป‚เบซเบผเบ”เบ—เบตเปˆเปเบ—เป‰เบˆเบดเบ‡ (Sysbench TPC-C Test), เปเบ•เปˆเบฅเบฐเบญเบฑเบ™เบ—เบตเปˆเป€เบฎเบฑเบ”เบ•เบฒเบก 10 Linux / MySQL nodes.
เบเบฒเบ™เบ—เบปเบ”เบชเบญเบšเบ—เบฑเบ‡เบซเบกเบปเบ”เบ•เปเปˆเป„เบ›เบ™เบตเป‰เป„เบ”เป‰เบ–เบทเบเบ›เบฐเบ•เบดเบšเบฑเบ”เบขเบนเปˆเปƒเบ™เป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบเบ‚เบญเบ‡ Linode เบ—เบตเปˆเบกเบตเปเบ›เบ”เปเบเบ™ virtual เปเบฅเบฐ 32 GB เบ‚เบญเบ‡เบซเบ™เปˆเบงเบเบ„เบงเบฒเบกเบˆเปเบฒ, เปเบฅเปˆเบ™ 20 เป‚เบซเบผเบ” simulations เบ•เบดเบ”เบ•เบฒเบกเบเบงเบ”เบเบฒเบชเบญเบ‡เบฎเป‰เบญเบเบ•เบปเบงเบขเปˆเบฒเบ‡ MySQL. เบซเบผเบท, เปƒเบ™เบ„เปเบฒเบชเบฑเบš Prometheus, 800 เป€เบ›เบปเป‰เบฒเบซเบกเบฒเบ, 440 scrapes เบ•เปเปˆเบงเบดเบ™เบฒเบ—เบต, 380 เบžเบฑเบ™เบšเบฑเบ™เบ—เบถเบเบ•เปเปˆเบงเบดเบ™เบฒเบ—เบต, เปเบฅเบฐ 1,7 เบฅเป‰เบฒเบ™เป„เบฅเบเบฐเบเบฒเบ™เป€เบ„เบทเปˆเบญเบ™เป„เบซเบง.

เบเบฒเบ™โ€‹เบญเบญเบโ€‹เปเบšเบš

เบงเบดเบ—เบตเบเบฒเบ™เบ›เบปเบเบเบฐเบ•เบดเบ‚เบญเบ‡เบ–เบฒเบ™เบ‚เปเป‰เบกเบนเบ™เปเบšเบšเบ”เบฑเป‰เบ‡เป€เบ”เบตเบก, เบฅเบงเบกเบ—เบฑเบ‡เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เป‚เบ”เบ Prometheus 1.x, เปเบกเปˆเบ™เป€เบžเบทเปˆเบญ เบˆเบณเบเบฑเบ”เบ„เบงเบฒเบกเบˆเบณ. เบ–เป‰เบฒเบกเบฑเบ™เบšเปเปˆเบžเบฝเบ‡เบžเปเบ—เบตเปˆเบˆเบฐเบˆเบฑเบ”เบเบฒเบ™เบเบฑเบšเบเบฒเบ™เป‚เบซเบผเบ”, เบ—เปˆเบฒเบ™เบˆเบฐเบกเบตเบ›เบฐเบชเบปเบšเบเบฒเบ™ latencies เบชเบนเบ‡เปเบฅเบฐเบเบฒเบ™เบฎเป‰เบญเบ‡เบ‚เปเบšเบฒเบ‡เบขเปˆเบฒเบ‡เบˆเบฐเบฅเบปเป‰เบกเป€เบซเบฅเบง. เบเบฒเบ™เบ™เบณเปƒเบŠเป‰เปœเปˆเบงเบเบ„เบงเบฒเบกเบˆเบณเปƒเบ™ Prometheus 2 เปเบกเปˆเบ™เบชเบฒเบกเบฒเบ”เบเบณเบ™เบปเบ”เบ„เปˆเบฒเป„เบ”เป‰เบœเปˆเบฒเบ™เบ›เบธเปˆเบก storage.tsdb.min-block-duration, เป€เบŠเบดเปˆเบ‡เบเปเบฒเบ™เบปเบ”เป„เบฅเบเบฐเป€เบงเบฅเบฒเบเบฒเบ™เบšเบฑเบ™เบ—เบถเบเบˆเบฐเบ–เบทเบเป€เบเบฑเบšเป„เบงเป‰เปƒเบ™เบซเบ™เปˆเบงเบเบ„เบงเบฒเบกเบˆเปเบฒเบเปˆเบญเบ™เบ—เบตเปˆเบˆเบฐ flushing เบเบฑเบšเปเบœเปˆเบ™ (เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบกเปˆเบ™ 2 เบŠเบปเปˆเบงเป‚เบกเบ‡). เบˆเปเบฒเบ™เบงเบ™เบซเบ™เปˆเบงเบเบ„เบงเบฒเบกเบˆเปเบฒเบ—เบตเปˆเบ•เป‰เบญเบ‡เบเบฒเบ™เบˆเบฐเบ‚เบถเป‰เบ™เบเบฑเบšเบˆเปเบฒเบ™เบงเบ™เบŠเบธเบ”เป€เบงเบฅเบฒ, เบ›เป‰เบฒเบเบเปเบฒเบเบฑเบš, เปเบฅเบฐเบเบฒเบ™เบ‚เบนเบ”เบ—เบตเปˆเป€เบžเบตเปˆเบกเปƒเบชเปˆเบ™เป‰เปเบฒเบ—เบตเปˆเป€เบ‚เบปเป‰เบฒเบกเบฒเบชเบธเบ”เบ—เบด. เปƒเบ™เปเบ‡เปˆเบ‚เบญเบ‡เบžเบทเป‰เบ™เบ—เบตเปˆเบ”เบดเบ”, Prometheus เบกเบตเบˆเบธเบ”เบ›เบฐเบชเบปเบ‡เบ—เบตเปˆเบˆเบฐเปƒเบŠเป‰ 3 bytes เบ•เปเปˆเบšเบฑเบ™เบ—เบถเบ (เบ•เบปเบงเบขเปˆเบฒเบ‡). เปƒเบ™เบ—เบฒเบ‡เบเบปเบ‡เบเบฑเบ™เบ‚เป‰เบฒเบก, เบ„เบงเบฒเบกเบ•เป‰เบญเบ‡เบเบฒเบ™เบ„เบงเบฒเบกเบŠเบปเบ‡เบˆเปเบฒเปเบกเปˆเบ™เบชเบนเบ‡เบเบงเปˆเบฒเบซเบผเบฒเบ.

เป€เบ–เบดเบ‡เปเบกเปˆเบ™เบงเปˆเบฒเบกเบฑเบ™เป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰เบ—เบตเปˆเบˆเบฐเบเปเบฒเบซเบ™เบปเบ”เบ„เปˆเบฒเบ‚เบฐเบซเบ™เบฒเบ”เบšเบฅเบฑเบญเบ, เบกเบฑเบ™เบšเปเปˆเป„เบ”เป‰เปเบ™เบฐเบ™เปเบฒเปƒเบซเป‰เบ•เบฑเป‰เบ‡เบกเบฑเบ™เบ”เป‰เบงเบเบ•เบปเบ™เป€เบญเบ‡, เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบ—เปˆเบฒเบ™เบˆเบถเปˆเบ‡เบ–เบทเบเบšเบฑเบ‡เบ„เบฑเบšเปƒเบซเป‰ Prometheus เบซเบ™เปˆเบงเบเบ„เบงเบฒเบกเบˆเปเบฒเบซเบผเบฒเบเป€เบ—เบปเปˆเบฒเบ—เบตเปˆเบกเบฑเบ™เบ•เป‰เบญเบ‡เบเบฒเบ™เบชเปเบฒเบฅเบฑเบšเบงเบฝเบเบ‡เบฒเบ™เบ‚เบญเบ‡เบ—เปˆเบฒเบ™.
เบ–เป‰เบฒเบšเปเปˆเบกเบตเบ„เบงเบฒเบกเบŠเบปเบ‡เบˆเปเบฒเบžเบฝเบ‡เบžเปเป€เบžเบทเปˆเบญเบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™ metrics เบ—เบตเปˆเป€เบ‚เบปเป‰เบฒเบกเบฒ, Prometheus เบˆเบฐเบญเบญเบเบˆเบฒเบเบ„เบงเบฒเบกเบŠเบปเบ‡เบˆเปเบฒเบซเบผเบท killer OOM เบˆเบฐเป„เบ”เป‰เบฎเบฑเบšเบกเบฑเบ™.
เบเบฒเบ™เป€เบžเบตเปˆเบก swap เป€เบžเบทเปˆเบญเบŠเบฑเบเบŠเป‰เบฒเบเบฒเบ™เบ‚เบฑเบ”เบ‚เป‰เบญเบ‡เป€เบกเบทเปˆเบญ Prometheus เบ‚เบฒเบ”เบ„เบงเบฒเบกเบŠเบปเบ‡เบˆเปเบฒเบšเปเปˆเป„เบ”เป‰เบŠเปˆเบงเบเปเบ—เป‰เป†, เป€เบžเบฒเบฐเบงเปˆเบฒเบเบฒเบ™เปƒเบŠเป‰เบŸเบฑเบ‡เบŠเบฑเบ™เบ™เบตเป‰เป€เบฎเบฑเบ”เปƒเบซเป‰เบเบฒเบ™เบšเปเบฅเบดเป‚เบžเบเบ„เบงเบฒเบกเบˆเปเบฒเบฅเบฐเป€เบšเบตเบ”. เบ‚เป‰เบฒเบžเบฐเป€เบˆเบปเป‰เบฒเบ„เบดเบ”เบงเปˆเบฒเบกเบฑเบ™เป€เบ›เบฑเบ™เบชเบดเปˆเบ‡เบ—เบตเปˆเบ•เป‰เบญเบ‡เป€เบฎเบฑเบ”เบเบฑเบš Go, เบœเบนเป‰เป€เบเบฑเบšเบ‚เบตเป‰เป€เบซเบเบทเป‰เบญเปเบฅเบฐเบงเบดเบ—เบตเบ—เบตเปˆเบกเบฑเบ™เบˆเบฑเบ”เบเบฒเบ™เบเบฑเบšเบเบฒเบ™เปเบฅเบเบ›เปˆเบฝเบ™.
เบงเบดเบ—เบตเบเบฒเบ™เบ—เบตเปˆเบซเบ™เป‰เบฒเบชเบปเบ™เปƒเบˆเบญเบตเบเบญเบฑเบ™เบซเบ™เบถเปˆเบ‡เปเบกเปˆเบ™เบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเบšเบฅเบฑเบญเบเบซเบปเบงเบ—เบตเปˆเบˆเบฐ flushed เบเบฑเบšเปเบœเปˆเบ™เปƒเบ™เป€เบงเบฅเบฒเปƒเบ”เบซเบ™เบถเปˆเบ‡, เปเบ—เบ™เบ—เบตเปˆเบˆเบฐเบ™เบฑเบšเบกเบฑเบ™เบˆเบฒเบเบเบฒเบ™เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ‚เบญเบ‡เบ‚เบฐเบšเบงเบ™เบเบฒเบ™.

เบเบฒเบ™เบงเบดเป€เบ„เบฒเบฐ TSDB เปƒเบ™ Prometheus 2

เบ”เบฑเปˆเบ‡เบ—เบตเปˆเป€เบˆเบปเป‰เบฒเบชเบฒเบกเบฒเบ”เป€เบซเบฑเบ™เป„เบ”เป‰เบˆเบฒเบเบเบฒเบŸ, flushs to disk เป€เบเบตเบ”เบ‚เบถเป‰เบ™เบ—เบธเบเป†เบชเบญเบ‡เบŠเบปเปˆเบงเป‚เบกเบ‡. เบ–เป‰เบฒเบ—เปˆเบฒเบ™เบ›เปˆเบฝเบ™เบžเบฒเบฅเบฒเบกเบดเป€เบ•เบตเป„เบฅเบเบฐเป€เบงเบฅเบฒ min-block เป€เบ›เบฑเบ™เบซเบ™เบถเปˆเบ‡เบŠเบปเปˆเบงเป‚เบกเบ‡, เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™, เบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เบˆเบฐเป€เบเบตเบ”เบ‚เบถเป‰เบ™เบ—เบธเบเป†เบŠเบปเปˆเบงเป‚เบกเบ‡, เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบซเบผเบฑเบ‡เบˆเบฒเบเป€เบ„เบดเปˆเบ‡เบŠเบปเปˆเบงเป‚เบกเบ‡.
เบ–เป‰เบฒเบ—เปˆเบฒเบ™เบ•เป‰เบญเบ‡เบเบฒเบ™เปƒเบŠเป‰เบ™เบตเป‰เปเบฅเบฐเบเบฒเบŸเบญเบทเปˆเบ™เป†เปƒเบ™เบเบฒเบ™เบ•เบดเบ”เบ•เบฑเป‰เบ‡ Prometheus เบ‚เบญเบ‡เบ—เปˆเบฒเบ™, เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบ™เปเบฒเปƒเบŠเป‰เบ™เบตเป‰ เปเบœเบ‡เปœเป‰เบฒเบ›เบฑเบ”. เบกเบฑเบ™เบ–เบทเบเบญเบญเบเปเบšเบšเบชเปเบฒเบฅเบฑเบš PMM เปเบ•เปˆ, เบกเบตเบเบฒเบ™เบ”เบฑเบ”เปเบเป‰เป€เบฅเบฑเบเบ™เป‰เบญเบ, เป€เบซเบกเบฒเบฐเบชเบปเบกเบเบฑเบšเบเบฒเบ™เบ•เบดเบ”เบ•เบฑเป‰เบ‡ Prometheus.
เบžเบงเบเป€เบฎเบปเบฒเบกเบตเบšเบฅเบฑเบญเบเบ—เบตเปˆเบกเบตเบเบฒเบ™เป€เบ„เบทเปˆเบญเบ™เป„เบซเบงเบ—เบตเปˆเป€เบญเบตเป‰เบ™เบงเปˆเบฒ head block เป€เบŠเบดเปˆเบ‡เบ–เบทเบเป€เบเบฑเบšเป„เบงเป‰เปƒเบ™เบ„เบงเบฒเบกเบŠเบปเบ‡เบˆเปเบฒ; เบšเบฅเบฑเบญเบเบ—เบตเปˆเบกเบตเบ‚เปเป‰เบกเบนเบ™เป€เบเบปเปˆเบฒเปเบกเปˆเบ™เบกเบตเบขเบนเปˆเบœเปˆเบฒเบ™ mmap(). เบ™เบตเป‰เบเปเบฒเบˆเบฑเบ”เบ„เบงเบฒเบกเบˆเปเบฒเป€เบ›เบฑเบ™เปƒเบ™เบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒ cache เปเบเบเบ•เปˆเบฒเบ‡เบซเบฒเบ, เปเบ•เปˆเบเบฑเบ‡เบซเบกเบฒเบเบ„เบงเบฒเบกเบงเปˆเบฒเบ—เปˆเบฒเบ™เบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เบ›เปˆเบญเบเปƒเบซเป‰เบžเบทเป‰เบ™เบ—เบตเปˆเบžเบฝเบ‡เบžเปเบชเปเบฒเบฅเบฑเบš cache เบ‚เบญเบ‡เบฅเบฐเบšเบปเบšเบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เบ–เป‰เบฒเบ—เปˆเบฒเบ™เบ•เป‰เบญเบ‡เบเบฒเบ™เบชเบญเบšเบ–เบฒเบกเบ‚เปเป‰เบกเบนเบ™เป€เบเบปเปˆเบฒเบเบงเปˆเบฒเบชเบดเปˆเบ‡เบ—เบตเปˆ head block เบชเบฒเบกเบฒเบ”เบฎเบญเบ‡เบฎเบฑเบš.
เบ™เบตเป‰เบเบฑเบ‡เบซเบกเบฒเบเบ„เบงเบฒเบกเบงเปˆเบฒเบเบฒเบ™เบšเปเบฅเบดเป‚เบžเบเบซเบ™เปˆเบงเบเบ„เบงเบฒเบกเบˆเปเบฒ virtual เบ‚เบญเบ‡ Prometheus เบˆเบฐเป€เบšเบดเปˆเบ‡เบ‚เป‰เบญเบ™เบ‚เป‰เบฒเบ‡เบชเบนเบ‡, เป€เบŠเบดเปˆเบ‡เบšเปเปˆเปเบกเปˆเบ™เบชเบดเปˆเบ‡เบ—เบตเปˆเบ•เป‰เบญเบ‡เบเบฑเบ‡เบงเบปเบ™.

เบเบฒเบ™เบงเบดเป€เบ„เบฒเบฐ TSDB เปƒเบ™ Prometheus 2

เบˆเบธเบ”เบเบฒเบ™เบญเบญเบเปเบšเบšเบ—เบตเปˆเบซเบ™เป‰เบฒเบชเบปเบ™เปƒเบˆเบญเบตเบเบญเบฑเบ™เบซเบ™เบถเปˆเบ‡เปเบกเปˆเบ™เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰ WAL (เบ‚เบฝเบ™เบšเบฑเบ™เบ—เบถเบเบฅเปˆเบงเบ‡เบซเบ™เป‰เบฒ). เบ”เบฑเปˆเบ‡เบ—เบตเปˆเบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เป€เบซเบฑเบ™เป„เบ”เป‰เบˆเบฒเบเป€เบญเบเบฐเบชเบฒเบ™เบเบฒเบ™เป€เบเบฑเบšเบฎเบฑเบเบชเบฒ, Prometheus เปƒเบŠเป‰ WAL เป€เบžเบทเปˆเบญเบซเบผเบตเบเป€เบงเบฑเป‰เบ™เบเบฒเบ™เบ‚เบฑเบ”เบ‚เป‰เบญเบ‡. เบเบปเบ™เป„เบเบชเบฐเป€เบžเบฒเบฐเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบฎเบฑเบšเบ›เบฐเบเบฑเบ™เบ„เบงเบฒเบกเบขเบนเปˆเบฅเบญเบ”เบ‚เบญเบ‡เบ‚เปเป‰เบกเบนเบ™เปเบกเปˆเบ™, เปเบ•เปˆเบซเบ™เป‰เบฒเป€เบชเบเบ”เบฒเบ, เบšเปเปˆเป„เบ”เป‰เบšเบฑเบ™เบ—เบถเบเบ”เบต. Prometheus เบฎเบธเปˆเบ™ 2.3.2 เบฅเป‰เบฒเบ‡ WAL เป„เบ›เปƒเบชเปˆเปเบœเปˆเบ™เบ—เบธเบ 10 เบงเบดเบ™เบฒเบ—เบต เปเบฅเบฐเบ•เบปเบงเป€เบฅเบทเบญเบเบ™เบตเป‰เบšเปเปˆเบชเบฒเบกเบฒเบ”เบเบณเบ™เบปเบ”เบ„เปˆเบฒเป„เบ”เป‰เป‚เบ”เบเบœเบนเป‰เปƒเบŠเป‰.

เบเบฒเบ™เบšเบตเบšเบญเบฑเบ”

Prometheus TSDB เบ–เบทเบเบญเบญเบเปเบšเบšเบกเบฒเบ„เบทเบเบฑเบšเบฎเป‰เบฒเบ™ LSM (Log Structured Merge): เบšเบฅเบฑเบญเบเบซเบปเบงเบ–เบทเบเบ–เบญเบเบฅเบปเบ‡เป€เบ›เบฑเบ™เป„เบฅเบเบฐเป†เปƒเบชเปˆเปเบœเปˆเบ™, เปƒเบ™เบ‚เบฐเบ™เบฐเบ—เบตเปˆเบเบปเบ™เป„เบเบเบฒเบ™เบšเบตเบšเบญเบฑเบ”เบˆเบฐเบฅเบงเบกเบ•เบปเบงเบšเบฅเบฑเบญเบเบซเบผเบฒเบเบญเบฑเบ™เป€เบ‚เบปเป‰เบฒเบเบฑเบ™เป€เบžเบทเปˆเบญเบซเบผเบตเบเป€เบงเบฑเป‰เบ™เบเบฒเบ™เบชเบฐเปเบเบ™เบซเบผเบฒเบเบšเบฅเบฑเบญเบเปƒเบ™เบฅเบฐเบซเบงเปˆเบฒเบ‡เบเบฒเบ™เบชเบญเบšเบ–เบฒเบก. เบ—เบตเปˆเบ™เบตเป‰เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เป€เบšเบดเปˆเบ‡เบˆเปเบฒเบ™เบงเบ™เบ‚เบญเบ‡เบ•เบฑเบ™เบ—เบตเปˆเบ‚เป‰เบฒเบžเบฐเป€เบˆเบปเป‰เบฒเบชเบฑเบ‡เป€เบเบ”เป€เบซเบฑเบ™เปƒเบ™เบฅเบฐเบšเบปเบšเบเบฒเบ™เบ—เบปเบ”เบชเบญเบšเบซเบผเบฑเบ‡เบˆเบฒเบเบกเบทเป‰เบ‚เบญเบ‡เบเบฒเบ™เป‚เบซเบผเบ”.

เบเบฒเบ™เบงเบดเป€เบ„เบฒเบฐ TSDB เปƒเบ™ Prometheus 2

เบ–เป‰เบฒเบ—เปˆเบฒเบ™เบ•เป‰เบญเบ‡เบเบฒเบ™เบฎเบฝเบ™เบฎเบนเป‰เป€เบžเบตเปˆเบกเป€เบ•เบตเบกเบเปˆเบฝเบงเบเบฑเบšเบฎเป‰เบฒเบ™, เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบเบงเบ”เป€เบšเบดเปˆเบ‡เป„เบŸเบฅเปŒ meta.json, เป€เบŠเบดเปˆเบ‡เบกเบตเบ‚เปเป‰เบกเบนเบ™เบเปˆเบฝเบงเบเบฑเบšเบšเบฅเบฑเบญเบเบ—เบตเปˆเบกเบตเบขเบนเปˆเปเบฅเบฐเบงเบดเบ—เบตเบเบฒเบ™เบ—เบตเปˆเบžเบงเบเบกเบฑเบ™เป€เบ›เบฑเบ™.

{
       "ulid": "01CPZDPD1D9R019JS87TPV5MPE",
       "minTime": 1536472800000,
       "maxTime": 1536494400000,
       "stats": {
               "numSamples": 8292128378,
               "numSeries": 1673622,
               "numChunks": 69528220
       },
       "compaction": {
               "level": 2,
               "sources": [
                       "01CPYRY9MS465Y5ETM3SXFBV7X",
                       "01CPYZT0WRJ1JB1P0DP80VY5KJ",
                       "01CPZ6NR4Q3PDP3E57HEH760XS"
               ],
               "parents": [
                       {
                               "ulid": "01CPYRY9MS465Y5ETM3SXFBV7X",
                               "minTime": 1536472800000,
                               "maxTime": 1536480000000
                       },
                       {
                               "ulid": "01CPYZT0WRJ1JB1P0DP80VY5KJ",
                               "minTime": 1536480000000,
                               "maxTime": 1536487200000
                       },
                       {
                               "ulid": "01CPZ6NR4Q3PDP3E57HEH760XS",
                               "minTime": 1536487200000,
                               "maxTime": 1536494400000
                       }
               ]
       },
       "version": 1
}

เบเบฒเบ™เบšเบตเบšเบญเบฑเบ”เปƒเบ™ Prometheus เปเบกเปˆเบ™เบœเบนเบเบกเบฑเบ”เบเบฑเบšเป€เบงเบฅเบฒเบ—เบตเปˆเบซเบปเบงเบ•เบฑเบ™เบ–เบทเบ flushed เบเบฑเบšเปเบœเปˆเบ™. เปƒเบ™เบˆเบธเบ”เบ™เบตเป‰, เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ‡เบฒเบ™เบ”เบฑเปˆเบ‡เบเปˆเบฒเบงเบญเบฒเบ”เบˆเบฐเบ–เบทเบเบ›เบฐเบ•เบดเบšเบฑเบ”.

เบเบฒเบ™เบงเบดเป€เบ„เบฒเบฐ TSDB เปƒเบ™ Prometheus 2

เบ›เบฐเบเบปเบ”เบงเปˆเบฒเบเบฒเบ™เบšเบตเบšเบญเบฑเบ”เบšเปเปˆเบˆเปเบฒเบเบฑเบ”เปƒเบ™เบ—เบฒเบ‡เปƒเบ”เบเปเปˆเบ•เบฒเบก เปเบฅเบฐเบชเบฒเบกเบฒเบ”เป€เบฎเบฑเบ”เปƒเบซเป‰เป€เบเบตเบ”เบเบฒเบ™เปเบ•เบ I/O เบ‚เบญเบ‡เปเบœเปˆเบ™เบ‚เบฐเบซเบ™เบฒเบ”เปƒเบซเบเปˆเปƒเบ™เบฅเบฐเบซเบงเปˆเบฒเบ‡เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”.

เบเบฒเบ™เบงเบดเป€เบ„เบฒเบฐ TSDB เปƒเบ™ Prometheus 2

เบเบฒเบ™เป‚เบซเบผเบ” CPU เป€เบžเบตเปˆเบกเบ‚เบถเป‰เบ™

เบเบฒเบ™เบงเบดเป€เบ„เบฒเบฐ TSDB เปƒเบ™ Prometheus 2

เปเบ™เปˆเบ™เบญเบ™, เบ™เบตเป‰เบกเบตเบœเบปเบ™เบเบฐเบ—เบปเบšเบ—เบฒเบ‡เบฅเบปเบšเบซเบผเบฒเบเบ•เปเปˆเบ„เบงเบฒเบกเป„เบงเบ‚เบญเบ‡เบฅเบฐเบšเบปเบš, เปเบฅเบฐเบเบฑเบ‡เป€เบฎเบฑเบ”เปƒเบซเป‰เป€เบเบตเบ”เบชเบดเปˆเบ‡เบ—เป‰เบฒเบ—เบฒเบเบ—เบตเปˆเบฎเป‰เบฒเบเปเบฎเบ‡เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เป€เบเบฑเบšเบฎเบฑเบเบชเบฒ LSM: เป€เบฎเบฑเบ”เปเบ™เบงเปƒเบ”เป€เบžเบทเปˆเบญเป€เบฎเบฑเบ”เปƒเบซเป‰เบเบฒเบ™เบšเบตเบšเบญเบฑเบ”เป€เบžเบทเปˆเบญเบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบญเบฑเบ”เบ•เบฒเบเบฒเบ™เบฎเป‰เบญเบ‡เบ‚เปเบ—เบตเปˆเบชเบนเบ‡เป‚เบ”เบเบšเปเปˆเป€เบฎเบฑเบ”เปƒเบซเป‰เบ„เปˆเบฒเปƒเบŠเป‰เบˆเปˆเบฒเบเบซเบผเบฒเบเป€เบเบตเบ™เป„เบ›?
เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เบ„เบงเบฒเบกเบŠเบปเบ‡เบˆเปเบฒเปƒเบ™เบ‚เบฐเบšเบงเบ™เบเบฒเบ™ compaction เบเบฑเบ‡เป€เบšเบดเปˆเบ‡เบซเบ™เป‰เบฒเบชเบปเบ™เปƒเบˆเบ”เบต.

เบเบฒเบ™เบงเบดเป€เบ„เบฒเบฐ TSDB เปƒเบ™ Prometheus 2

เบžเบงเบเป€เบฎเบปเบฒเบชเบฒเบกเบฒเบ”เป€เบซเบฑเบ™เป„เบ”เป‰เบงเปˆเบฒ, เบซเบผเบฑเบ‡เบˆเบฒเบเบเบฒเบ™เบšเบตเบšเบญเบฑเบ”, เบซเบ™เปˆเบงเบเบ„เบงเบฒเบกเบˆเปเบฒเบชเปˆเบงเบ™เปƒเบซเบเปˆเบˆเบฐเบ›เปˆเบฝเบ™เบชเบฐเบ–เบฒเบ™เบฐเบˆเบฒเบ Cached เป€เบ›เบฑเบ™เบŸเบฃเบต: เบ™เบตเป‰เบซเบกเบฒเบเบ„เบงเบฒเบกเบงเปˆเบฒเบ‚เปเป‰เบกเบนเบ™เบ—เบตเปˆเบกเบตเบ„เปˆเบฒเบ—เบตเปˆเบกเบตเบ—เปˆเบฒเปเบฎเบ‡เป„เบ”เป‰เบ–เบทเบเป‚เบเบเบเป‰เบฒเบเบญเบญเบเบˆเบฒเบเบšเปˆเบญเบ™เบ™เบฑเป‰เบ™. เบขเบฒเบเบฎเบนเป‰เบขเบฒเบเป€เบซเบฑเบ™เบ–เป‰เบฒเบกเบฑเบ™เปƒเบŠเป‰เบขเบนเปˆเบ™เบตเป‰ fadvice() เบซเบผเบทเบšเบฒเบ‡เป€เบ•เบฑเบเบ™เบดเบเบเบฒเบ™เบซเบผเบธเบ”เบœเปˆเบญเบ™เบญเบทเปˆเบ™เป†, เบซเบผเบทเปเบกเปˆเบ™เบเป‰เบญเบ™เบงเปˆเบฒ cache เป„เบ”เป‰เบ–เบทเบเบ›เบปเบ”เบ›เปˆเบญเบเบˆเบฒเบเบšเบฅเบฑเบญเบเบ—เบตเปˆเบ–เบทเบเบ—เปเบฒเบฅเบฒเบเปƒเบ™เบฅเบฐเบซเบงเปˆเบฒเบ‡เบเบฒเบ™เบšเบตเบšเบญเบฑเบ”?

เบเบฒเบ™เบŸเบทเป‰เบ™เบŸเบนเบซเบผเบฑเบ‡เบˆเบฒเบเบ„เบงเบฒเบกเบฅเบปเป‰เบกเป€เบซเบผเบง

เบเบฒเบ™เบŸเบทเป‰เบ™เบ•เบปเบงเบˆเบฒเบเบ„เบงเบฒเบกเบฅเบปเป‰เบกเป€เบซเบฅเบงเบ•เป‰เบญเบ‡เปƒเบŠเป‰เป€เบงเบฅเบฒ, เปเบฅเบฐเบ”เป‰เบงเบเป€เบซเบ”เบœเบปเบ™เบ—เบตเปˆเบ”เบต. เบชเปเบฒเบฅเบฑเบšเบเบฐเปเบชเบ—เบตเปˆเป€เบ‚เบปเป‰เบฒเบกเบฒเบ‚เบญเบ‡เบซเบ™เบถเปˆเบ‡เบฅเป‰เบฒเบ™เบšเบฑเบ™เบ—เบถเบเบ•เปเปˆเบงเบดเบ™เบฒเบ—เบต, เบ‚เป‰เบญเบเบ•เป‰เบญเบ‡เบฅเปเบ–เป‰เบฒเบ›เบฐเบกเบฒเบ™ 25 เบ™เบฒเบ—เบตเปƒเบ™เบ‚เบฐเบ™เบฐเบ—เบตเปˆเบเบฒเบ™เบŸเบทเป‰เบ™เบ•เบปเบงเป„เบ”เป‰เบ–เบทเบเบ›เบฐเบ•เบดเบšเบฑเบ”เป‚เบ”เบเบ„เปเบฒเบ™เบถเบ‡เป€เบ–เบดเบ‡ SSD drive.

level=info ts=2018-09-13T13:38:14.09650965Z caller=main.go:222 msg="Starting Prometheus" version="(version=2.3.2, branch=v2.3.2, revision=71af5e29e815795e9dd14742ee7725682fa14b7b)"
level=info ts=2018-09-13T13:38:14.096599879Z caller=main.go:223 build_context="(go=go1.10.1, user=Jenkins, date=20180725-08:58:13OURCE)"
level=info ts=2018-09-13T13:38:14.096624109Z caller=main.go:224 host_details="(Linux 4.15.0-32-generic #35-Ubuntu SMP Fri Aug 10 17:58:07 UTC 2018 x86_64 1bee9e9b78cf (none))"
level=info ts=2018-09-13T13:38:14.096641396Z caller=main.go:225 fd_limits="(soft=1048576, hard=1048576)"
level=info ts=2018-09-13T13:38:14.097715256Z caller=web.go:415 component=web msg="Start listening for connections" address=:9090
level=info ts=2018-09-13T13:38:14.097400393Z caller=main.go:533 msg="Starting TSDB ..."
level=info ts=2018-09-13T13:38:14.098718401Z caller=repair.go:39 component=tsdb msg="found healthy block" mint=1536530400000 maxt=1536537600000 ulid=01CQ0FW3ME8Q5W2AN5F9CB7R0R
level=info ts=2018-09-13T13:38:14.100315658Z caller=web.go:467 component=web msg="router prefix" prefix=/prometheus
level=info ts=2018-09-13T13:38:14.101793727Z caller=repair.go:39 component=tsdb msg="found healthy block" mint=1536732000000 maxt=1536753600000 ulid=01CQ78486TNX5QZTBF049PQHSM
level=info ts=2018-09-13T13:38:14.102267346Z caller=repair.go:39 component=tsdb msg="found healthy block" mint=1536537600000 maxt=1536732000000 ulid=01CQ78DE7HSQK0C0F5AZ46YGF0
level=info ts=2018-09-13T13:38:14.102660295Z caller=repair.go:39 component=tsdb msg="found healthy block" mint=1536775200000 maxt=1536782400000 ulid=01CQ7SAT4RM21Y0PT5GNSS146Q
level=info ts=2018-09-13T13:38:14.103075885Z caller=repair.go:39 component=tsdb msg="found healthy block" mint=1536753600000 maxt=1536775200000 ulid=01CQ7SV8WJ3C2W5S3RTAHC2GHB
level=error ts=2018-09-13T14:05:18.208469169Z caller=wal.go:275 component=tsdb msg="WAL corruption detected; truncating" err="unexpected CRC32 checksum d0465484, want 0" file=/opt/prometheus/data/.prom2-data/wal/007357 pos=15504363
level=info ts=2018-09-13T14:05:19.471459777Z caller=main.go:543 msg="TSDB started"
level=info ts=2018-09-13T14:05:19.471604598Z caller=main.go:603 msg="Loading configuration file" filename=/etc/prometheus.yml
level=info ts=2018-09-13T14:05:19.499156711Z caller=main.go:629 msg="Completed loading of configuration file" filename=/etc/prometheus.yml
level=info ts=2018-09-13T14:05:19.499228186Z caller=main.go:502 msg="Server is ready to receive web requests."

เบšเบฑเบ™เบซเบฒเบ•เบปเป‰เบ™เบ•เปเบ‚เบญเบ‡เบ‚เบฐเบšเบงเบ™เบเบฒเบ™เบŸเบทเป‰เบ™เบ•เบปเบงเปเบกเปˆเบ™เบเบฒเบ™เบšเปเบฅเบดเป‚เบžเบเบ„เบงเบฒเบกเบˆเปเบฒเบชเบนเบ‡. เป€เบ–เบดเบ‡เบงเปˆเบฒเบˆเบฐเบกเบตเบ„เบงเบฒเบกเบˆเบดเบ‡เบ—เบตเปˆเบงเปˆเบฒเปƒเบ™เบชเบฐเบ–เบฒเบ™เบฐเบเบฒเบ™เบ›เบปเบเบเบฐเบ•เบด, เป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบเบชเบฒเบกเบฒเบ”เป€เบฎเบฑเบ”เบงเบฝเบเบขเปˆเบฒเบ‡เบซเบกเบฑเป‰เบ™เบ„เบปเบ‡เบเบฑเบšเบˆเปเบฒเบ™เบงเบ™เบซเบ™เปˆเบงเบเบ„เบงเบฒเบกเบˆเปเบฒเบ”เบฝเบงเบเบฑเบ™, เบ–เป‰เบฒเบกเบฑเบ™เบ‚เบฑเบ”เบกเบฑเบ™เบญเบฒเบ”เบˆเบฐเบšเปเปˆเบŸเบทเป‰เบ™เบ•เบปเบงเบเป‰เบญเบ™ OOM. เบเบฒเบ™เปเบเป‰เป„เบ‚เบžเบฝเบ‡เปเบ•เปˆเบ‚เป‰เบฒเบžเบฐเป€เบˆเบปเป‰เบฒเบžเบปเบšเป€เบซเบฑเบ™เปเบกเปˆเบ™เป€เบžเบทเปˆเบญเบ›เบดเบ”เบเบฒเบ™เป€เบเบฑเบšเบ‚เปเป‰เบกเบนเบ™, เป€เบญเบปเบฒเป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบ, เบ›เปˆเบญเบเปƒเบซเป‰เบกเบฑเบ™เบŸเบทเป‰เบ™เบ•เบปเบงเปเบฅเบฐ reboot เบเบฑเบšเบเบฒเบ™เป€เบเบฑเบšเบเปเบฒเบ‚เปเป‰เบกเบนเบ™เป€เบ›เบตเบ”.

เบญเบธเปˆเบ™โ€‹เป€เบ„เบทเปˆเบญเบ‡

เบžเบถเบ”เบ•เบดเบเปเบฒเบญเบทเปˆเบ™เบ—เบตเปˆเบ„เบงเบ™เบˆเบทเปˆเป„เบงเป‰เปƒเบ™เบฅเบฐเบซเบงเปˆเบฒเบ‡เบเบฒเบ™เบญเบปเบšเบญเบธเปˆเบ™เปเบกเปˆเบ™เบ„เบงเบฒเบกเบชเปเบฒเบžเบฑเบ™เบฅเบฐเบซเบงเปˆเบฒเบ‡เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ•เปˆเปเบฒเปเบฅเบฐเบเบฒเบ™เบšเปเบฅเบดเป‚เบžเบเบŠเบฑเบšเบžเบฐเบเบฒเบเบญเบ™เบชเบนเบ‡เบ—เบฑเบ™เบ—เบตเบซเบผเบฑเบ‡เบˆเบฒเบเบเบฒเบ™เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™. เปƒเบ™เบฅเบฐเบซเบงเปˆเบฒเบ‡เบšเบฒเบ‡เบญเบฑเบ™, เปเบ•เปˆเบšเปเปˆเปเบกเปˆเบ™เบเบฒเบ™เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ—เบฑเบ‡เบซเบกเบปเบ”, เบ‚เป‰เบฒเบžเบฐเป€เบˆเบปเป‰เบฒเป„เบ”เป‰เบชเบฑเบ‡เป€เบเบ”เป€เบซเบฑเบ™เบเบฒเบ™เป‚เบซเบผเบ”เบ—เบตเปˆเบฎเป‰เบฒเบเปเบฎเบ‡เบขเบนเปˆเปƒเบ™ CPU เปเบฅเบฐเบซเบ™เปˆเบงเบเบ„เบงเบฒเบกเบˆเปเบฒ.

เบเบฒเบ™เบงเบดเป€เบ„เบฒเบฐ TSDB เปƒเบ™ Prometheus 2

เบเบฒเบ™เบงเบดเป€เบ„เบฒเบฐ TSDB เปƒเบ™ Prometheus 2

เบŠเปˆเบญเบ‡เบซเบงเปˆเบฒเบ‡เปƒเบ™เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เบซเบ™เปˆเบงเบเบ„เบงเบฒเบกเบˆเปเบฒเบŠเบตเป‰เปƒเบซเป‰เป€เบซเบฑเบ™เบงเปˆเบฒ Prometheus เบšเปเปˆเบชเบฒเบกเบฒเบ”เบเปเบฒเบ™เบปเบ”เบเบฒเบ™เป€เบเบฑเบšเบเปเบฒเบ—เบฑเบ‡เบซเบกเบปเบ”เบ•เบฑเป‰เบ‡เปเบ•เปˆเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™, เปเบฅเบฐเบ‚เปเป‰เบกเบนเบ™เบšเบฒเบ‡เบขเปˆเบฒเบ‡เบˆเบฐเบชเบนเบ™เป€เบชเบเป„เบ›.
เบ‚เป‰เบฒโ€‹เบžเบฐโ€‹เป€เบˆเบปเป‰เบฒโ€‹เบšเปเปˆโ€‹เป„เบ”เป‰โ€‹เบ„เบดเบ”โ€‹เบญเบญเบโ€‹เป€เบซเบ”โ€‹เบœเบปเบ™โ€‹เบ—เบตเปˆโ€‹เปเบ™เปˆโ€‹เบ™เบญเบ™โ€‹เบชเปเบฒโ€‹เบฅเบฑเบšโ€‹เบเบฒเบ™โ€‹เป‚เบซเบผเบ” CPU เปเบฅเบฐโ€‹เบซเบ™เปˆเบงเบโ€‹เบ„เบงเบฒเบกโ€‹เบˆเปเบฒโ€‹เบชเบนเบ‡โ€‹. เบ‚เป‰เบฒเบžเบฐเป€เบˆเบปเป‰เบฒเบชเบปเบ‡เปƒเบชเบงเปˆเบฒเบ™เบตเป‰เปเบกเปˆเบ™เบเป‰เบญเบ™เบเบฒเบ™เบชเป‰เบฒเบ‡เบŠเบธเบ”เป€เบงเบฅเบฒเปƒเบซเบกเปˆเปƒเบ™เบšเบฅเบฑเบญเบเบซเบปเบงเบ—เบตเปˆเบกเบตเบ„เบงเบฒเบกเบ–เบตเปˆเบชเบนเบ‡.

เบเบฒเบ™เป‚เบซเบผเบ” CPU เป€เบžเบตเปˆเบกเบ‚เบถเป‰เบ™

เบ™เบญเบเป€เบซเบ™เบทเบญเบˆเบฒเบเบเบฒเบ™เบšเบตเบšเบญเบฑเบ”, เป€เบŠเบดเปˆเบ‡เบชเป‰เบฒเบ‡เบเบฒเบ™เป‚เบซเบผเบ” I/O เบชเบนเบ‡เบžเปเบชเบปเบกเบ„เบงเบ™, เบ‚เป‰เบญเบเบชเบฑเบ‡เป€เบเบ”เป€เบซเบฑเบ™เบเบฒเบ™เป‚เบซเบผเบ” CPU เบ—เบตเปˆเบฎเบธเบ™เปเบฎเบ‡เปƒเบ™เบ—เบธเบเป†เบชเบญเบ‡เบ™เบฒเบ—เบต. เบเบฒเบ™เบฅเบฐเป€เบšเบตเบ”เบˆเบฐเบเบฒเบงเบ‚เบถเป‰เบ™เป€เบกเบทเปˆเบญเบเบฐเปเบชเบ›เป‰เบญเบ™เป€เบ‚เบปเป‰เบฒเบชเบนเบ‡ เปเบฅเบฐเบ›เบฐเบเบปเบ”เบงเปˆเบฒเป€เบเบตเบ”เบˆเบฒเบเบ•เบปเบงเป€เบเบฑเบšเบ‚เบตเป‰เป€เบซเบเบทเป‰เบญเบ‚เบญเบ‡ Go, เบขเปˆเบฒเบ‡เปœเป‰เบญเบเบกเบตเปเบเบ™เบšเบฒเบ‡เบญเบฑเบ™เบ–เบทเบเป‚เบซเบผเบ”เป€เบ•เบฑเบก.

เบเบฒเบ™เบงเบดเป€เบ„เบฒเบฐ TSDB เปƒเบ™ Prometheus 2

เบเบฒเบ™เบงเบดเป€เบ„เบฒเบฐ TSDB เปƒเบ™ Prometheus 2

เบเบฒเบ™เป‚เบ”เบ”เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เบšเปเปˆเบชเปเบฒเบ„เบฑเบ™เบซเบผเบฒเบ. เบกเบฑเบ™เบ›เบฐเบเบปเบ”เบงเปˆเบฒเปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเบชเบดเปˆเบ‡เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เป€เบเบตเบ”เบ‚เบถเป‰เบ™, เบˆเบธเบ”เป€เบ‚เบปเป‰เบฒเปเบฅเบฐเบ•เบปเบงเบŠเบตเป‰เบงเบฑเบ”เบžเบฒเบเปƒเบ™เบ‚เบญเบ‡ Prometheus เบเบฒเบเป€เบ›เบฑเบ™เบšเปเปˆเบชเบฒเบกเบฒเบ”เปƒเบŠเป‰เป„เบ”เป‰, เป€เบŠเบดเปˆเบ‡เบเปเปˆเปƒเบซเป‰เป€เบเบตเบ”เบŠเปˆเบญเบ‡เบซเบงเปˆเบฒเบ‡เบ‚เปเป‰เบกเบนเบ™เปƒเบ™เบฅเบฐเบซเบงเปˆเบฒเบ‡เป„เบฅเบเบฐเป€เบงเบฅเบฒเบ”เบฝเบงเบเบฑเบ™เบ™เบตเป‰.

เบเบฒเบ™เบงเบดเป€เบ„เบฒเบฐ TSDB เปƒเบ™ Prometheus 2

เบ™เบญเบเบ™เบฑเป‰เบ™เบ—เปˆเบฒเบ™เบเบฑเบ‡เบชเบฒเบกเบฒเบ”เบชเบฑเบ‡เป€เบเบ”เป€เบซเบฑเบ™เบงเปˆเบฒเบœเบนเป‰เบชเบปเปˆเบ‡เบญเบญเบ Prometheus เบ›เบดเบ”เบฅเบปเบ‡เป€เบ›เบฑเบ™เป€เบงเบฅเบฒเบซเบ™เบถเปˆเบ‡เบงเบดเบ™เบฒเบ—เบต.

เบเบฒเบ™เบงเบดเป€เบ„เบฒเบฐ TSDB เปƒเบ™ Prometheus 2

เบžเบงเบเป€เบฎเบปเบฒเบชเบฒเบกเบฒเบ”เบชเบฑเบ‡เป€เบเบ”เป€เบซเบฑเบ™เบ„เบงเบฒเบกเบเปˆเบฝเบงเบ‚เป‰เบญเบ‡เบเบฑเบšเบเบฒเบ™เป€เบเบฑเบšเบ‚เบตเป‰เป€เบซเบเบทเป‰เบญ (GC).

เบเบฒเบ™เบงเบดเป€เบ„เบฒเบฐ TSDB เปƒเบ™ Prometheus 2

เบชเบฐเบซเบฅเบธเบš

TSDB เปƒเบ™ Prometheus 2 เปเบกเปˆเบ™เป„เบง, เบชเบฒเบกเบฒเบ”เบˆเบฑเบ”เบเบฒเบ™เบเบฑเบšเบŠเบธเบ”เป€เบงเบฅเบฒเบซเบผเบฒเบเบฅเป‰เบฒเบ™เปเบฅเบฐเปƒเบ™เป€เบงเบฅเบฒเบ”เบฝเบงเบเบฑเบ™เบซเบผเบฒเบเบžเบฑเบ™เบšเบฑเบ™เบ—เบถเบเบ•เปเปˆเบงเบดเบ™เบฒเบ—เบตเป‚เบ”เบเปƒเบŠเป‰เบฎเบฒเบ”เปเบงเบ—เบตเปˆเบ‚เป‰เบญเบ™เบ‚เป‰เบฒเบ‡เบ›เบฒเบ™เบเบฒเบ‡. เบเบฒเบ™เบ™เบณเปƒเบŠเป‰ CPU เปเบฅเบฐ Disk I/O เปเบกเปˆเบ™เบกเบตเบ„เบงเบฒเบกเบ›เบฐเบ—เบฑเบšเปƒเบˆเป€เบŠเบฑเปˆเบ™เบเบฑเบ™. เบ•เบปเบงเบขเปˆเบฒเบ‡เบ‚เบญเบ‡เบ‚เป‰เบญเบเบชเบฐเปเบ”เบ‡เปƒเบซเป‰เป€เบซเบฑเบ™เป€เบ–เบดเบ‡ 200 metrics เบ•เปเปˆเบงเบดเบ™เบฒเบ—เบตเบ•เปเปˆเบซเบผเบฑเบเบ—เบตเปˆเปƒเบŠเป‰.

เป€เบžเบทเปˆเบญเบงเบฒเบ‡เปเบœเบ™เบเบฒเบ™เบ‚เบฐเบซเบเบฒเบ, เบ—เปˆเบฒเบ™เบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เบˆเบทเปˆเบˆเปเบฒเบเปˆเบฝเบงเบเบฑเบšเบˆเปเบฒเบ™เบงเบ™เบ„เบงเบฒเบกเบŠเบปเบ‡เบˆเปเบฒเบ—เบตเปˆเบžเบฝเบ‡เบžเป, เปเบฅเบฐเบ™เบตเป‰เบˆเบฐเบ•เป‰เบญเบ‡เป€เบ›เบฑเบ™เบ„เบงเบฒเบกเบŠเบปเบ‡เบˆเปเบฒเบ—เบตเปˆเปเบ—เป‰เบˆเบดเบ‡. เบˆเปเบฒเบ™เบงเบ™เบซเบ™เปˆเบงเบเบ„เบงเบฒเบกเบˆเปเบฒเบ—เบตเปˆเปƒเบŠเป‰เบ—เบตเปˆเบ‚เป‰เบญเบเบชเบฑเบ‡เป€เบเบ”เป€เบซเบฑเบ™เปเบกเปˆเบ™เบ›เบฐเบกเบฒเบ™ 5 GB เบ•เปเปˆ 100 เบšเบฑเบ™เบ—เบถเบเบ•เปเปˆเบงเบดเบ™เบฒเบ—เบตเบ‚เบญเบ‡เบเบฐเปเบชเบ—เบตเปˆเป€เบ‚เบปเป‰เบฒเบกเบฒ, เป€เบŠเบดเปˆเบ‡เบฎเปˆเบงเบกเบเบฑเบ™เบเบฑเบš cache เบ‚เบญเบ‡เบฅเบฐเบšเบปเบšเบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เปƒเบซเป‰เบ›เบฐเบกเบฒเบ™ 000 GB เบ‚เบญเบ‡เบซเบ™เปˆเบงเบเบ„เบงเบฒเบกเบˆเปเบฒเบ—เบตเปˆเบ–เบทเบเบ„เบญเบšเบ„เบญเบ‡.

เปเบ™เปˆเบ™เบญเบ™, เบเบฑเบ‡เบกเบตเบซเบผเบฒเบเบงเบฝเบเบ—เบตเปˆเบ•เป‰เบญเบ‡เป€เบฎเบฑเบ”เป€เบžเบทเปˆเบญเบฎเบฑเบเบชเบฒ CPU เปเบฅเบฐ I/O spikes เบ‚เบญเบ‡เปเบœเปˆเบ™, เปเบฅเบฐเบ™เบตเป‰เบšเปเปˆเปเบ›เบเปƒเบˆเบ—เบตเปˆเบˆเบฐเบžเบดเบˆเบฒเบฅเบฐเบ™เบฒเบงเบดเบ—เบตเบเบฒเบ™เบซเบ™เบธเปˆเบก TSDB Prometheus 2 เบ›เบฝเบšเบ—เบฝเบšเบเบฑเบš InnoDB, TokuDB, RocksDB, WiredTiger, เปเบ•เปˆเบžเบงเบเป€เบ‚เบปเบฒเบ—เบฑเบ‡เบซเบกเบปเบ”เบกเบตเบ„เบงเบฒเบกเบ„เป‰เบฒเบเบ„เบทเบเบฑเบ™. เบšเบฑเบ™เบซเบฒเปƒเบ™เบ•เบปเป‰เบ™เป†เบ‚เบญเบ‡เบงเบปเบ‡เบˆเบญเบ™เบŠเบตเบงเบดเบ”เบ‚เบญเบ‡เบžเบงเบเป€เบ‚เบปเบฒ.

เปเบซเบผเปˆเบ‡เบ‚เปเป‰เบกเบนเบ™: www.habr.com

เป€เบžเบตเปˆเบกเบ„เบงเบฒเบกเบ„เบดเบ”เป€เบซเบฑเบ™