ã¯ããã«
ããã«ã¡ã¯ããµã¼ãã¼ãµã¤ãã¨ã³ã¸ãã¢ã®å¨å®¶(@asahi05020934)ã§ããç¾å¨ã¯ãå ¨å½ã®å»å¸«ãçµé¨ããã¬ãã¸ã ãéåç¥ãã¨ãã¦å ±æãåãå»å¸«å°ç¨ã³ãã¥ããã£ãµã¤ããMedPeerãã®éçºãè¡ã£ã¦ãã¾ãã
Ruby 3.2ããYJITãå®ç¨æ®µéã«ãªãã¾ããããMedPeerãã§ãããã©ã¼ãã³ã¹ãæ¹åããããã«YJITãæå¹åãããã¨ã«ãªãã¾ããã
æ¬çªç°å¢ã§YJITãæå¹åå¾ãECSãµã¼ãã¹ã®Memory Utilizationã«ä½è£ããã£ãã®ã§ãECSãµã¼ãã¹ã®Unicornã¯ã¼ã«ã¼æ°ãå¢ãããã¨ãæ¤è¨ãã¾ããã ããããYJITæå¹åå¾ã®Unicornã¯ã¼ã«ã¼æ°ã¨ã¡ããªã¯ã¹ã«é¢ãã¦ã¾ã¨ããããè¨äºãå°ãªããã©ã®ããã«æ¨ç§»ãã¦ããã®ãäºæ³ãç«ã¦ãã®ã¯ç°¡åã§ã¯ããã¾ããã§ãããYJITæå¹åå¾ã«Unicornã¯ã¼ã«ã¼æ°ãå¢ããã¨åã¡ããªã¯ã¹ã¯ã©ã®ããã«å¢æ¸ãã¦ããã®ã§ããããã
ããã§ãä»åã¯ãMedPeerãã®æ¬çªç°å¢ã§YJITæå¹åå¾ã«Unicornã¯ã¼ã«ã¼æ°ãå¢ããã¦ãã£ãå ´åã®åã¡ããªã¯ã¹ã®å¢æ¸ãæããã«ãã¦ããã¾ãã
è¨æ¸¬ããç°å¢
以ä¸ã®ç°å¢ããã¨ã«è¨æ¸¬ãè¡ãã¾ããã
- ECSã¿ã¹ã¯æ°: 8
- Rubyã®ãã¼ã¸ã§ã³: 3.3
- Railsã®ãã¼ã¸ã§ã³: 7.0.8.4
- ECSã¿ã¹ã¯ã使ç¨ããã¡ã¢ãªé: 8192MiB
- ECSã¿ã¹ã¯ã使ç¨ããCPUã¦ãããæ°: 4096
æé
以ä¸ã®æé ã«æ²¿ã£ã¦è¨æ¸¬ãã¦ããã¾ããã
- Unicornã¯ã¼ã«ã¼æ°ã96ã®æ¥ã®0æ0åãã23æ59åã¾ã§ã®ã¡ããªã¯ã¹ãè¨æ¸¬ãã
- Unicornã¯ã¼ã«ã¼æ°ã96ãã104ã«å¢ãã
- Unicornã¯ã¼ã«ã¼æ°ã104ã®æ¥ã®0æ0åãã23æ59åã¾ã§ã®ã¡ããªã¯ã¹ãè¨æ¸¬ãã
- Unicornã¯ã¼ã«ã¼æ°ã104ãã112ã«å¢ãã
- Unicornã¯ã¼ã«ã¼æ°ã112ã®æ¥ã®0æ0åãã23æ59åã¾ã§ã®ã¡ããªã¯ã¹ãè¨æ¸¬ãã
- 1ã¨3ã¨5ã®è¨æ¸¬ããçµæãæ¯è¼ãã
ããããã®è¨æ¸¬æ¥ããMedPeerãã®ãµã¼ãã¹ã®ï¼ã¤ã§ãããWebè¬æ¼ä¼ãã®å ¨é ä¿¡ã®æ¥ç¨ã«åããããã¨ã§ããªã¯ã¨ã¹ãæ°ããªã¯ã¨ã¹ãã®å 容ã«å¤§ããªå·®ç°ãèµ·ããªãããã«å·¥å¤«ãã¾ããã
è¨æ¸¬ããã¨ãUnicornã¯ã¼ã«ã¼æ°112ã®æç¹ã§ECSãµã¼ãã¹ã®Memory Utilization Maxã®æå¤§å¤ã84.23%ã¾ã§ä¸æãã¾ããã ãã以ä¸Unicornã¯ã¼ã«ã¼æ°ãå¢ããã¨æ¬çªç°å¢ããã¦ã³ããå¯è½æ§ã屿§ããUnicornã¯ã¼ã«ã¼æ°ã112ã¾ã§æ¤è¨¼ãããã¨ã«ãã¾ããã
çµæ
表1ã¯ãUnicornã¯ã¼ã«ã¼æ°96ãUnicornã¯ã¼ã«ã¼æ°104ãUnicornã¯ã¼ã«ã¼æ°112ã®åã¡ããªã¯ã¹ã®å¹³åå¤ã表ãããã®ã§ãã
Unicornã¯ã¼ã«ã¼æ°96 | Unicornã¯ã¼ã«ã¼æ°104 | Unicornã¯ã¼ã«ã¼æ°112 | |
---|---|---|---|
ECSãµã¼ãã¹ã®CPU Utilization Avgã®å¹³å(%) | 5.19 | 3.33 | 5.38 |
ECSãµã¼ãã¹ã®Memory Utilization Avgã®å¹³å(%) | 35.10 | 35.50 | 36.70 |
ALBã®Response Time p50ã®å¹³å(ms) | 50.00 | 51.00 | 48.00 |
ALBã®Response Time p90ã®å¹³å(ms) | 193.00 | 210.00 | 210.00 |
ALBã®Response Time p95ã®å¹³å(ms) | 317.00 | 380.00 | 327.00 |
ALBã®Response Time p99ã®å¹³å(ms) | 643.00 | 735.00 | 647.00 |
RDSã®CPU Utilizationã®å¹³å(%) | 5.32 | 4.15 | 5.87 |
ã¬ã¤ãã³ã·ã¼ p50ã®å¹³å(ms) ã | 41.10 | 40.80 | 39.90 |
ã¬ã¤ãã³ã·ã¼ p75ã®å¹³å(ms) ã | 68.40 | 68.00 | 68.50 |
ã¬ã¤ãã³ã·ã¼ p90ã®å¹³å(ms) ã | 150.30 | 159.00 | 154.00 |
ã¬ã¤ãã³ã·ã¼ p95ã®å¹³å(ms) ã | 255.50 | 289.30 | 253.10 |
表2ã¯ã表1ããã¨ã«åã¡ããªã¯ã¹ã®å¤åçãè¨ç®ãããã®ã§ãã
96ãã104ã®å¤åç(%) | 104ãã112ã®å¤åç(%) | |
---|---|---|
ECSãµã¼ãã¹ã®CPU Utilization Avgã®å¹³å | -35.84 | 61.56 |
ECSãµã¼ãã¹ã®Memory Utilization Avgã®å¹³å | 1.14 | 3.38 |
ALBã®Response Time p50ã®å¹³å | 2.00 | -5.88 |
ALBã®Response Time p90ã®å¹³å | 8.81 | 0.00 |
ALBã®Response Time p95ã®å¹³å | 19.87 | -13.95 |
ALBã®Response Time p99ã®å¹³å | 14.31 | -11.97 |
RDSã®CPU Utilizationã®å¹³å | -21.99 | 41.45 |
ã¬ã¤ãã³ã·ã¼ p50ã®å¹³å ã | -0.73 | -2.21 |
ã¬ã¤ãã³ã·ã¼ p75ã®å¹³å ã | -0.58 | 0.74 |
ã¬ã¤ãã³ã·ã¼ p90ã®å¹³å ã | 5.79 | -3.14 |
ã¬ã¤ãã³ã·ã¼ p95ã®å¹³å ã | 13.23 | -12.51 |
èå¯
ECSãµã¼ãã¹ã®CPU Utilization Avgã®å¹³å
è¨æ¸¬çµæ
96ãã104ã®å¤åçã¯-35.84%ã§ããã®ã«å¯¾ãã104ãã112ã®å¤åçã¯61.56%ã§ãããã¨ããããã¾ããããã®ãã¨ãããã¯ã¼ã«ã¼æ°ãä¸ãããã¨ã§ECSãµã¼ãã¹ã®CPU Utilization Avgã¯ä¸ããã¨ã¯éããªããã¨ããããã¾ããã
èå¯
ç´æã«åããçµæã¨ãªãã¾ããããªã¯ã¨ã¹ãã®è² è·èªä½ãå°ãªãå ´åãã¯ã¼ã«ã¼ãå¢ããã¦ãå¦çããã¿ã¹ã¯ãå°ãªããããCPU使ç¨çã¯ãã¾ãä¸ãããªãã£ãå¯è½æ§ãããã¨èãã¾ããã
ECSãµã¼ãã¹ã®Memory Utilization Avgã®å¹³å
è¨æ¸¬çµæ
ã¯ã¼ã«ã¼æ°ãå¢ãããã³ã«35.10%ã35.50%ã36.70%ã¨å¢ãã¦ãã¾ãããã®ãã¨ãããã¯ã¼ã«ã¼æ°ãå¢ããç¨ECSãµã¼ãã¹ã®ã¡ã¢ãªããã使ããã¦ãããã¨ããããã¾ããã
èå¯
ç´æéãã®çµæã«ãªãã¾ãããYJITã¯ã¡ã¿ãã¼ã¿ã«ãã¡ã¢ãªã使ç¨ãã¾ãããã®ãããã¯ã¼ã«ã¼ãå¢ããã¦ã¡ã¿ãã¼ã¿ãå¢ãããã¨ã§ãã¡ã¢ãªä½¿ç¨éãå¢ãããã¨ãèãããã¾ãã
ALBã®Response Time
è¨æ¸¬çµæ
p50ã®å¹³åã¯ã¯ã¼ã«ã¼æ°ãå¢ãã度ã«50.00msã51.00msã48.00msã¨ã¬ã¹ãã³ã¹é度ãéããªã£ã¦ãããã¨ããããã¾ãããããããp90ã®å¹³åãp95ã®å¹³åãp99ã®å¹³åã¯ã¯ã¼ã«ã¼æ°ãä¸ãã度ã«é度ãä¸ãã£ã¦ããªããã¨ããããã¾ããããã®ãã¨ãããã¯ã¼ã«ã¼æ°ãä¸ãããã¨ã§ãåºæ¬çãªã¬ã¹ãã³ã¹é度ã¯éããªãããé ãã®ã¬ã¹ãã³ã¹ã¯é度ãéããªãã¨ã¯éããªããã¨ããããã¾ããã
èå¯
p50ã®å¹³å以å¤ã¯ãç´æã«åããçµæã¨ãªãã¾ãããp90以ä¸ã§ã¯ãããã¯ã¼ã¯ã®é å»¶ãå½±é¿ããä¸é¨ã®ãªã¯ã¨ã¹ããé ããªãå¯è½æ§ãããã¨èãã¾ããã
RDSã®CPU Utilizationã®å¹³å
è¨æ¸¬çµæ
96ãã104ã®å¤åçã¯-21.99%ã§ããã®ã«å¯¾ãã¦ã104ãã112ã®å¤åçã¯41.45%ã§ãããã¨ããããã¾ããããã®ãã¨ãããã¯ã¼ã«ã¼æ°ãä¸ãããã¨ã§ãRDSã®CPU Utilizationã®å¹³åã¯ä¸ããã¨ã¯éããªããã¨ããããã¾ããã
èå¯
ç´æã«åããçµæã¨ãªãã¾ãããã¯ã¼ã«ã¼æ°ãå¢ããã¦ããçºè¡ãããã¯ã¨ãªãã·ã³ãã«ã§ãCPUã大éã«ä½¿ç¨ããªãå ´åãRDSã®CPUå©ç¨çã¯ä¸ãããªãã£ãå¯è½æ§ãããã¨èãã¾ããã
ã¬ã¤ãã³ã·ã¼
è¨æ¸¬çµæ
p50ã®å¹³åã¯ãã¯ã¼ã«ã¼æ°ãä¸ãããã³ã«41.10msã40.80msã39.90msã¨éããªã£ã¦ãããã¨ããããã¾ãããããããp75ã®å¹³åãp90ã®å¹³åãp95ã®å¹³åã¯ã¯ã¼ã«ã¼æ°ãä¸ãã度ã«é度ãéããªã£ã¦ããªããã¨ããããã¾ããããã®ãã¨ãããã¯ã¼ã«ã¼æ°ãä¸ãããã¨ã§åºæ¬çãªã¬ã¤ãã³ã·ã¼ã¯éããªãããé ãã®ã¬ã¤ãã³ã·ã¼ã¯éããªãã¨ã¯éããªããã¨ããããã¾ããã
èå¯
p50ã®å¹³å以å¤ã¯ç´æã«åããçµæã¨ãªãã¾ãããé«ãã¼ã»ã³ã¿ã¤ã«ã®ã¬ã¤ãã³ã·ã¼ã«ã¯ããããã¯ã¼ã¯ã®é å»¶ã䏿çãªè¼»è¼³ãå½±é¿ãããã¨ãããã®ã§ãé å½ã«éããªã£ã¦ãããªãã£ãå¯è½æ§ãããã¨èãã¾ããã
çµè«
以ä¸ããMedPeerãã®æ¬çªç°å¢ã§YJITæå¹åå¾ã«Unicornã¯ã¼ã«ã¼æ°ãå¢ãããå ´åã®åã¡ããªã¯ã¹ã®å¢æ¸ãæããã«ãã¦ããã¾ããããã®çµæãã¯ã¼ã«ã¼æ°ãå¢ãããã¨ã§ããECSãµã¼ãã¹ã®Memory Utilization Avgã®å¹³åãã¯é å½ã«å¢ãã¦ããããALBã®Response Time p50ã®å¹³åãã¨ãã¬ã¤ãã³ã·ã¼ p50ã®å¹³åãã¯é å½ã«éããªããã¨ããããã¾ãããããã¯ãUnicornã¯ã¼ã«ã¼æ°ãå¢ãããã¨ã§ã¢ããªã±ã¼ã·ã§ã³ã®ã¡ã¢ãªä½¿ç¨éã¯å¢ãã¦ãããåºæ¬çãªéåº¦ã¯æ¹åãã¦ããã¨ãããã¨ã§ãããã
ããããä»ã®ã¡ããªã¯ã¹ã¯ã¯ã¼ã«ã¼ãå¢ãããã¨ã«ãã£ã¦é å½ã«å¤åãã¦ããã¾ããã§ãããããæ£ç¢ºãªåå ã«ã¤ãã¦ã¯æããã«ãªã£ã¦ããªãã®ã§ãä»å¾ã®èª²é¡ã«ãããã¨æãã¾ãã
æå¾ã«
ä»åã®è¨äºã®ä»ã«ãYJITã«é¢é£ãããè¨äºãå·çãã¦ããã®ã§ãèå³ãããæ¹ã¯ãã²èªãã§ã¿ã¦ãã ããã
- Rails APIãµã¼ãã¼ã§ Ruby 3.2 ã® YJIT ãæå¹åãã¦ã¿ãã
- Ruby 3.3(+YJIT)ã¸ã®ã¢ãããã¼ãã«ããããã©ã¼ãã³ã¹å¤åã®è¨æ¸¬
æ¯éèªè ã«ãªã£ã¦ãã ãã
ã¡ããã¢ã§ã¯ä¸ç·ã«åã仲éãåéãã¦ãã¾ãã ãå¿åããå¾ ã¡ãã¦ããã¾ãï¼
â åéãã¸ã·ã§ã³ã¯ãã¡ã medpeer.co.jp
â ã¨ã³ã¸ãã¢ç´¹ä»ãã¼ã¸ã¯ãã¡ã engineer.medpeer.co.jp
â ã¡ããã¢å ¬å¼YouTubeã www.youtube.com
â ã¡ããã¢å
¬å¼note
style.medpeer.co.jp