Bioyino - เปเบˆเบเบขเบฒเบ, เบ‚เบฐเบซเบเบฒเบเบเบฒเบ™เบฅเบงเบšเบฅเบงเบกเบ•เบปเบงเบŠเบตเป‰เบงเบฑเบ”

เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบ—เปˆเบฒเบ™เป€เบเบฑเบšเบเปเบฒ metrics. เบ”เบฑเปˆเบ‡เบ—เบตเปˆเบžเบงเบเป€เบฎเบปเบฒเป€เบ›เบฑเบ™. เบžเบงเบเป€เบฎเบปเบฒเบเบฑเบ‡เป€เบเบฑเบšเบเปเบฒ metrics. เปเบ™เปˆเบ™เบญเบ™, เบกเบตเบ„เบงเบฒเบกเบˆเปเบฒเป€เบ›เบฑเบ™เบชเปเบฒเบฅเบฑเบšเบ—เบธเบฅเบฐเบเบดเบ”. เบกเบทเป‰เบ™เบตเป‰เบžเบงเบเป€เบฎเบปเบฒเบˆเบฐเป€เบงเบปเป‰เบฒเบเปˆเบฝเบงเบเบฑเบšเบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบ—เปเบฒเบญเบดเบ”เบ‚เบญเบ‡เบฅเบฐเบšเบปเบšเบเบฒเบ™เบ•เบดเบ”เบ•เบฒเบกเบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒ - เป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบเบเบฒเบ™เบฅเบงเบšเบฅเบงเบกเบ—เบตเปˆเป€เบ‚เบปเป‰เบฒเบเบฑเบ™เป„เบ”เป‰ statsd เบŠเบตเบงเบฐเบžเบฒเบš, เป€เบ›เบฑเบ™เบซเบเบฑเบ‡เบžเบงเบเป€เบฎเบปเบฒเบ‚เบฝเบ™เบกเบฑเบ™เปเบฅเบฐเป€เบ›เบฑเบ™เบซเบเบฑเบ‡เบžเบงเบเป€เบฎเบปเบฒเบ›เบฐเบ–เบดเป‰เบก brubeck.

Bioyino - เปเบˆเบเบขเบฒเบ, เบ‚เบฐเบซเบเบฒเบเบเบฒเบ™เบฅเบงเบšเบฅเบงเบกเบ•เบปเบงเบŠเบตเป‰เบงเบฑเบ”

เบˆเบฒเบเบšเบปเบ”เบ„เบงเบฒเบกเบ—เบตเปˆเบœเปˆเบฒเบ™เบกเบฒเบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒ (1, 2) เบ—เปˆเบฒเบ™โ€‹เบชเบฒโ€‹เบกเบฒเบ”โ€‹เบŠเบญเบโ€‹เบซเบฒโ€‹เบงเปˆเบฒโ€‹เบˆเบปเบ™โ€‹เบโ€‹เปˆโ€‹เบงเบฒโ€‹เบšเบฒเบ‡โ€‹เบ„เบฑเป‰เบ‡โ€‹เบžเบงเบโ€‹เป€เบฎเบปเบฒโ€‹เป€เบเบฑเบšโ€‹เบเปเบฒโ€‹เป€เบ„เบทเปˆเบญเบ‡โ€‹เบซเบกเบฒเบโ€‹เป‚เบ”เบโ€‹เบ™เปเบฒโ€‹เปƒเบŠเป‰โ€‹ เบšเบฃเบนเป€เบšเบ. เบกเบฑเบ™เบ–เบทเบเบ‚เบฝเบ™เป„เบงเป‰เปƒเบ™ C. เบˆเบฒเบเบˆเบธเบ”เบ‚เบญเบ‡เบฅเบฐเบซเบฑเบ”, เบกเบฑเบ™เบ‡เปˆเบฒเบเบ”เบฒเบเบ„เบทเบเบฑเบšเบชเบฝเบš (เบ™เบตเป‰เป€เบ›เบฑเบ™เบชเบดเปˆเบ‡เบชเปเบฒเบ„เบฑเบ™เป€เบกเบทเปˆเบญเบ—เปˆเบฒเบ™เบ•เป‰เบญเบ‡เบเบฒเบ™เบ›เบฐเบเบญเบšเบชเปˆเบงเบ™) เปเบฅเบฐเบชเปเบฒเบ„เบฑเบ™เบ—เบตเปˆเบชเบธเบ”, เบกเบฑเบ™เบˆเบฑเบ”เบเบฒเบ™เบเบฑเบšเบ›เบฐเบฅเบดเบกเบฒเบ™เบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒ 2 เบฅเป‰เบฒเบ™เปเบกเบฑเบ”เบ•เปเปˆเบงเบดเบ™เบฒเบ—เบต (MPS) เบชเบนเบ‡เบชเบธเบ”. เป‚เบ”เบเบšเปเปˆเบกเบตเบšเบฑเบ™เบซเบฒเปƒเบ”เป†. เป€เบญเบเบฐเบชเบฒเบ™เบฅเบฐเบšเบธเบงเปˆเบฒเบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™ 4 เบฅเป‰เบฒเบ™ MPS เบ—เบตเปˆเบกเบตเบฎเบนเบšเบ”เบฒเบง. เบ™เบตเป‰เบซเบกเบฒเบเบ„เบงเบฒเบกเบงเปˆเบฒเบ—เปˆเบฒเบ™เบˆเบฐเป„เบ”เป‰เบฎเบฑเบšเบ•เบปเบงเป€เบฅเบเบ—เบตเปˆเบฅเบฐเบšเบธเป„เบงเป‰เบ–เป‰เบฒเบ—เปˆเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเป€เบ„เบทเบญเบ‚เปˆเบฒเบเบขเปˆเบฒเบ‡เบ–เบทเบเบ•เป‰เบญเบ‡เปƒเบ™ Linux. (เบžเบงเบโ€‹เป€เบฎเบปเบฒโ€‹เบšเปเปˆโ€‹เบฎเบนเป‰โ€‹เบงเปˆเบฒโ€‹เบ—เปˆเบฒเบ™โ€‹เบˆเบฐโ€‹เป„เบ”เป‰โ€‹เบฎเบฑเบš MPS เบซเบผเบฒเบโ€‹เบ›เบฒเบ™โ€‹เปƒเบ”โ€‹เบ–เป‰เบฒโ€‹เบซเบฒเบโ€‹เบงเปˆเบฒโ€‹เบ—เปˆเบฒเบ™โ€‹เบญเบญเบโ€‹เบˆเบฒเบโ€‹เป€เบ„เบทเบญโ€‹เบ‚เปˆเบฒเบโ€‹เบ”เบฑเปˆเบ‡โ€‹เบ—เบตเปˆโ€‹เป€เบ›เบฑเบ™). เป€เบ–เบดเบ‡เบงเปˆเบฒเบˆเบฐเบกเบตเบ‚เปเป‰เป„เบ”เป‰เบ›เบฝเบšเป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰, เบžเบงเบเป€เบฎเบปเบฒเบกเบตเบเบฒเบ™เบฎเป‰เบญเบ‡เบ—เบธเบเบ—เบตเปˆเบฎเป‰เบฒเบเปเบฎเบ‡เบซเบผเบฒเบเบเปˆเบฝเบงเบเบฑเบš brubeck.

เบฎเบฝเบเบฎเป‰เบญเบ‡ 1. Github, เบœเบนเป‰เบžเบฑเบ”เบ—เบฐเบ™เบฒเป‚เบ„เบ‡เบเบฒเบ™, เบขเบธเบ”เป€เบŠเบปเบฒเบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบกเบฑเบ™: เป€เบœเบตเบเปเบœเปˆ patches เปเบฅเบฐเบเบฒเบ™เปเบเป‰เป„เบ‚, เบเบญเบกเบฎเบฑเบšเบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒเปเบฅเบฐ (เบšเปเปˆเบžเบฝเบ‡เปเบ•เปˆเบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒ) PR. เปƒเบ™เบชเบญเบ‡เบชเบฒเบกเป€เบ”เบทเบญเบ™เบœเปˆเบฒเบ™เบกเบฒ (เบšเบฒเบ‡เบšเปˆเบญเบ™เปเบ•เปˆเป€เบ”เบทเบญเบ™เบเบธเบกเบžเบฒ-เบกเบตเบ™เบฒ 2018), เบเบดเบ”เบˆเบฐเบเปเบฒเป„เบ”เป‰เบเบฑเบšเบ„เบทเบ™เบกเบฒ, เปเบ•เปˆเบเปˆเบญเบ™เบ™เบฑเป‰เบ™เป€เบเบทเบญเบš 2 เบ›เบตเบ‚เบญเบ‡เบ„เบงเบฒเบกเบชเบฐเบซเบ‡เบปเบšเบขเปˆเบฒเบ‡เบชเบปเบกเบšเบนเบ™. เบ™เบญเบเบˆเบฒเบเบ™เบฑเป‰เบ™, เป‚เบ„เบ‡เบเบฒเบ™เปเบกเปˆเบ™เป„เบ”เป‰เบ–เบทเบเบžเบฑเบ”เบ—เบฐเบ™เบฒ เบชเปเบฒเบฅเบฑเบšเบ„เบงเบฒเบกเบ•เป‰เบญเบ‡เบเบฒเบ™เบ‚เบญเบ‡ Gihub เบžเบฒเบเปƒเบ™, เป€เบŠเบดเปˆเบ‡เบชเบฒเบกเบฒเบ”เบเบฒเบเป€เบ›เบฑเบ™เบญเบธเบ›เบฐเบชเบฑเบเบ—เบตเปˆเบฎเป‰เบฒเบเปเบฎเบ‡เบ•เปเปˆเบเบฒเบ™เบ™เปเบฒเบชเบฐเป€เบซเบ™เบตเบฅเบฑเบเบชเบฐเบ™เบฐเปƒเบซเบกเปˆ.

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

