ããã§ã¡ããªã¯ã¹ãåéããŸãã ç§ãã¡ãããã§ãã ææšãåéããŸãã ãã¡ããããžãã¹ã«ãå¿
èŠã§ãã ä»æ¥ã¯ãç£èŠã·ã¹ãã ã®æåã®ãªã³ã¯ã§ãã statsd äºæã®éèšãµãŒããŒã«ã€ããŠèª¬æããŸãã
以åã®èšäºãã (
è«æ±é
1ã ãããžã§ã¯ãã®éçºè
ã§ãã Github ã¯ãããããšä¿®æ£ã®å
¬éãç§ãã¡ã®ãã®ããã㊠(ç§ãã¡ã ãã§ãªã) PR ã®åãå
¥ããªã©ããããžã§ã¯ãã®ãµããŒããåæ¢ããŸããã ããæ°ãæïŒ2018 幎 2 æãã XNUMX æã«ãããŠïŒæŽ»åãåéãããŸãããããããŸã§ã¯ã»ãŒ XNUMX 幎éãå®å
šã«å¹³ç©ãªç¶æ
ãç¶ããŠããŸããã ããã«ããããžã§ã¯ããéçºäžã§ã
è«æ±é 2ã èšç®ã®æ£ç¢ºãã Brubeck ã¯ãåèš 65536 åã®å€ãéèšã®ããã«åéããŸãã ç§ãã¡ã®å Žåãäžéšã®ã¡ããªã¯ã¹ã§ã¯ãéèšæé (30 ç§) äžã«ãããã«å€ãã®å€ãå°çããå¯èœæ§ããããŸã (ããŒã¯æ㯠1)ã ãã®ãµã³ããªã³ã°ã®çµæãæ倧å€ãšæå°å€ã¯åœ¹ã«ç«ããªãããã«èŠããŸãã ããšãã°ã次ã®ããã«ãªããŸãã
ãã®ãŸãŸ
ã©ãããã¹ãã ã£ãã®ã
åãçç±ã§ãéé¡ã¯äžè¬çã«èª€ã£ãŠèšç®ãããŸãã ããã« 32 ãããæµ®åå°æ°ç¹ãªãŒããŒãããŒã®ãã°ãè¿œå ããŸããéåžžãäžèŠç¡å®³ãªã¡ããªã¯ã¹ãåä¿¡ãããšãµãŒããŒãã»ã°ã¡ã³ããŒã·ã§ã³éåã«é¥ãããã¹ãŠãããŸããããŸãã ã¡ãªã¿ã«ãã°ã¯ä¿®æ£ãããŠããªãã
ãããŠæåŸã«ã ã¯ã¬ãŒã Xã ãã®èšäºã®å·çæç¹ã§ã¯ãèŠã€ãã£ã 14 åã®ã»ãŒåäœãã statsd å®è£ ãã¹ãŠã«ãããæ瀺ããæºåãã§ããŠããŸãã ããã€ãã®åäžã€ã³ãã©ã¹ãã©ã¯ãã£ãæé·ããããŠã4 äž MPS ãåãå ¥ããã ãã§ã¯ååã§ã¯ãªããªã£ããšæ³åããŠãã ããã ãããã¯ããŸã æé·ããŠããªããŠãããã®ææšã¯ãã§ã«ããªãã«ãšã£ãŠéåžžã«éèŠã§ããããããã£ãŒãã® 2 ïœ 3 åã®çãäžèœã§ãããã§ã«é倧ãªåé¡ãšãªãããããŒãžã£ãŒã®éã§å æã§ããªãæ鬱ã®çºäœãåŒãèµ·ããå¯èœæ§ããããŸãã ãã€ç ã®æ²»çã¯å ±ãããªãä»äºã§ãããããæè¡çãªè§£æ±ºçãå¿ èŠã§ãã
ãŸãããµãŒããŒäžã®çªç¶ã®åé¡ããªãã£ã¹ã«ç²Ÿç¥å»åŠçãŸã³ãã®é»ç€ºé²ãåŒãèµ·ãããªãããã«ããããã®ãã©ãŒã«ã ãã¬ã©ã³ã¹ã§ãã 4 ã€ç®ã¯ãLinux ãããã¯ãŒã¯ ã¹ã¿ãã¯ãæ·±ãæãäžããã«ãå¿ èŠãªãµã€ãºãŸã§ãå¹ åºããéãã«æ¡åŒµããããšãªããXNUMX äž MPS ãè¶ ããå€ãåãå ¥ããããããã«ã¹ã±ãŒãªã³ã°ããããšã§ãã
ã¹ã±ãŒãªã³ã°ã®äœå°ããã£ãããããã©ãŒã«ã ãã¬ã©ã³ã¹ããå§ããããšã«ããŸããã "ã«ã€ããŠïŒ ãã©ãŒã«ããã¬ã©ã³ã¹ïŒ ããã¯ç°¡åã ãç§ãã¡ã«ã§ããããšç§ãã¡ã¯èãã2 ã€ã®ãµãŒããŒãèµ·åãããããã㧠brubeck ã®ã³ããŒãèµ·åããŸããã ãããè¡ãã«ã¯ãã¡ããªã¯ã¹ãå«ããã©ãã£ãã¯ãäž¡æ¹ã®ãµãŒããŒã«ã³ããŒããããã«ãã®ããã«æžã蟌ãå¿
èŠããããŸããã
ãã®åé¡ã«ã€ããŠå°ãèããåæã«ã·ã£ãã«ã§éªãæããšã次ã®ãããªæçœãªã¢ã€ãã¢ãæãæµ®ãã¶ãããããŸãããåæ£ã¢ãŒãã§åäœã§ãã statsd ãå¿
èŠã§ãã ã€ãŸããããŒãéã®æéãšã¡ããªã¯ã¹ã®åæãå®è£
ãããã®ã§ãã ããã¡ããããã®ãããªãœãªã¥ãŒã·ã§ã³ã¯ãããããã§ã«ååšããŠããã§ãããããšç§ãã¡ã¯èšããGoogle ã«è¡ããŸããâŠã ãããŠäœãèŠã€ãããŸããã§ããã ããŸããŸãª statsd ã®ããã¥ã¡ã³ããèªãã åŸ (
ãããŠç§ãã¡ã¯ãJust for Fun ãã«ãœã³ã§æžããããããã¡ããã® statsd - bioyino ã®ããšãæãåºã (ãããžã§ã¯ãã®ååã¯ãããã«ãœã³ã®éå§åã«ã¹ã¯ãªããã«ãã£ãŠçæãããŸãã)ãç¬èªã® statsd ãç·æ¥ã«å¿ èŠã§ããããšã«æ°ã¥ããŸããã äœã®ããã«ïŒ
- äžçäžã« statsd ã¯ããŒã³ãå°ãªãããããã
- æãŸããããŸãã¯æãŸãããã©ãŒã«ã ãã¬ã©ã³ã¹ãšã¹ã±ãŒã©ããªãã£ã«è¿ããã®ãæäŸã§ãããã (ãµãŒããŒéã§éçŽãããã¡ããªã¯ã¹ã®åæãé信競åã®åé¡ã®è§£æ±ºãªã©)ã
- brubeck ãããæ£ç¢ºã«ã¡ããªã¯ã¹ãèšç®ã§ããããã
- ãã詳现ãªçµ±èšãèªåã§åéã§ãããããbrubeck ã¯äºå®äžæäŸããŸããã§ãããã
- ãªããªããç§ã¯ç¬èªã®ãã€ããŒããã©ãŒãã³ã¹åæ£ã¹ã±ãŒã« ã©ã ã¢ããªã±ãŒã·ã§ã³ãããã°ã©ã ããæ©äŒããã£ãããã§ããããã¯ãå¥ã®åæ§ã®ãã€ããŒãã©ãŒã®ã¢ãŒããã¯ãã£ãå®å šã«ç¹°ãè¿ãããã§ã¯ãããŸããããŸããããã ãã§ãã
äœã«æžããŸããïŒ ãã¡ããRustã§ã ãªãïŒ
- ãã§ã«ãããã¿ã€ãã®ãœãªã¥ãŒã·ã§ã³ããã£ãããã
- ãªããªããèšäºã®èè ã¯åœææ¢ã« Rust ã®ããšãç¥ã£ãŠããŠãããããªãŒãã³ãœãŒã¹ã«å ¬éããæ©äŒãåŸãŠãå®çšŒåçšã«äœããæžããããšç±æããŠããããã§ãã
- GC ã䜿çšããèšèªã¯ãåä¿¡ãããã©ãã£ãã¯ã®æ§è³ª (ã»ãŒãªã¢ã«ã¿ã€ã ) ã«ããç§ãã¡ã«ã¯é©ããŠããããGC ã®äžæåæ¢ã¯äºå®äžèš±å®¹ã§ããªãããã
- C ã«å¹æµããæ倧ã®ããã©ãŒãã³ã¹ãå¿ èŠãªãã
- ãªããªããRust ã¯æããããšã®ãªãåæå®è¡æ§ãæäŸããŠãããããã C/C++ ã§æžãå§ãããããã«ãŒããã¯ãããããã«å€ãã®è匱æ§ããããã¡ ãªãŒããŒãããŒã競åç¶æ ããã®ä»ã®æãããèšèã倧éã«çºçããããšã«ãªãã§ãããã
Rustã«å¯Ÿããè°è«ããããŸããã å瀟ã«ã¯Rustã§ãããžã§ã¯ããäœæããçµéšããªããçŸåšã¡ã€ã³ãããžã§ã¯ãã§Rustã䜿çšããäºå®ããããŸããã ãããã£ãŠãäœãããŸããããªãã®ã§ã¯ãªãããšããæ·±å»ãªæžå¿µããããŸããããç§ãã¡ã¯ãã£ã³ã¹ãè³ããŠè©ŠããŠã¿ãããšã«ããŸããã
æã¯éãã...
æ°åã®å€±æãçµãŠãæçµçã«æåã®åäœããŒãžã§ã³ãå®æããŸããã ã©ãããã®ïŒ ãããèµ·ãã£ãã®ã§ãã
åããŒãã¯ç¬èªã®ã¡ããªã¯ã¹ã®ã»ãããåä¿¡ããŠââèç©ããŸãããæçµçãªéèšã«å®å
šãªã»ãããå¿
èŠãªã¿ã€ãã®ã¡ããªã¯ã¹ã¯éèšããŸããã ããŒãã¯ããçš®ã®åæ£ãã㯠ãããã³ã«ã«ãã£ãŠçžäºã«æ¥ç¶ãããŠãããããã«ãããã°ã¬ãŒã ã¯ã³ã«ã¡ããªã¯ã¹ãéä¿¡ãã䟡å€ã®ããããŒãã®äžãã (ããã§å«ã³ãŸãã) XNUMX ã€ã ããéžæããããšãã§ããŸãã ãã®åé¡ã¯çŸåšã次ã®æ¹æ³ã§è§£æ±ºãããŠããŸãã
ã¡ããªãã¯ãå«ã UDP ãã±ããã¯ãåçŽãªã©ãŠã³ã ããã³ã«ãã£ãŠãããã¯ãŒã¯æ©åšäžã®ããŒãéã§äžåè¡¡ã«ãªããŸãã ãã¡ããããããã¯ãŒã¯ ããŒããŠã§ã¢ã¯ãã±ããã®å 容ã解æããªãããããŸã£ããç¥ããªãã¡ããªã¯ã¹ã¯èšããŸã§ããªãã4 ç§ããã 1M ãã¯ããã«è¶ ãããã±ãããååŸã§ããŸãã ã¡ããªã¯ã¹ãåãã±ããã§äžåºŠã« 2 ã€ãã€éä¿¡ãããããã§ã¯ãªãããšãèæ ®ãããšããã®å Žæã§ããã©ãŒãã³ã¹ã®åé¡ãçºçããããšã¯äºæ³ãããŸããã ãµãŒããŒãã¯ã©ãã·ã¥ãããšããããã¯ãŒã¯ ããã€ã¹ã¯ãã®äºå®ãããã« (30 ïœ XNUMX ç§ä»¥å ã«) æ€åºããã¯ã©ãã·ã¥ãããµãŒããŒãããŒããŒã·ã§ã³ããåé€ããŸãã ãã®çµæãããã·ã (ã€ãŸããéãªãŒããŒ) ããŒãã¯ããã£ãŒãäžã®ãããŒããŠã³ã«æ°ä»ããã«ãªã³/ãªããåãæ¿ããããšãã§ããŸãã æ倱ã®æ倧å€ã¯ãæåŸã® XNUMX ç§ã§ååŸãããææšã®äžéšã§ãã ãªãŒããŒã®çªç¶ã®åªå€±/ã·ã£ããããŠã³/åãæ¿ãã«ãã£ãŠã軜床ã®ç°åžžãçºçããŸã (XNUMX ç§ééã¯ãŸã åæããŠããŸãã)ããã ããããŒãéã«éä¿¡ãããå Žåãããšãã°åæãã±ãããéä¿¡ããããšã«ãã£ãŠããããã®åé¡ãæå°éã«æããããšãã§ããŸãã ã
å éšæ§é ã«ã€ããŠå°ãã ãã¡ãããã¢ããªã±ãŒã·ã§ã³ã¯ãã«ãã¹ã¬ããã§ãããã¹ã¬ãã ã¢ãŒããã¯ãã£ã¯ brubeck ã§äœ¿çšãããŠãããã®ãšã¯ç°ãªããŸãã brubeck ã®ã¹ã¬ããã¯åãã§ããããããããæ å ±ã®åéãšéçŽã®äž¡æ¹ãæ åœããŸãã bioyino ã§ã¯ãäœæ¥è ã¯ãããã¯ãŒã¯æ åœè ãšéçŽæ åœè ã® 8 ã€ã®ã°ã«ãŒãã«åããããŸãã ãã®åå²ã«ãããã¡ããªã¯ã¹ã®ã¿ã€ãã«å¿ããŠã¢ããªã±ãŒã·ã§ã³ãããæè»ã«ç®¡çã§ããŸããéäžçãªéçŽãå¿ èŠãªå Žåã¯ã¢ã°ãªã²ãŒã¿ãè¿œå ãããããã¯ãŒã¯ ãã©ãã£ãã¯ã倧éã«ããå Žåã¯ãããã¯ãŒã¯ ãããŒã®æ°ãè¿œå ã§ããŸãã çŸåšãåœç€Ÿã®ãµãŒããŒã§ã¯ 4 ã€ã®ãããã¯ãŒã¯ãš XNUMX ã€ã®éçŽãããŒã§äœæ¥ããŠããŸãã
ã«ãŠã³ã (éèšãæ
åœ) éšåã¯éåžžã«éå±ã§ãã ãããã¯ãŒã¯ ãããŒã«ãã£ãŠæºãããããããã¡ã¯ã«ãŠã³ã ãããŒéã§åæ£ããããã®åŸè§£æãããŠéèšãããŸãã èŠæ±ã«å¿ããŠãä»ã®ããŒãã«éä¿¡ããããã®ã¡ããªã¯ã¹ãæäŸãããŸãã ããŒãéã®ããŒã¿éä¿¡ã Consul ãšã®é£æºãå«ãããããã¹ãŠã¯ããã¬ãŒã ã¯ãŒã¯äžã§éåæã«å®è¡ãããŸãã
éçºäžã®ã¯ããã«å€ãã®åé¡ã¯ãã¡ããªã¯ã¹ã®åä¿¡ãæ
åœãããããã¯ãŒã¯éšåã«ãã£ãŠåŒãèµ·ããããŸããã ãããã¯ãŒã¯ ãããŒãåå¥ã®ãšã³ãã£ãã£ã«åé¢ããäž»ãªç®çã¯ããããŒã«ãããæéãåæžããããšã§ããã ã㌠ãœã±ããããããŒã¿ãèªã¿åããŸãã éåæ UDP ãšéåžžã® recvmsg ã䜿çšãããªãã·ã§ã³ã¯ããã«æ¶ããŠããŸããŸãããXNUMX ã€ç®ã¯ã€ãã³ãåŠçã«ãŠãŒã¶ãŒç©ºéã® CPU ã倧éã«æ¶è²»ããXNUMX ã€ç®ã¯ã³ã³ããã¹ã ã¹ã€ãããå€ãããŸãã ãããã£ãŠãçŸåšäœ¿çšãããŠããŸã
泚æ
ããã©ã«ãèšå®ã§ã¯ããããã¡ ãµã€ãºã¯éåžžã«å€§ããèšå®ãããŠããŸãã çªç¶ãµãŒããŒãèªåã§è©ŠããŠã¿ãããšã«ããå Žåãå°æ°ã®ã¡ããªã¯ã¹ãéä¿¡ããåŸããããã®ã¡ããªã¯ã¹ã Graphite ã«å°çããããããã¯ãŒã¯ ã¹ããªãŒã ãããã¡ã«æ®ã£ãŠãããšããäºå®ã«ééããå¯èœæ§ããããŸãã å°æ°ã®ã¡ããªã¯ã¹ãåŠçããã«ã¯ãæ§æ㧠bufsize ãš task-queue-size ãããå°ããå€ã«èšå®ããå¿ èŠããããŸãã
æåŸã«ããã£ãŒãæ奜家åãã®ãã£ãŒããããã€ã玹ä»ããŸãã
åãµãŒããŒã®åä¿¡ã¡ããªãã¯æ°ã«é¢ããçµ±èš: 2 äž MPS 以äžã
ããŒãã® XNUMX ã€ãç¡å¹ã«ããåä¿¡ã¡ããªã¯ã¹ãåé åžããŸãã
çºä¿¡ã¡ããªã¯ã¹ã«é¢ããçµ±èš: åžžã« XNUMX ã€ã®ããŒã (RAID ãã¹) ã®ã¿ãéä¿¡ããŸãã
ããŸããŸãªã·ã¹ãã ã¢ãžã¥ãŒã«ã®ãšã©ãŒãèæ ®ãããåããŒãã®åäœã®çµ±èšã
åä¿¡ã¡ããªã¯ã¹ã®è©³çŽ° (ã¡ããªã¯ã¹åã¯é衚瀺ã«ãªããŸã)ã
次ã«ããããã¹ãŠãã©ãããã€ããã§ãããã? ãã¡ãããã³ãŒããæžããŠãã ãã...! ãã®ãããžã§ã¯ãã¯åœåããªãŒãã³ãœãŒã¹ã«ãªãäºå®ã§ããããã®åç¶æéãéããŠãªãŒãã³ãœãŒã¹ã§ããç¶ããäºå®ã§ãã ç§ãã¡ã®åœé¢ã®èšç»ã«ã¯ãRaft ã®ç¬èªããŒãžã§ã³ãžã®åãæ¿ããã㢠ãããã³ã«ã®ç§»æ€æ§ã®é«ããã®ãžã®å€æŽãè¿œå ã®å éšçµ±èšãæ°ããã¿ã€ãã®ã¡ããªã¯ã¹ããã°ä¿®æ£ããã®ä»ã®æ¹åã®å°å ¥ãå«ãŸããŸãã
ãã¡ãããPR ã®äœæãåé¡ç¹ã®äœæãå¯èœã§ããã°å¯Ÿå¿ãæ¹åãªã©ããããžã§ã¯ãã®éçºã«ååããŠããã ãããšã¯èª°ã§ã倧æè¿ã§ãã
ããã¯èšã£ãŠããçããã象ãè²·ã£ãŠãã ããïŒ
åºæïŒ habr.com