Bioyino - เปเบˆเบเบขเบฒเบ, เบ‚เบฐเบซเบเบฒเบเบเบฒเบ™เบฅเบงเบšเบฅเบงเบกเบ•เบปเบงเบŠเบตเป‰เบงเบฑเบ”
เบ”เบฑเปˆเบ‡เบ—เบตเปˆเป€เบ„เบตเบเป€เบ›เบฑเบ™

Bioyino - เปเบˆเบเบขเบฒเบ, เบ‚เบฐเบซเบเบฒเบเบเบฒเบ™เบฅเบงเบšเบฅเบงเบกเบ•เบปเบงเบŠเบตเป‰เบงเบฑเบ”
เบกเบฑเบ™เบ„เบงเบ™เบˆเบฐเป€เบ›เบฑเบ™เปเบ™เบงเปƒเบ”

เบชเปเบฒเบฅเบฑเบšเป€เบซเบ”เบœเบปเบ™เบ”เบฝเบงเบเบฑเบ™, เป‚เบ”เบเบ—เบปเปˆเบงเป„เบ›เปเบฅเป‰เบง, เบˆเปเบฒเบ™เบงเบ™เปเบกเปˆเบ™เบ–เบทเบเบ„เบดเบ”เป„เบฅเปˆเบšเปเปˆเบ–เบทเบเบ•เป‰เบญเบ‡. เป€เบžเบตเปˆเบกเบ‚เปเป‰เบšเบปเบเบžเปˆเบญเบ‡เบ—เบตเปˆเบ™เบตเป‰เบ”เป‰เบงเบเบเบฒเบ™เป€เบฅเบทเปˆเบญเบ™เบฅเบญเบ 32-bit, เป€เบŠเบดเปˆเบ‡เป‚เบ”เบเบ—เบปเปˆเบงเป„เบ›เปเบฅเป‰เบงเบˆเบฐเบชเบปเปˆเบ‡เป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบเป„เบ›เบซเบฒ segfault เป€เบกเบทเปˆเบญเป„เบ”เป‰เบฎเบฑเบš metric เป€เบšเบดเปˆเบ‡เบ„เบทเบงเปˆเบฒเบšเปเปˆเบกเบตเบ„เบงเบฒเบกเบœเบดเบ”, เปเบฅเบฐเบ—เบธเบเบชเบดเปˆเบ‡เบ—เบธเบเบขเปˆเบฒเบ‡เบเบฒเบเป€เบ›เบฑเบ™เบชเบดเปˆเบ‡เบ—เบตเปˆเบเบดเปˆเบ‡เปƒเบซเบเปˆ. เปเบกเบ‡เป„เบกเป‰, เป‚เบ”เบเบงเบดเบ—เบตเบ—เบฒเบ‡เบเบฒเบ™, เบšเปเปˆเป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เปเบเป‰เป„เบ‚.

เปเบฅเบฐเบชเบธเบ”เบ—เป‰เบฒเบ เบญเป‰เบฒเบ‡เบชเบดเบ” X. เปƒเบ™เป€เบงเบฅเบฒเบ‚เบฝเบ™, เบžเบงเบเป€เบฎเบปเบฒเบžเป‰เบญเบกเบ—เบตเปˆเบˆเบฐเบ™เปเบฒเบชเบฐเป€เบซเบ™เบตเปƒเบซเป‰เบ—เบฑเบ‡เบซเบกเบปเบ” 14 เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบชเบฐเบ–เบดเบ•เบดเบ—เบตเปˆเป€เบฎเบฑเบ”เบงเบฝเบเบซเบผเบฒเบเบซเบผเบทเบซเบ™เป‰เบญเบเบ—เบตเปˆเบžเบงเบเป€เบฎเบปเบฒเบชเบฒเบกเบฒเบ”เบŠเบญเบเบซเบฒเป„เบ”เป‰. เบฅเบญเบ‡เบ™เบถเบเบžเบฒเบšเป€เบšเบดเปˆเบ‡เบงเปˆเบฒเบšเบฒเบ‡เป‚เบ„เบ‡เบฅเปˆเบฒเบ‡เบžเบทเป‰เบ™เบ–เบฒเบ™เบญเบฑเบ™เบ”เบฝเบงเป„เบ”เป‰เป€เบ•เบตเบšเปƒเบซเบเปˆเบ‚เบถเป‰เบ™เบซเบผเบฒเบเบˆเบปเบ™เบเบฒเบ™เบฎเบฑเบšเป€เบญเบปเบฒ 4 เบฅเป‰เบฒเบ™ MPS เปเบกเปˆเบ™เบšเปเปˆเบžเบฝเบ‡เบžเปเบญเบตเบเบ•เปเปˆเป„เบ›. เบซเบผเบทเป€เบ–เบดเบ‡เปเบกเปˆเบ™เบงเปˆเบฒเบกเบฑเบ™เบเบฑเบ‡เบšเปเปˆเบ—เบฑเบ™เป€เบ•เบตเบšเปƒเบซเบเปˆ, เปเบ•เปˆเบเบฒเบ™เบงเบฑเบ”เปเบ—เบเปเบกเปˆเบ™เบกเบตเบ„เบงเบฒเบก เบชเบณ เบ„เบฑเบ™เบซเบผเบฒเบ เบชเบณ เบฅเบฑเบšเบ—เปˆเบฒเบ™, เป€เบ–เบดเบ‡เปเบกเปˆเบ™เบงเปˆเบฒเบเบฒเบ™เบซเบผเบธเบ”เบ™เป‰ เบณ เบ•เบฒเบ™ 2-3 เบ™เบฒเบ—เบตเปƒเบ™เบ•เบฒเบ•เบฐเบฅเบฒเบ‡เบชเบฒเบกเบฒเบ”เบเบฒเบเป€เบ›เบฑเบ™เบ„เบงเบฒเบก เบชเบณ เบ„เบฑเบ™เปเบฅเบฐเป€เบฎเบฑเบ”เปƒเบซเป‰เป€เบเบตเบ”เบ„เบงเบฒเบกเป€เบ„เบฑเปˆเบ‡เบ•เบถเบ‡เบ—เบตเปˆเบšเปเปˆเบชเบฒเบกเบฒเบ”เบ„เบงเบšเบ„เบธเบกเป„เบ”เป‰เปƒเบ™เบšเบฑเบ™เบ”เบฒเบœเบนเป‰เบˆเบฑเบ”เบเบฒเบ™. เป€เบ™เบทเปˆเบญเบ‡เบˆเบฒเบเบเบฒเบ™เบ›เบดเปˆเบ™เบ›เบปเบงเบญเบฒเบเบฒเบ™เบŠเบถเบกเป€เบชเบปเป‰เบฒเปเบกเปˆเบ™เป€เบ›เบฑเบ™เบงเบฝเบเบ‡เบฒเบ™เบ—เบตเปˆเบ‚เบญเบšเปƒเบˆ, เบเบฒเบ™เปเบเป‰เป„เบ‚เบ”เป‰เบฒเบ™เบงเบดเบŠเบฒเบเบฒเบ™เปเบกเปˆเบ™เบˆเปเบฒเป€เบ›เบฑเบ™.

เบ›เบฐเบเบฒเบ™เบ—เปเบฒเบญเบดเบ”, เบ„เบงเบฒเบกเบญเบปเบ”เบ—เบปเบ™เบ„เบงเบฒเบกเบœเบดเบ”, เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบšเบฑเบ™เบซเบฒเบเบฐเบ—เบฑเบ™เบซเบฑเบ™เปƒเบ™เป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบเบšเปเปˆเป€เบฎเบฑเบ”เปƒเบซเป‰เป€เบ›เบฑเบ™ apocalypse zombie psychiatric เปƒเบ™เบซเป‰เบญเบ‡เบเบฒเบ™. เบญเบฑเบ™เบ—เบตเบชเบญเบ‡, เบเบฒเบ™เบ‚เบฐเบซเบเบฒเบเบ‚เบฐเบซเบ™เบฒเบ”เป€เบžเบทเปˆเบญเปƒเบซเป‰เบชเบฒเบกเบฒเบ”เบเบญเบกเบฎเบฑเบšเป„เบ”เป‰เบซเบผเบฒเบเบเบงเปˆเบฒ 4 เบฅเป‰เบฒเบ™ MPS, เป‚เบ”เบเบšเปเปˆเบกเบตเบเบฒเบ™เบ‚เบธเบ”เบ„เบปเป‰เบ™เป€เบฅเบดเบเป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™ stack เป€เบ„เบทเบญเบ‚เปˆเบฒเบ Linux เปเบฅเบฐเบเบฒเบ™เบ‚เบฐเบซเบเบฒเบเบ•เบปเบงเบขเปˆเบฒเบ‡เบชเบฐเบซเบ‡เบปเบš "เบเบงเป‰เบฒเบ‡" เบเบฑเบšเบ‚เบฐเบซเบ™เบฒเบ”เบ—เบตเปˆเบ•เป‰เบญเบ‡เบเบฒเบ™.

เป€เบ™เบทเปˆเบญเบ‡เบˆเบฒเบเบžเบงเบเป€เบฎเบปเบฒเบกเบตเบžเบทเป‰เบ™เบ—เบตเปˆเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ›เบฑเบšเบ‚เบฐเบซเบ™เบฒเบ”, เบžเบงเบเป€เบฎเบปเบฒเบ•เบฑเบ”เบชเบดเบ™เปƒเบˆเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ”เป‰เบงเบเบ„เบงเบฒเบกเบ—เบปเบ™เบ—เบฒเบ™เบ•เปเปˆเบ„เบงเบฒเบกเบœเบดเบ”เบžเบฒเบ”. "เบเปˆเบฝเบงเบเบฑเบš! เบ„เบงเบฒเบกโ€‹เบ—เบปเบ™โ€‹เบ—เบฒเบ™โ€‹เบ„เบงเบฒเบกโ€‹เบœเบดเบ”โ€‹! เบกเบฑเบ™เบ‡เปˆเบฒเบเบ”เบฒเบ, เบžเบงเบเป€เบฎเบปเบฒเบชเบฒเบกเบฒเบ”เป€เบฎเบฑเบ”เป„เบ”เป‰,โ€ เบžเบงเบเป€เบฎเบปเบฒเบ„เบดเบ”เปเบฅเบฐเป€เบ›เบตเบ”เบ•เบปเบง 2 เป€เบŠเบตเบŸเป€เบงเบต, เบเบปเบเบชเปเบฒเป€เบ™เบปเบฒเบ‚เบญเบ‡ brubeck เปƒเบ™เปเบ•เปˆเบฅเบฐ. เป€เบžเบทเปˆเบญเป€เบฎเบฑเบ”เบชเบดเปˆเบ‡เบ™เบตเป‰, เบžเบงเบเป€เบฎเบปเบฒเบ•เป‰เบญเบ‡เบ„เบฑเบ”เบฅเบญเบเบเบฒเบ™เบˆเบฐเบฅเบฒเบˆเบญเบ™เบ—เบตเปˆเบกเบต metrics เบเบฑเบšเป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบเบ—เบฑเบ‡เบชเบญเบ‡เปเบฅเบฐเปเบกเป‰เบเบฐเบ—เบฑเป‰เบ‡เบ‚เบฝเบ™เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ™เบตเป‰ เบœเบปเบ™เบ›เบฐเป‚เบซเบเบ”เบ‚เบฐเบซเบ™เบฒเบ”เบ™เป‰เบญเบ. เบžเบงเบโ€‹เป€เบฎเบปเบฒโ€‹เป„เบ”เป‰โ€‹เปเบเป‰โ€‹เป„เบ‚โ€‹เบšเบฑเบ™โ€‹เบซเบฒโ€‹เบ„เบงเบฒเบกโ€‹เบ—เบปเบ™โ€‹เบ—เบฒเบ™โ€‹เบ„เบงเบฒเบกโ€‹เบœเบดเบ”โ€‹เบเบฑเบšโ€‹เบ™เบตเป‰โ€‹, เปเบ•เปˆ ... เบšเปเปˆโ€‹เป„เบ”เป‰โ€‹เบ”เบตโ€‹เบซเบผเบฒเบโ€‹. เปƒเบ™เบ•เบญเบ™เบ—เปเบฒเบญเบดเบ”เบ—เบธเบเบชเบดเปˆเบ‡เบ—เบธเบเบขเปˆเบฒเบ‡เป€เบšเบดเปˆเบ‡เบ„เบทเบงเปˆเบฒเบ”เบต: เปเบ•เปˆเบฅเบฐ brubeck เบฅเบงเบšเบฅเบงเบกเบชเบฐเบšเบฑเบšเบ‚เบญเบ‡เบ•เบปเบ™เป€เบญเบ‡, เบ‚เบฝเบ™เบ‚เปเป‰เบกเบนเบ™เปƒเบชเปˆ Graphite เบ—เบธเบเป† 30 เบงเบดเบ™เบฒเบ—เบต, เบ‚เบฝเบ™เบ—เบฑเบšเป„เบฅเบเบฐเป€เบเบปเปˆเบฒ (เบญเบฑเบ™เบ™เบตเป‰เปเบกเปˆเบ™เป€เบฎเบฑเบ”เบขเบนเปˆเบ”เป‰เบฒเบ™ Graphite). เบ–เป‰เบฒเป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบเบซเบ™เบถเปˆเบ‡เบฅเบปเป‰เบกเป€เบซเบฅเบงเบขเปˆเบฒเบ‡เบเบฐเบ—เบฑเบ™เบซเบฑเบ™, เบžเบงเบเป€เบฎเบปเบฒเบชเบฐเป€เบซเบกเบตเบกเบตเบญเบฑเบ™เบ—เบตเบชเบญเบ‡เบ—เบตเปˆเบกเบตเบชเปเบฒเป€เบ™เบปเบฒเบ‚เบญเบ‡เบ•เบปเบ™เป€เบญเบ‡เบ‚เบญเบ‡เบ‚เปเป‰เบกเบนเบ™เบฅเบงเบก. เปเบ•เปˆเบ™เบตเป‰เปเบกเปˆเบ™เบšเบฑเบ™เบซเบฒ: เบ–เป‰เบฒเป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบเบฅเบปเป‰เบกเป€เบซเบฅเบง, "saw" เบ›เบฒเบเบปเบ”เบขเบนเปˆเปƒเบ™เบเบฒเบŸ. เบ™เบตเป‰เปเบกเปˆเบ™เป€เบ™เบทเปˆเบญเบ‡เบกเบฒเบˆเบฒเบเบ„เบงเบฒเบกเบˆเบดเบ‡เบ—เบตเปˆเบงเปˆเบฒเบŠเปˆเบงเบ‡เป€เบงเบฅเบฒ 30 เบงเบดเบ™เบฒเบ—เบตเบ‚เบญเบ‡ brubeck เบšเปเปˆเป„เบ”เป‰เบ–เบทเบ synchronized, เปเบฅเบฐเปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเป€เบเบตเบ”เบญเบธเบ›เบฐเบ•เบดเป€เบซเบ”เบซเบ™เบถเปˆเบ‡เปƒเบ™เบ™เบฑเป‰เบ™เบšเปเปˆเป„เบ”เป‰เบ–เบทเบเบ‚เบฝเบ™เบ—เบฑเบš. เป€เบกเบทเปˆเบญเป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบเบ—เบตเบชเบญเบ‡เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™, เบชเบดเปˆเบ‡เบ”เบฝเบงเบเบฑเบ™เป€เบเบตเบ”เบ‚เบถเป‰เบ™. เบ‚เป‰เบญเบ™เบ‚เป‰เบฒเบ‡เบ—เบปเบ™เบ—เบฒเบ™, เปเบ•เปˆเบ‚เป‰เบญเบเบ•เป‰เบญเบ‡เบเบฒเบ™เบ—เบตเปˆเบ”เบตเบเบงเปˆเบฒ! เบšเบฑเบ™เบซเบฒโ€‹เบเบฒเบ™โ€‹เบ‚เบฐโ€‹เบซเบเบฒเบโ€‹เบ•เบปเบงโ€‹เบเบฑเบ‡โ€‹เบšเปเปˆโ€‹เบ—เบฑเบ™โ€‹เปเบปเบ”โ€‹เป„เบ›. metrics เบ—เบฑเบ‡เบซเบกเบปเบ”เบเบฑเบ‡ "เบšเบดเบ™" เบเบฑเบšเป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบเบ”เบฝเบง, เปเบฅเบฐเบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบžเบงเบเป€เบฎเบปเบฒเป„เบ”เป‰เบ–เบทเบเบˆเปเบฒเบเบฑเบ”เบžเบฝเบ‡เปเบ•เปˆ 2-4 เบฅเป‰เบฒเบ™ MPS, เบ‚เบถเป‰เบ™เบเบฑเบšเบฅเบฐเบ”เบฑเบšเป€เบ„เบทเบญเบ‚เปˆเบฒเบ.

เบ–เป‰เบฒเบ—เปˆเบฒเบ™เบ„เบดเบ”เป€เบฅเบฑเบเบ™เป‰เบญเบเบเปˆเบฝเบงเบเบฑเบšเบšเบฑเบ™เบซเบฒเปเบฅเบฐเปƒเบ™เป€เบงเบฅเบฒเบ”เบฝเบงเบเบฑเบ™เบ‚เบธเบ”เบซเบดเบกเบฐเบ”เป‰เบงเบเบŠเป‰เบงเบ™, เบ„เบงเบฒเบกเบ„เบดเบ”เบ—เบตเปˆเบŠเบฑเบ”เป€เบˆเบ™เบ•เปเปˆเป„เบ›เบ™เบตเป‰เบญเบฒเบ”เบˆเบฐเบกเบฒเบฎเบญเบ”เปƒเบˆ: เบ—เปˆเบฒเบ™เบ•เป‰เบญเบ‡เบเบฒเบ™ statsd เบ—เบตเปˆเบชเบฒเบกเบฒเบ”เป€เบฎเบฑเบ”เบงเบฝเบเปƒเบ™เบฎเบนเบšเปเบšเบšเปเบˆเบเบขเบฒเบ. เบ™เบฑเป‰เบ™เปเบกเปˆเบ™, เบซเบ™เบถเปˆเบ‡เบ—เบตเปˆเบ›เบฐเบ•เบดเบšเบฑเบ” synchronization เบฅเบฐเบซเบงเปˆเบฒเบ‡ nodes เปƒเบ™เป€เบงเบฅเบฒเปเบฅเบฐ metrics. "เปเบ™เปˆเบ™เบญเบ™, เบเบฒเบ™เปเบเป‰เป„เบ‚เบ”เบฑเปˆเบ‡เบเปˆเบฒเบงเบญเบฒเบ”เบˆเบฐเบกเบตเบขเบนเปˆเปเบฅเป‰เบง," เบžเบงเบเป€เบฎเบปเบฒเป€เบงเบปเป‰เบฒเปเบฅเบฐเป„เบ›เบซเบฒ Googleโ€ฆ. เปเบฅเบฐเบžเบงเบเป€เบ‚เบปเบฒเบšเปเปˆเบžเบปเบšเบซเบเบฑเบ‡เป€เบฅเบตเบ. เบซเบผเบฑเบ‡เบˆเบฒเบเบœเปˆเบฒเบ™เป€เบญเบเบฐเบชเบฒเบ™เบชเปเบฒเบฅเบฑเบš statsd เบ—เบตเปˆเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™ (https://github.com/etsy/statsd/wiki#server-implementations เบกเบฒเบฎเบญเบ”เบงเบฑเบ™เบ—เบต 11.12.2017 เบ—เบฑเบ™เบงเบฒ XNUMX), เบžเบงเบเป€เบฎเบปเบฒเบžเบปเบšเบงเปˆเบฒเบšเปเปˆเบกเบตเบซเบเบฑเบ‡เปเบ—เป‰เป†. เบ›เบฒเบเบปเบ”เบ‚เบทเป‰เบ™, เบ—เบฑเบ‡เบ™เบฑเบเบžเบฑเบ”เบ—เบฐเบ™เบฒเปเบฅเบฐเบœเบนเป‰เปƒเบŠเป‰เบ‚เบญเบ‡เบงเบดเบ—เบตเปเบเป‰เป„เบ‚เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เบเบฑเบ‡เบšเปเปˆเบ—เบฑเบ™เป„เบ”เป‰เบžเบปเบšเบเบฑเบš metrics เบซเบผเบฒเบเบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™, เบ–เป‰เบฒเบšเปเปˆเบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบžเบงเบเป€เบ‚เบปเบฒเบˆเบฐเบกเบฒเบเบฑเบšเบšเบฒเบ‡เบชเบดเปˆเบ‡เบšเบฒเบ‡เบขเปˆเบฒเบ‡เปเบ™เปˆเบ™เบญเบ™.

เปเบฅเบฐเบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™เบžเบงเบเป€เบฎเบปเบฒเบˆเบทเปˆเบˆเปเบฒเบเปˆเบฝเบงเบเบฑเบš "toy" statsd - bioyino, เป€เบŠเบดเปˆเบ‡เป„เบ”เป‰เบ–เบทเบเบ‚เบฝเบ™เบขเบนเปˆเบ—เบตเปˆ Just for Fun hackathon (เบŠเบทเปˆเบ‚เบญเบ‡เป‚เบ„เบ‡เบเบฒเบ™เปเบกเปˆเบ™เบชเป‰เบฒเบ‡เบ‚เบถเป‰เบ™เป‚เบ”เบ script เบเปˆเบญเบ™เบ—เบตเปˆเบˆเบฐเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ‚เบญเบ‡ hackathon) เปเบฅเบฐเบฎเบฑเบšเบฎเบนเป‰เบงเปˆเบฒเบžเบงเบเป€เบฎเบปเบฒเบ•เป‰เบญเบ‡เบเบฒเบ™ statsd เบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒเบ”เปˆเบงเบ™. เป€เบžเบทเปˆเบญโ€‹เบซเบเบฑเบ‡?

  • เป€เบ™เบทเปˆเบญเบ‡เบˆเบฒเบเบงเปˆเบฒเบกเบต statsd clones เบซเบ™เป‰เบญเบเป€เบเบตเบ™เป„เบ›เปƒเบ™เป‚เบฅเบ,
  • เป€เบ™เบทเปˆเบญเบ‡เบˆเบฒเบเบงเปˆเบฒเบกเบฑเบ™เป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰เบ—เบตเปˆเบˆเบฐเบชเบฐเบซเบ™เบญเบ‡เบ„เบงเบฒเบกเบ•เป‰เบญเบ‡เบเบฒเบ™เบซเบผเบทเปƒเบเป‰เบŠเบดเบ”เบเบฑเบšเบ„เบงเบฒเบกเบ—เบปเบ™เบ—เบฒเบ™เปเบฅเบฐเบ„เบงเบฒเบกเบœเบดเบ”เบ—เบตเปˆเบ•เป‰เบญเบ‡เบเบฒเบ™ (เบฅเบงเบกเบ—เบฑเบ‡ synchronizing metrics เบฅเบงเบกเบฅเบฐเบซเบงเปˆเบฒเบ‡เป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบเปเบฅเบฐเบเบฒเบ™เปเบเป‰เป„เบ‚เบšเบฑเบ™เบซเบฒเบเบฒเบ™เบชเบปเปˆเบ‡เบ‚เปเป‰เบ‚เบฑเบ”เปเบเปˆเบ‡),
  • เป€เบ™เบทเปˆเบญเบ‡เบˆเบฒเบเบงเปˆเบฒเบกเบฑเบ™เป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰เบ—เบตเปˆเบˆเบฐเบ„เบดเบ”เป„เบฅเปˆ metrics เป„เบ”เป‰เบขเปˆเบฒเบ‡เบ–เบทเบเบ•เป‰เบญเบ‡เบเปˆเบงเบฒ brubeck,
  • เป€เบžเบฒเบฐเบงเปˆเบฒเป€เบˆเบปเป‰เบฒเบชเบฒเบกเบฒเบ”เป€เบเบฑเบšเบเบณเบชเบฐเบ–เบดเบ•เบดเบ—เบตเปˆเบฅเบฐเบญเบฝเบ”เบเบงเปˆเบฒเบ™เบฑเป‰เบ™เป€เบญเบ‡, เป€เบŠเบดเปˆเบ‡เบ•เบปเบงเบˆเบดเบ‡เปเบฅเป‰เบง brubeck เบšเปเปˆเป„เบ”เป‰เบชเบฐเปœเบญเบ‡เปƒเบซเป‰เบžเบงเบเป€เบฎเบปเบฒ,
  • เบเป‰เบญเบ™เบงเปˆเบฒเบ‚เป‰เบญเบเบกเบตเป‚เบญเบเบฒเบ”เบ—เบตเปˆเบˆเบฐเบ‚เบฝเบ™เป‚เบ›เปเบเบผเบกเบซเป‰เบญเบ‡เบ—เบปเบ”เบฅเบญเบ‡เบ—เบตเปˆเบกเบตเบ‚เบฐ เปœเบฒเบ” เบ—เบตเปˆเปเบˆเบเบขเบฒเบเบ‚เบญเบ‡ hyperperformance เบ‚เบญเบ‡เบ‚เป‰เบญเบเป€เบญเบ‡, เป€เบŠเบดเปˆเบ‡เบˆเบฐเบšเปเปˆเบชเบปเบกเบšเบนเบ™เปเบšเบšเบชเบฐเบ–เบฒเบ›เบฑเบ”เบ•เบฐเบเบฐ เบเบณ เบ‚เบญเบ‡ hyperfor เบ—เบตเปˆเบ„เป‰เบฒเบเบ„เบทเบเบฑเบ™เบญเบทเปˆเบ™ ... เบ”เบต, เบ™เบฑเป‰เบ™เปเบกเปˆเบ™เบกเบฑเบ™.

เบˆเบฐเบ‚เบฝเบ™เบซเบเบฑเบ‡เปเบ”เปˆ? เปเบ™เปˆเบ™เบญเบ™, เปƒเบ™ Rust. เป€เบ›เบฑเบ™เบซเบเบฑเบ‡?

  • เป€เบ™เบทเปˆเบญเบ‡เบˆเบฒเบเบงเปˆเบฒเบกเบตเบเบฒเบ™เปเบเป‰เป„เบ‚เบ•เบปเป‰เบ™เปเบšเบšเปเบฅเป‰เบง,
  • เป€เบ™เบทเปˆเบญเบ‡เบˆเบฒเบเบงเปˆเบฒเบœเบนเป‰เบ‚เบฝเบ™เบ‚เบญเบ‡เบšเบปเบ”เบ„เบงเบฒเบกเป„เบ”เป‰เบฎเบนเป‰เบˆเบฑเบ Rust เปƒเบ™เป€เบงเบฅเบฒเบ™เบฑเป‰เบ™เปเบฅเบฐเบกเบตเบ„เบงเบฒเบกเบเบฐเบ•เบทเบฅเบทเบฅเบปเป‰เบ™เบ—เบตเปˆเบˆเบฐเบ‚เบฝเบ™เบšเบฒเบ‡เบชเบดเปˆเบ‡เบšเบฒเบ‡เบขเปˆเบฒเบ‡เปƒเบ™เบกเบฑเบ™เป€เบžเบทเปˆเบญเบเบฒเบ™เบœเบฐเบฅเบดเบ”เป‚เบ”เบเบกเบตเป‚เบญเบเบฒเบ”เบ—เบตเปˆเบˆเบฐเป€เบญเบปเบฒเบกเบฑเบ™เบขเบนเปˆเปƒเบ™เปเบซเบผเปˆเบ‡เป€เบ›เบตเบ”,
  • เป€เบ™เบทเปˆเบญเบ‡เบˆเบฒเบเบงเปˆเบฒเบžเบฒเบชเบฒเบ—เบตเปˆเบกเบต GC เบšเปเปˆเป€เบซเบกเบฒเบฐเบชเบปเบกเบชเปเบฒเบฅเบฑเบšเบžเบงเบเป€เบฎเบปเบฒเป€เบ™เบทเปˆเบญเบ‡เบˆเบฒเบเบฅเบฑเบเบชเบฐเบ™เบฐเบ‚เบญเบ‡เบเบฒเบ™เบˆเบฐเบฅเบฒเบˆเบญเบ™เบ—เบตเปˆเป„เบ”เป‰เบฎเบฑเบš (เป€เบเบทเบญเบšเปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเปเบ—เป‰เบˆเบดเบ‡) เปเบฅเบฐเบเบฒเบ™เบขเบธเบ” GC เปเบกเปˆเบ™เบšเปเปˆเบชเบฒเบกเบฒเบ”เบเบญเบกเบฎเบฑเบšเป„เบ”เป‰,
  • เป€เบžเบฒเบฐเบงเปˆเบฒเบ—เปˆเบฒเบ™เบ•เป‰เบญเบ‡เบเบฒเบ™เบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบชเบนเบ‡เบชเบธเบ”เบ—เบฝเบšเบเบฑเบš C
  • เป€เบ™เบทเปˆเบญเบ‡เบˆเบฒเบเบงเปˆเบฒ Rust เปƒเบซเป‰เบžเบงเบเป€เบฎเบปเบฒเบกเบตเบ„เบงเบฒเบกเบšเปเปˆเบซเบ™เป‰เบฒเบขเป‰เบฒเบ™เบเบปเบง, เปเบฅเบฐเบ–เป‰เบฒเบžเบงเบเป€เบฎเบปเบฒเป€เบฅเบตเปˆเบกเบ‚เบฝเบ™เบกเบฑเบ™เบขเบนเปˆเปƒเบ™ C / C ++, เบžเบงเบเป€เบฎเบปเบฒเบˆเบฐเบกเบตเบˆเบธเบ”เบญเปˆเบญเบ™เบซเบผเบฒเบ, buffer overflows, เบชเบฐเบžเบฒเบšเป€เบŠเบทเป‰เบญเบŠเบฒเบ”เปเบฅเบฐเบ„เปเบฒเบชเบฑเบšเบ•เปˆเบฒเบ‡เป†เบ—เบตเปˆเบซเบ™เป‰เบฒเบขเป‰เบฒเบ™เบเบงเปˆเบฒ brubeck.

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

เป€เบงเบฅเบฒเบœเปˆเบฒเบ™เป„เบ›...

เบชเบธเบ”เบ—เป‰เบฒเบ, เบซเบผเบฑเบ‡เบˆเบฒเบเบ„เบงเบฒเบกเบžเบฐเบเบฒเบเบฒเบกเบ—เบตเปˆเบฅเบปเป‰เบกเป€เบซเบฅเบงเบซเบผเบฒเบเบ„เบฑเป‰เบ‡, เบฎเบธเปˆเบ™เบ—เปเบฒเบญเบดเบ”เบ—เบตเปˆเป€เบฎเบฑเบ”เบงเบฝเบเปเบกเปˆเบ™เบเบฝเบกเบžเป‰เบญเบก. เป€เบเบตเบ”โ€‹เบซเบเบฑเบ‡โ€‹เบ‚เบถเป‰เบ™? เบ™เบตเป‰เปเบกเปˆเบ™เบชเบดเปˆเบ‡เบ—เบตเปˆเป€เบเบตเบ”เบ‚เบถเป‰เบ™.

Bioyino - เปเบˆเบเบขเบฒเบ, เบ‚เบฐเบซเบเบฒเบเบเบฒเบ™เบฅเบงเบšเบฅเบงเบกเบ•เบปเบงเบŠเบตเป‰เบงเบฑเบ”

เปเบ•เปˆเบฅเบฐ node เป„เบ”เป‰เบฎเบฑเบšเบŠเบธเบ” metrics เบ‚เบญเบ‡เบ•เบปเบ™เป€เบญเบ‡เปเบฅเบฐเบชเบฐเบชเบปเบกเปƒเบซเป‰เป€เบ‚เบปเบฒเป€เบˆเบปเป‰เบฒ, เปเบฅเบฐเบšเปเปˆเบฅเบงเบก metrics เบชเปเบฒเบฅเบฑเบšเบ›เบฐเป€เบžเบ”เบ—เบตเปˆเบŠเบธเบ”เป€เบ•เบฑเบกเบ‚เบญเบ‡เบžเบงเบเป€เบ‚เบปเบฒเปเบกเปˆเบ™เบ•เป‰เบญเบ‡เบเบฒเบ™เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบฅเบงเบšเบฅเบงเบกเบชเบธเบ”เบ—เป‰เบฒเบ. เป‚เบซเบ™เบ”เปเบกเปˆเบ™เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบเบฑเบ™เป‚เบ”เบเบšเบฒเบ‡เบ›เบฐเป€เบžเบ”เบ‚เบญเบ‡เป‚เบ›เป‚เบ•เบ„เบญเบ™เบฅเบฑเบญเบเบ—เบตเปˆเปเบˆเบเบขเบฒเบ, เป€เบŠเบดเปˆเบ‡เบŠเปˆเบงเบเปƒเบซเป‰เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เป€เบฅเบทเบญเบเป€เบญเบปเบฒเบซเบ™เบถเปˆเบ‡เปƒเบ™เบžเบงเบเบกเบฑเบ™เบžเบฝเบ‡เปเบ•เปˆเบซเบ™เบถเปˆเบ‡ (เบ—เบตเปˆเบ™เบตเป‰เบžเบงเบเป€เบฎเบปเบฒเบฎเป‰เบญเบ‡เป„เบซเป‰) เบ—เบตเปˆเบชเบปเบกเบ„เบงเบ™เบ—เบตเปˆเบˆเบฐเบชเบปเปˆเบ‡ metrics เป„เบ›เบซเบฒเบœเบนเป‰เบเบดเปˆเบ‡เปƒเบซเบเปˆ. เบšเบฑเบ™เบซเบฒเบ™เบตเป‰เบเบณเบฅเบฑเบ‡เบ–เบทเบเปเบเป‰เป„เบ‚เป‚เบ”เบ เบเบปเบ‡เบชเบธเบ™, เปเบ•เปˆเปƒเบ™เบญเบฐเบ™เบฒเบ„เบปเบ”เบ„เบงเบฒเบกเบ—เบฐเป€เบเบตเบ—เบฐเบเบฒเบ™เบ‚เบญเบ‡เบœเบนเป‰เบ‚เบฝเบ™เบ‚เบฐเบซเบเบฒเบเป„เบ› เป€เบ›เบฑเบ™เป€เบˆเบปเป‰เบฒเบ‚เบญเบ‡ เบเบฒเบ™เบˆเบฑเบ”เบ•เบฑเป‰เบ‡เบ›เบฐเบ•เบดเบšเบฑเบ” Raft, เบšเปˆเบญเบ™เบ—เบตเปˆเบกเบตเบ„เปˆเบฒเบ„เบงเบ™เบ—เบตเปˆเบชเบธเบ”, เปเบ™เปˆเบ™เบญเบ™, เป€เบ›เบฑเบ™เบˆเบธเบ”เบœเบนเป‰เบ™เปเบฒเบ—เบตเปˆเป€เบซเบฑเบ™เบ”เบตเบ™เปเบฒ. เบ™เบญเบเป€เบซเบ™เบทเบญเบˆเบฒเบเบเบฒเบ™เป€เบ›เบฑเบ™เป€เบญเบเบฐเบชเบฑเบ™เบเบฑเบ™, nodes เบ‚เป‰เบญเบ™เบ‚เป‰เบฒเบ‡เป€เบฅเบทเป‰เบญเบเป† (เบซเบ™เบถเปˆเบ‡เบ„เบฑเป‰เบ‡เบ•เปเปˆเบงเบดเบ™เบฒเบ—เบตเป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™) เบชเบปเปˆเบ‡เป„เบ›เบซเบฒเบ›เบฐเป€เบ—เบ”เป€เบžเบทเปˆเบญเบ™เบšเป‰เบฒเบ™เบ‚เบญเบ‡เบžเบงเบเป€เบ‚เบปเบฒเบžเบฒเบเบชเปˆเบงเบ™เป€เบซเบผเบปเปˆเบฒเบ™เบฑเป‰เบ™เบ‚เบญเบ‡ metrics เบ—เบตเปˆเบฅเบงเบšเบฅเบงเบกเบฅเปˆเบงเบ‡เบซเบ™เป‰เบฒเบ—เบตเปˆเบžเบงเบเป€เบ‚เบปเบฒเบˆเบฑเบ”เบเบฒเบ™เป€เบเบฑเบšเบเปเบฒเปƒเบ™เบงเบดเบ™เบฒเบ—เบตเบ™เบฑเป‰เบ™. เบกเบฑเบ™เบชเบฐเปเบ”เบ‡เปƒเบซเป‰เป€เบซเบฑเบ™เบงเปˆเบฒเบเบฒเบ™เบ›เบฑเบšเบ‚เบฐเบซเบ™เบฒเบ”เปเบฅเบฐเบ„เบงเบฒเบกเบ—เบปเบ™เบ—เบฒเบ™เบ•เปเปˆเบ„เบงเบฒเบกเบœเบดเบ”เบ–เบทเบเบฎเบฑเบเบชเบฒเป„เบงเป‰ - เปเบ•เปˆเบฅเบฐ node เบเบฑเบ‡เบ–เบทเบŠเบธเบ” metrics เป€เบ•เบฑเบก, เปเบ•เปˆ metrics เป„เบ”เป‰เบ–เบทเบเบชเบปเปˆเบ‡เป„เบ›เบฅเบงเบกเปเบฅเป‰เบง, เบœเปˆเบฒเบ™ TCP เปเบฅเบฐเป€เบ‚เบปเป‰เบฒเบฅเบฐเบซเบฑเบ”เป€เบ›เบฑเบ™ binary protocol, เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบ„เปˆเบฒเปƒเบŠเป‰เบˆเปˆเบฒเบเปƒเบ™เบเบฒเบ™เบŠเป‰เปเบฒเบเบฑเบ™เปเบกเปˆเบ™เบซเบผเบธเบ”เบฅเบปเบ‡เบขเปˆเบฒเบ‡เบซเบผเบงเบ‡เบซเบผเบฒเบเป€เบกเบทเปˆเบญเบ—เบฝเบšเบเบฑเบš UDP. เป€เบ–เบดเบ‡เบงเปˆเบฒเบˆเบฐเบกเบตเบˆเปเบฒเบ™เบงเบ™เบ‚เบฐเบซเบ™เบฒเบ”เปƒเบซเบเปˆเบžเปเบชเบปเบกเบ„เบงเบ™เบ‚เบญเบ‡ metrics เบ‚เบฒเป€เบ‚เบปเป‰เบฒ, เบเบฒเบ™เบชเบฐเบชเบปเบกเบฎเบฝเบเบฎเป‰เบญเบ‡เปƒเบซเป‰เบกเบตเบซเบ™เปˆเบงเบเบ„เบงเบฒเบกเบˆเปเบฒเบซเบ™เป‰เบญเบเบซเบผเบฒเบเปเบฅเบฐเปเบกเป‰เบเบฐเบ—เบฑเป‰เบ‡ CPU เบซเบ™เป‰เบญเบ. เบชเปเบฒเบฅเบฑเบš mertics เบ—เบตเปˆเบชเบฒเบกเบฒเบ”เบšเบตเบšเบญเบฑเบ”เป„เบ”เป‰เบชเบนเบ‡เบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒ, เบ™เบตเป‰เปเบกเปˆเบ™เบžเบฝเบ‡เปเบ•เปˆเบชเบญเบ‡เบชเบฒเบกเบชเบดเบš megabytes เบ‚เบญเบ‡เบ‚เปเป‰เบกเบนเบ™. เป€เบ›เบฑเบ™เป‚เบšเบ™เบฑเบ”เป€เบžเบตเปˆเบกเป€เบ•เบตเบก, เบžเบงเบเป€เบฎเบปเบฒเบšเปเปˆเป„เบ”เป‰เบฎเบฑเบšเบ‚เปเป‰เบกเบนเบ™เบ—เบตเปˆเบšเปเปˆเบˆเปเบฒเป€เบ›เบฑเบ™ rewrites เปƒเบ™ Graphite, เป€เบŠเบฑเปˆเบ™เบ”เบฝเบงเบเบฑเบ™เบเบฑเบšเบเปเบฅเบฐเบ™เบตเบ‚เบญเบ‡ burbeck.

เบŠเบธเบ” UDP เบ—เบตเปˆเบกเบต metrics เปเบกเปˆเบ™เบšเปเปˆเบชเบปเบกเบ”เบธเบ™เบฅเบฐเบซเบงเปˆเบฒเบ‡ nodes เปƒเบ™เบญเบธเบ›เบฐเบเบญเบ™เป€เบ„เบทเบญเบ‚เปˆเบฒเบเป‚เบ”เบเบœเปˆเบฒเบ™ Round Robin เบ‡เปˆเบฒเบเบ”เบฒเบ. เปเบ™เปˆเบ™เบญเบ™, เบฎเบฒเบ”เปเบงเป€เบ„เบทเบญเบ‚เปˆเบฒเบเบšเปเปˆเป„เบ”เป‰เบงเบดเป€เบ„เบฒเบฐเป€เบ™เบทเป‰เบญเปƒเบ™เบ‚เบญเบ‡เปเบžเบฑเบเป€เบเบฑเบ”เปเบฅเบฐเบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบˆเบถเปˆเบ‡เบชเบฒเบกเบฒเบ”เบ”เบถเบ‡เบซเบผเบฒเบเบเปˆเบงเบฒ 4M เปเบžเบฑเบเป€เบเบฑเบ”เบ•เปเปˆเบงเบดเบ™เบฒเบ—เบต, เบšเปเปˆเปƒเบซเป‰เป€เบงเบปเป‰เบฒเป€เบ–เบดเบ‡ metrics เบ—เบตเปˆเบกเบฑเบ™เบšเปเปˆเบฎเบนเป‰เบซเบเบฑเบ‡เป€เบฅเบตเบ. เบ–เป‰เบฒเบžเบงเบเป€เบฎเบปเบฒเบ„เปเบฒเบ™เบถเบ‡เป€เบ–เบดเบ‡เบงเปˆเบฒ metrics เบšเปเปˆเป„เบ”เป‰เบกเบฒเป€เบ—เบทเปˆเบญเบฅเบฐเบญเบฑเบ™เปƒเบ™เปเบ•เปˆเบฅเบฐเบŠเบญเบ‡, เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™เบžเบงเบเป€เบฎเบปเบฒเบšเปเปˆเป„เบ”เป‰เบ„เบฒเบ”เบ„เบฐเป€เบ™เบšเบฑเบ™เบซเบฒเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เปƒเบ”เป†เปƒเบ™เบชเบฐเบ–เบฒเบ™เบ—เบตเปˆเบ™เบตเป‰. เบ–เป‰เบฒเป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบเบ‚เบฑเบ”เบ‚เป‰เบญเบ‡, เบญเบธเบ›เบฐเบเบญเบ™เป€เบ„เบทเบญเบ‚เปˆเบฒเบเบขเปˆเบฒเบ‡เป„เบงเบงเบฒ (เบžเบฒเบเปƒเบ™ 1-2 เบงเบดเบ™เบฒเบ—เบต) เบเบงเบ”เบžเบปเบšเบ„เบงเบฒเบกเบˆเบดเบ‡เบ™เบตเป‰เปเบฅเบฐเป€เบญเบปเบฒเป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบเบ—เบตเปˆเบฅเบปเป‰เบกเบฅเบปเบ‡เบˆเบฒเบเบเบฒเบ™เบซเบกเบธเบ™. เบ”เป‰เบงเบเป€เบซเบ”เบ™เบตเป‰, เป‚เบ™เบ”เบ•เบปเบงเบ•เบฑเป‰เบ‡เบ•เบปเบงเบ•เบต (i.e. เบ—เบตเปˆเบšเปเปˆเปเบกเปˆเบ™เบœเบนเป‰เบ™เปเบฒ) เบชเบฒเบกเบฒเบ”เป€เบ›เบตเบ”เปเบฅเบฐเบ›เบดเบ”เป„เบ”เป‰เป‚เบ”เบเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เป‚เบ”เบเบšเปเปˆเบกเบตเบเบฒเบ™เบชเบฑเบ‡เป€เบเบ”เป€เบซเบฑเบ™เบเบฒเบ™ drawdowns เปƒเบ™เบ•เบฒเบ•เบฐเบฅเบฒเบ‡. เบชเบนเบ‡เบชเบธเบ”เบ—เบตเปˆเบžเบงเบเป€เบฎเบปเบฒเบชเบนเบ™เป€เบชเบเปเบกเปˆเบ™เบชเปˆเบงเบ™เบซเบ™เบถเปˆเบ‡เบ‚เบญเบ‡ metrics เบ—เบตเปˆเป€เบ‚เบปเป‰เบฒเบกเบฒเปƒเบ™เบงเบดเบ™เบฒเบ—เบตเบชเบธเบ”เบ—เป‰เบฒเบ. เบเบฒเบ™เบชเบนเบ™เป€เบชเบ/เบ›เบดเบ”/เบชเบฐเบงเบดเบ”เบ‚เบญเบ‡เบœเบนเป‰เบ™เปเบฒเบขเปˆเบฒเบ‡เบเบฐเบ—เบฑเบ™เบซเบฑเบ™เบเบฑเบ‡เบˆเบฐเบชเป‰เบฒเบ‡เบ„เบงเบฒเบกเบœเบดเบ”เบ›เบปเบเบเบฐเบ•เบดเป€เบฅเบฑเบเบ™เป‰เบญเบ (เป„เบฅเบเบฐ 30 เบงเบดเบ™เบฒเบ—เบตเบเบฑเบ‡เบšเปเปˆเบ–เบทเบเบŠเบดเบ‡เบ„เปŒ), เปเบ•เปˆเบ–เป‰เบฒเบกเบตเบเบฒเบ™เบชเบทเปˆเบชเบฒเบ™เบฅเบฐเบซเบงเปˆเบฒเบ‡ nodes, เบšเบฑเบ™เบซเบฒเป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เบชเบฒเบกเบฒเบ”เบ–เบทเบเบซเบผเบธเบ”เปœเป‰เบญเบเบฅเบปเบ‡เป„เบ”เป‰, เบ•เบปเบงเบขเปˆเบฒเบ‡, เบ”เป‰เบงเบเบเบฒเบ™เบชเบปเปˆเบ‡เปเบžเบฑเบเป€เบเบฑเบ”เบเบฒเบ™เบŠเบดเป‰เบ‡เบ‚เปเป‰เบกเบนเบ™เบญเบญเบ. .

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

เบžเบฒเบเบชเปˆเบงเบ™เบเบฒเบ™เบ™เบฑเบš (เบฎเบฑเบšเบœเบดเบ”เบŠเบญเบšเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบฅเบงเบšเบฅเบงเบก) เปเบกเปˆเบ™เบ‚เป‰เบญเบ™เบ‚เป‰เบฒเบ‡เบซเบ™เป‰เบฒเป€เบšเบทเปˆเบญ. Buffers เป€เบ•เบฑเบกเป„เบ›เบ”เป‰เบงเบเบเบฒเบ™เป„เบซเบฅเบ‚เบญเบ‡เป€เบ„เบทเบญเบ‚เปˆเบฒเบเปเบกเปˆเบ™เปเบˆเบเบขเบฒเบเบฅเบฐเบซเบงเปˆเบฒเบ‡เบเบฒเบ™เบ™เบฑเบšเบเบฒเบ™เป„เบซเบผเป€เบ‚เบปเป‰เบฒ, เบšเปˆเบญเบ™เบ—เบตเปˆเบžเบงเบเบกเบฑเบ™เบ–เบทเบเบงเบดเป€เบ„เบฒเบฐเบ•เปเปˆเบกเบฒเปเบฅเบฐเบฅเบงเบšเบฅเบงเบก. เบ•เบฒเบกเบเบฒเบ™เบฎเป‰เบญเบ‡เบ‚เป, metrics เปเบกเปˆเบ™เปƒเบซเป‰เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบชเบปเปˆเบ‡เป„เบ›เบซเบฒ nodes เบญเบทเปˆเบ™เป†. เบ—เบฑเบ‡เบซเบกเบปเบ”เบ™เบตเป‰, เบฅเบงเบกเบ—เบฑเบ‡เบเบฒเบ™เบชเบปเปˆเบ‡เบ‚เปเป‰เบกเบนเบ™เบฅเบฐเบซเบงเปˆเบฒเบ‡ nodes เปเบฅเบฐเบเบฒเบ™เป€เบฎเบฑเบ”เบงเบฝเบเบเบฑเบš Consul, เปเบกเปˆเบ™เบ›เบฐเบ•เบดเบšเบฑเบ” asynchronously, เปเบฅเปˆเบ™เบขเบนเปˆเปƒเบ™เบเบญเบš. tokyo.

เบšเบฑเบ™เบซเบฒเบซเบผเบฒเบเปƒเบ™เบฅเบฐเบซเบงเปˆเบฒเบ‡เบเบฒเบ™เบžเบฑเบ”เบ—เบฐเบ™เบฒเปเบกเปˆเบ™เป€เบเบตเบ”เบกเบฒเบˆเบฒเบเบžเบฒเบเบชเปˆเบงเบ™เป€เบ„เบทเบญเบ‚เปˆเบฒเบเบ—เบตเปˆเบฎเบฑเบšเบœเบดเบ”เบŠเบญเบšเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เป„เบ”เป‰เบฎเบฑเบš metrics. เป€เบ›เบปเป‰เบฒเบซเบกเบฒเบเบ•เบปเป‰เบ™เบ•เปเบ‚เบญเบ‡เบเบฒเบ™เปเบเบเบเบฐเปเบชเป€เบ„เบทเบญเบ‚เปˆเบฒเบเป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™เบซเบ™เปˆเบงเบเบ‡เบฒเบ™เปเบเบเบ•เปˆเบฒเบ‡เบซเบฒเบเปเบกเปˆเบ™เบ„เบงเบฒเบกเบ›เบฒเบ–เบฐเบซเบ™เบฒเบ—เบตเปˆเบˆเบฐเบซเบผเบธเบ”เบœเปˆเบญเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเบเบฒเบ™เป„เบซเบผเป€เบ‚เบปเป‰เบฒ เบšเปเปˆ เป€เบžเบทเปˆเบญเบญเปˆเบฒเบ™เบ‚เปเป‰เบกเบนเบ™เบˆเบฒเบเป€เบ•เบปเป‰เบฒเบฎเบฑเบš. เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ—เบตเปˆเปƒเบŠเป‰ asynchronous UDP เปเบฅเบฐ recvmsg เบ›เบปเบเบเบฐเบ•เบดเบˆเบฐเบซเบฒเบเป„เบ›เบขเปˆเบฒเบ‡เป„เบงเบงเบฒ: เบ—เปเบฒเบญเบดเบ”เปƒเบŠเป‰ CPU เบžเบทเป‰เบ™เบ—เบตเปˆเบœเบนเป‰เปƒเบŠเป‰เบซเบผเบฒเบเป€เบเบตเบ™เป„เบ›เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ›เบฐเบกเบงเบ™เบœเบปเบ™เป€เบซเบ”เบเบฒเบ™, เบ—เบตเบชเบญเบ‡เบ•เป‰เบญเบ‡เบเบฒเบ™เบชเบฐเบซเบผเบฑเบšเบชเบฐเบžเบฒเบšเบเบฒเบ™เบซเบผเบฒเบเป€เบเบตเบ™เป„เบ›. เป€เบžเบฒเบฐเบชเบฐเบ™เบฑเป‰เบ™, เบกเบฑเบ™เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เปƒเบ™เบ›เบฑเบ”เบˆเบธเบšเบฑเบ™ recvmmsg เบเบฑเบš buffers เปƒเบซเบเปˆ (เปเบฅเบฐ buffers, เป€เบˆเบปเป‰เบฒเบซเบ™เป‰เบฒเบ—เบตเปˆเบชเบธเบžเบฒเบšเบšเบธเบฅเบธเบ”, เบšเปเปˆเบกเบตเบซเบเบฑเบ‡เบชเปเบฒเบฅเบฑเบšเบ—เปˆเบฒเบ™!). เบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™ UDP เบ›เบปเบเบเบฐเบ•เบดเปเบกเปˆเบ™เบชเบฐเบซเบ‡เบงเบ™เป„เบงเป‰เบชเปเบฒเบฅเบฑเบšเบเปเบฅเบฐเบ™เบตเปเบชเบ‡เบชเบฐเบซเบงเปˆเบฒเบ‡เบ—เบตเปˆ recvmmsg เปเบกเปˆเบ™เบšเปเปˆเบˆเปเบฒเป€เบ›เบฑเบ™. เปƒเบ™เป‚เบซเบกเบ” multimessage, เบกเบฑเบ™เป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰เบ—เบตเปˆเบˆเบฐเบšเบฑเบ™เบฅเบธเบชเบดเปˆเบ‡เบ•เบปเป‰เบ™เบ•เป: เบชเปˆเบงเบ™เปƒเบซเบเปˆเบ‚เบญเบ‡เป€เบงเบฅเบฒ, เบเบฐเบ—เบนเป‰เป€เบ„เบทเบญเบ‚เปˆเบฒเบ rakes เปเบ–เบง OS - เบญเปˆเบฒเบ™เบ‚เปเป‰เบกเบนเบ™เบˆเบฒเบเป€เบ•เบปเป‰เบฒเบฎเบฑเบšเปเบฅเบฐเป‚เบญเบ™เบกเบฑเบ™เป„เบ›เบซเบฒเบšเปˆเบญเบ™เป€เบเบฑเบšเบ‚เปเป‰เบกเบนเบ™เบœเบนเป‰เปƒเบŠเป‰, เบžเบฝเบ‡เปเบ•เปˆเบšเบฒเบ‡เบ„เบฑเป‰เบ‡เบ›เปˆเบฝเบ™เป„เบ›เปƒเบซเป‰ buffer เป€เบ•เบฑเบกเป„เบ›. เบ•เบปเบงเบฅเบงเบšเบฅเบงเบก. เปเบ–เบงเบขเบนเปˆเปƒเบ™เป€เบ•เบปเป‰เบฒเบฎเบฑเบšเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบšเปเปˆเป„เบ”เป‰เบชเบฐเบชเบปเบก, เบˆเปเบฒเบ™เบงเบ™เบ‚เบญเบ‡เบŠเบญเบ‡เบ—เบตเปˆเบซเบผเบธเบ”เบฅเบปเบ‡เบ›เบฐเบ•เบดเบšเบฑเบ”เบšเปเปˆเป„เบ”เป‰เบ‚เบฐเบซเบเบฒเบเบ•เบปเบง.

ะŸั€ะธะผะตั‡ะฐะฝะธะต

เปƒเบ™เบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™, เบ‚เบฐเบซเบ™เบฒเบ”เบ‚เบญเบ‡ buffer เบ–เบทเบเบเปเบฒเบ™เบปเบ”เปƒเบซเป‰เบ‚เป‰เบญเบ™เบ‚เป‰เบฒเบ‡เปƒเบซเบเปˆ. เบ–เป‰เบฒเบซเบฒเบเบงเปˆเบฒเบ—เปˆเบฒเบ™เบ—เบฑเบ™เบ—เบตเบ—เบฑเบ™เปƒเบ”เบ•เบฑเบ”เบชเบดเบ™เปƒเบˆเบ—เบตเปˆเบˆเบฐเบžเบฐเบเบฒเบเบฒเบกเป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบเบ‚เบญเบ‡เบ•เบปเบงเบ—เปˆเบฒเบ™เป€เบญเบ‡, เบ—เปˆเบฒเบ™เบญเบฒเบ”เบˆเบฐเบžเบปเบšเบเบฑเบšเบ„เบงเบฒเบกเบˆเบดเบ‡เบ—เบตเปˆเบงเปˆเบฒเบซเบผเบฑเบ‡เบˆเบฒเบเบเบฒเบ™เบชเบปเปˆเบ‡เบˆเปเบฒเบ™เบงเบ™เบ‚เบฐเบซเบ™เบฒเบ”เบ™เป‰เบญเบเบ‚เบญเบ‡ metrics, เบžเบงเบเป€เบ‚เบปเบฒเป€เบˆเบปเป‰เบฒเบˆเบฐเบšเปเปˆเบกเบฒเบฎเบญเบ” Graphite, เบเบฑเบ‡เบขเบนเปˆเปƒเบ™ buffer stream เป€เบ„เบทเบญเบ‚เปˆเบฒเบ. เป€เบžเบทเปˆเบญเป€เบฎเบฑเบ”เบงเบฝเบเบเบฑเบšเบˆเปเบฒเบ™เบงเบ™ metrics เบˆเปเบฒเบ™เบงเบ™เบซเบ™เป‰เบญเบ, เบ—เปˆเบฒเบ™เบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เบเปเบฒเบ™เบปเบ” bufsize เปเบฅเบฐ task-queue-size เบเบฑเบšเบ„เปˆเบฒเบ‚เบฐเบซเบ™เบฒเบ”เบ™เป‰เบญเบเบเบงเปˆเบฒเปƒเบ™ config.

เบชเบธเบ”เบ—เป‰เบฒเบ, เบšเบฒเบ‡เบ•เบฒเบ•เบฐเบฅเบฒเบ‡เบชเปเบฒเบฅเบฑเบš lovers เบ•เบฒเบ•เบฐเบฅเบฒเบ‡.

เบชเบฐเบ–เบดเบ•เบดเบเปˆเบฝเบงเบเบฑเบšเบˆเปเบฒเบ™เบงเบ™เบ‚เบญเบ‡ metrics เบ‚เบฒเป€เบ‚เบปเป‰เบฒเบชเปเบฒเบฅเบฑเบšเปเบ•เปˆเบฅเบฐเป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบ: เบซเบผเบฒเบเบเปˆเบงเบฒ 2 เบฅเป‰เบฒเบ™ MPS.

Bioyino - เปเบˆเบเบขเบฒเบ, เบ‚เบฐเบซเบเบฒเบเบเบฒเบ™เบฅเบงเบšเบฅเบงเบกเบ•เบปเบงเบŠเบตเป‰เบงเบฑเบ”

เบเบฒเบ™เบ›เบดเบ”เบเบฒเบ™เบ—เปเบฒเบ‡เบฒเบ™เบซเบ™เบถเปˆเบ‡เบ‚เบญเบ‡ nodes เปเบฅเบฐ redistributing metrics เบ‚เบฒเป€เบ‚เบปเป‰เบฒ.

Bioyino - เปเบˆเบเบขเบฒเบ, เบ‚เบฐเบซเบเบฒเบเบเบฒเบ™เบฅเบงเบšเบฅเบงเบกเบ•เบปเบงเบŠเบตเป‰เบงเบฑเบ”

เบชเบฐเบ–เบดเบ•เบดเบเปˆเบฝเบงเบเบฑเบš metrics เบ‚เบฒเบญเบญเบ: เบกเบตเบžเบฝเบ‡เปเบ•เปˆเบซเบ™เบถเปˆเบ‡ node เบชเบฐเป€เบซเบกเบตเบชเบปเปˆเบ‡ - เบ™เบฒเบเบˆเป‰เบฒเบ‡เบเบฒเบ™เป‚เบˆเบกเบ•เบต.

Bioyino - เปเบˆเบเบขเบฒเบ, เบ‚เบฐเบซเบเบฒเบเบเบฒเบ™เบฅเบงเบšเบฅเบงเบกเบ•เบปเบงเบŠเบตเป‰เบงเบฑเบ”

เบชเบฐเบ–เบดเบ•เบดเบเบฒเบ™เป€เบฎเบฑเบ”เบงเบฝเบเบ‚เบญเบ‡เปเบ•เปˆเบฅเบฐ node, เบ„เปเบฒเบ™เบถเบ‡เป€เบ–เบดเบ‡เบ„เบงเบฒเบกเบœเบดเบ”เบžเบฒเบ”เปƒเบ™เป‚เบกเบ”เบนเบ™เบฅเบฐเบšเบปเบšเบ•เปˆเบฒเบ‡เป†.

Bioyino - เปเบˆเบเบขเบฒเบ, เบ‚เบฐเบซเบเบฒเบเบเบฒเบ™เบฅเบงเบšเบฅเบงเบกเบ•เบปเบงเบŠเบตเป‰เบงเบฑเบ”

เบฅเบฒเบโ€‹เบฅเบฐโ€‹เบญเบฝเบ”โ€‹เบ‚เบญเบ‡โ€‹เบเบฒเบ™โ€‹เบงเบฑเบ”โ€‹เปเบ—เบโ€‹เบ‚เบฒโ€‹เป€เบ‚เบปเป‰เบฒ (เบŠเบทเปˆ metric เบ–เบทเบโ€‹เป€เบŠเบทเปˆเบญเบ‡โ€‹เป„เบงเป‰โ€‹)โ€‹.

Bioyino - เปเบˆเบเบขเบฒเบ, เบ‚เบฐเบซเบเบฒเบเบเบฒเบ™เบฅเบงเบšเบฅเบงเบกเบ•เบปเบงเบŠเบตเป‰เบงเบฑเบ”

เบžเบงเบเป€เบฎเบปเบฒเบเปเบฒเบฅเบฑเบ‡เบงเบฒเบ‡เปเบœเบ™เบ—เบตเปˆเบˆเบฐเป€เบฎเบฑเบ”เปเบ™เบงเปƒเบ”เบเบฑเบšเบชเบดเปˆเบ‡เบ—เบฑเบ‡เบซเบกเบปเบ”เบ™เบตเป‰เบ•เปเปˆเป„เบ›? เปเบ™เปˆเบ™เบญเบ™, เบ‚เบฝเบ™เบฅเบฐเบซเบฑเบ”, damn ...! เป‚เบ„เบ‡โ€‹เบเบฒเบ™โ€‹เบ”เบฑเปˆเบ‡โ€‹เบเปˆเบฒเบงโ€‹เป„เบ”เป‰โ€‹เบ–เบทเบโ€‹เบงเบฒเบ‡โ€‹เป„เบงเป‰โ€‹เปƒเบ™โ€‹เป€เบšเบทเป‰เบญเบ‡โ€‹เบ•เบปเป‰เบ™โ€‹เบ—เบตเปˆโ€‹เบˆเบฐโ€‹เป€เบ›เบฑเบ™โ€‹เปเบซเบผเปˆเบ‡โ€‹เป€เบ›เบตเบ”โ€‹เปเบฅเบฐโ€‹เบˆเบฐโ€‹เบเบฑเบ‡โ€‹เบ„เบปเบ‡โ€‹เป€เบ›เบฑเบ™โ€‹เบ”เบฑเปˆเบ‡โ€‹เบ™เบฑเป‰เบ™โ€‹เบ•เบฐโ€‹เบซเบผเบญเบ”โ€‹เบŠเบตโ€‹เบงเบดเบ”โ€‹เบ‚เบญเบ‡โ€‹เบ•เบปเบ™โ€‹. เปเบœเบ™เบเบฒเบ™เปƒเบ™เบ—เบฑเบ™เบ—เบตเบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒเบฅเบงเบกเบกเบตเบเบฒเบ™เบ›เปˆเบฝเบ™เป„เบ›เปƒเบŠเป‰ Raft เบชเบฐเบšเบฑเบšเบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒเป€เบญเบ‡, เบเบฒเบ™เบ›เปˆเบฝเบ™เป‚เบ›เบฃเป‚เบ•เบ„เบญเบ™ peer เปƒเบซเป‰เป€เบ›เบฑเบ™เปเบšเบšเบžเบปเบเบžเบฒเบซเบผเบฒเบ, เปเบ™เบฐเบ™เบณเบชเบฐเบ–เบดเบ•เบดเบžเบฒเบเปƒเบ™เป€เบžเบตเปˆเบกเป€เบ•เบตเบก, เบงเบฑเบ”เปเบ—เบเบ›เบฐเป€เบžเบ”เปƒเปเปˆ, เปเบเป‰เป„เบ‚เบ‚เปเป‰เบœเบดเบ”เบžเบฒเบ” เปเบฅเบฐเบเบฒเบ™เบ›เบฑเบšเบ›เบธเบ‡เบญเบทเปˆเบ™เป†.

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

เบ”เป‰เบงเบโ€‹เบงเปˆเบฒโ€‹เบˆเบฐโ€‹เป€เบงเบปเป‰เบฒโ€‹เบงเปˆเบฒ, เบ„เบปเบ™โ€‹เบ—เบฑเบ‡โ€‹เบ›เบงเบ‡, เบŠเบทเป‰โ€‹เบŠเป‰เบฒเบ‡โ€‹เบ‚เบญเบ‡โ€‹เบžเบงเบโ€‹เป€เบฎเบปเบฒ!



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

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