ä»å¹Žã®åãã«ã ã¯ã©ãŠãVDSã¯ãããªãã¯APIãå°å ¥ããŸããã ã¯ã©ã€ã¢ã³ãã¯ãããã«ãšåãããã«ã¯ã©ãŠãä»®æ³ãã·ã³ãšãã£ã¹ã¯ã§ã»ãŒãã¹ãŠã®ã¢ã¯ã·ã§ã³ãå®è¡ã§ããŸãïŒãã£ã¹ã¯ãšVMã®äœæãåé€ãé¢çšãšãã£ã¹ã¯ãµã€ãºã®å€æŽãªã©ã

APIã®åºçŸãšãšãã«ããã·ã³å ã§åäœããä»®æ³ãã·ã³ïŒVMïŒã®ãªãœãŒã¹ã®ç£èŠã·ã¹ãã ãå®è£ ããå¿ èŠã«å¿ããŠå¿ èŠãªãªãœãŒã¹ïŒèªåã¹ã±ãŒãªã³ã°ïŒASïŒïŒãèªåçã«å¢æžãããšããã¢ã€ãã¢ãçãŸããŸããã
ASã®èª¬æ
ASã·ã¹ãã ã¯APIã«åºã¥ããŠããããããã®ã¿ã¹ã¯ã«ã¯ãå¿
èŠã«å¿ããŠãªãœãŒã¹ããªã³ããã³ãã§å³åº§ã«æäŸãããããªãœãŒã¹ã®å°æ¥ã®å¿
èŠæ§ãæšæž¬/äºæž¬ãããããããšã¯å«ãŸããªãããšãæ確ã«ãã䟡å€ããããŸãã ASã®æ¬è³ªã¯ãçŸåšã®æéãã©ã³ã®ãªãœãŒã¹ãä»®æ³ãã·ã³ã§å®è¡ãããŠããããã»ã¹ã®ä¿èšŒããã*ããã³ã¿ã€ã ãªãŒãª**å®è¡ã®ããã«äžååã«ãªããVMã次ã®æéã«èªåçã«è»¢éããããšãå®å
šã§ããç¬éãä¿®æ£ããå¿
èŠãããããšã§ãã
**ã¿ã€ã ãªãŒ-å®è¡äžã®ããã»ã¹ã®å®è¡ãããã»ããµãªãœãŒã¹ã«ããã£ãŠããå Žåãããã»ã¹ã¯äœããã®æ¹æ³ã§å®è¡ãããããã§ãã ããããå®äºæéã¯äºæž¬äžèœã«ãªããŸãã
*ä¿èšŒãããŸããVMã®RAMã䜿ãæããããã¹ã¯ãããVMã§èšå®ãããŠããªãå Žåãããã¯ãVMã§å®è¡ãããŠããããã»ã¹ã®äžéšããã¹ãŠã®ããã»ã¹ã®åèšã¡ã¢ãªæ¶è²»ããããè¶ ããå Žåã«ãªãã¬ãŒãã£ã³ã°ã·ã¹ãã ã§ã¯ã©ãã·ã¥ããç¶æ³ãè¿ãããšãæå³ããŸãç·éã ã¹ã¯ãããæ§æãããŠããå Žåãããã䜿ãæãããããŸã§èª°ã殺ãããŸããããVMã®é床ãéåžžã«é ããªããŸãã ã¹ã¯ããããŒãã£ã·ã§ã³ã®é床ã«äŸåããŸããããããã®å ŽåãRAMã®é床ããã1æ¡å°ãããªããŸãã
ç¶æ³ãå±æ©ã«è¿ãããšãç解ããããã«ãASã¯ãã°ããã®é芳å¯ãè¡ããªããã°ãªããŸããã çµå±ã®ãšãããç¬æã«è² è·ãæ¥å¢ããç¶æ³ã¯ãæéãå€æŽããã®ã«ååãªçç±ã§ã¯ãªãå¯èœæ§ãé«ãã§ãã ãããã£ãŠãASãç¶æ³ãé倧ã§ããããšãèªèãããšãäœããã®æªãç¶æ³ããã§ã«çºçããŠããå¯èœæ§ãé«ãããšãèæ ®ãã䟡å€ããããŸãïŒãµã€ãã®ããŒãžã蚪åè ã«ãã£ãŠ1åéããŒããããŠããªãããVMã®äžéšã®ããã»ã¹ãæ¢ã«ã¯ã©ãã·ã¥ããŠããŸãïŒ OOM-Killerã«ãã£ãŠçµäºããŸããããã¯ãRAMã䜿ãæããããå Žåã«ã·ã¹ãã ã®æ®ãã®éšåãåäœãç¶ããããã«ãã©ã®ããã»ã¹ãç ç²ã«ããããéžæããLinuxã«ãŒãã«ãµãã·ã¹ãã ã§ãã ã€ãŸããASã¯ãªãœãŒã¹ã®äžè¶³ãããµãŒãã¹ãä¿è·ããããšãä¿èšŒããç¹å¹è¬ã§ã¯ãããŸããã ããããã¿ã€ã ãªãŒãªæ¡åŒµã«ãããªãœãŒã¹ã®æ¯æžã«ããæªåœ±é¿ãæå°éã«æããããã«èšå®ãããŠããŸãã 圌ã¯ããªããèªåã§æ°ã¥ããããæ©ã確å®ã«ãããè¡ãããããªãã®ãµãŒããŒã«åé¡ãçºçããããšãçºèŠããããªããæã§ãªãœãŒã¹ãæ¡å€§ããããã«VMã³ã³ãããŒã«ããã«ã«å°éããæéãããã§ãããã ããã«ãã»ãšãã©ã®å ŽåïŒãã¹ãŠãè² è·ã®å¢å ã®ãããã¡ã€ã«ã«äŸåããŸãïŒãASã¯ããªãœãŒã¹ã®äžè¶³ãæ確ãªåŠå®çãªæ¹æ³ã§çŸããåã«é¢çšãåãæ¿ããŸãã
åæã«ããªãœãŒã¹ã«é¢ããé倧ãªç¶æ³ã芳å¯ãããªãå ŽåãASã¯ãã®ç¹å®ã®é¢çšãå®éã«äœ¿çšããå¿ èŠããããã©ããããŸãã¯å®äŸ¡ãªé¢çšã§ååãã©ãããç解ããããšããŠããŸãã VMã®å質ã
ãã£ã¹ã¯ã§ãåæ§ã§ãã ã¹ããŒã¹ãäžè¶³ããåã«æ¡åŒµããããšããŸãã ãã£ã¹ã¯ã®å Žåãèªååã¯äžæ¹åã«ã®ã¿æ©èœããŸãã ãã¡ã€ã«ã·ã¹ãã ã®çž®å°ã¯ãä»®æ³ãã·ã³ãåæ¢ããå¿ èŠããããªãã©ã€ã³æäœã§ãã å¿ èŠã«å¿ããŠãã³ã³ãããŒã«ããã«ãããããè¡ãããšãã§ããŸãã
ç°ãªãåºæºã«åŸã£ãŠASãå«ããå¯èœæ§ãå ±æããŸããã ããšãã°ãVMå ã§å®è¡ãããŠããããã»ã¹ã®é床ãäœæ¥ã®å®å®æ§ã»ã©éèŠã§ã¯ãªããè¿œå ã®ãéãå¿ èŠãšããªãå Žåã¯ãã¡ã¢ãªåºæºã«ãã£ãŠèªåã¹ã±ãŒãªã³ã°ãåå¥ã«æå¹ã«ã§ããŸãããããã»ããµã«å«ããããšã¯ã§ããŸããã ããšãã°ã倧ããªããŒã¿é åãããŒã¿ããŒã¹ã«ã¢ããããŒãããããä»ã®ã¹ã±ãžã¥ãŒã«ããã倧ããªããŒã¿é åã®åŠçãªã©ãããçš®ã®éãé·æéã®ããã»ã¹ãä»®æ³ãã·ã³ã§å®æçã«èµ·åãããå Žåããã®ããã»ã¹ããã€å®äºãããã¯éèŠã§ã¯ãããŸããïŒ 1ã2æéã§ããããã®ããã»ã¹ãååãšããŠçµäºããRAMãäžè¶³ããå Žåã«ãªãã¬ãŒãã£ã³ã°ã·ã¹ãã ã«ãã£ãŠèª€ã£ãŠåŒ·å¶çµäºãããªãããšãéåžžã«éèŠã§ãã
ãŸãã¯ãVMã§å®è¡ããŠããå°ããªã¢ããªã±ãŒã·ã§ã³ããããè¿œå ã®ã¡ã¢ãªãšCPUãå¿ èŠãšããªããããããã絶ããèç©ãããã°ããã£ã¹ã¯å šäœãè©°ãŸãããéèŠãªããã»ã¹ãåæ¢ãããããšãæããŠããå Žåã¯ãèªåæ¡åŒµã®ã¿ãæå¹ã«ããããšãã§ããŸãé転ããŠãæ¡åŒµãèš±å¯ããæºåãã§ããŠããæ倧å¶éãéžæããŸãã ããã»ããµãã¡ã¢ãªã§ã¹ã±ãŒãªã³ã°ããã«ã¯ãæéãã©ã³ã®ã©ã€ã³ã§ãªãœãŒã¹ãå€æŽããããã®äžéãšäžéãèšå®ããå¿ èŠããããŸãã
æéãå€æŽãããããã©ã€ããæ¡åŒµããããããã³ã«ãã³ã³ãããŒã«ããã«ããé£çµ¡å ã«éç¥å 容ãéä¿¡ãããäœãè¡ãããããšãã®çç±ã説æãããŸãã ãããã£ãŠããããç°åžžãªç¶æ³ã§ãããšæãããå Žåã¯ãããã«ãµãŒããŒã«ã¢ã¯ã»ã¹ããŠãè² è·ãå¢å ããçç±ãŸãã¯ãã£ã¹ã¯å šäœãæ£ç¢ºã«è©°ãŸã£ãŠããåå ãææ¡ã§ããŸãã
ãããã©ã®ããã«æ©èœãããã詳ããèŠãŠã¿ãŸãããã
ãããã£ãŠããã®å Žåã èªåã¹ã±ãŒãªã³ã°ã¯cronã«ãã£ãŠå®è¡ãããPythonã¹ã¯ãªããã®ã»ããã§ãã èµ·åæã«ã以åã®æž¬å®å±¥æŽãèªã¿åããã·ã¹ãã ã®è¿œå ã®å¿ èŠãªèšºæãè¡ãã次ã®éå§ã®ããã«æŽæ°ãããå±¥æŽãä¿åããåä¿¡ããããŒã¿ãè©äŸ¡ããå¿ èŠã«å¿ããŠãæéãå€æŽããããã£ã¹ã¯ãæ¡åŒµããããŸãã¯åã«å®äºããã¢ã¯ã·ã§ã³ãå®è¡ããŸãã
èªåã¹ã±ãŒãªã³ã°ãã©ã€ãã
è€æ°ã®ãã©ã€ããä»®æ³ãã·ã³ã«æ¥ç¶ã§ããŸãã èªåã¹ã±ãŒãªã³ã°ã¯ãã©ã€ãããšã«åå¥ã«æå¹ã«ã§ãããã©ã€ããèªåçã«æ¡åŒµã§ããå¶éãåå¥ã«èšå®ã§ããŸãã
å¶éäºé ïŒ
ããã©ã«ãã§ã¯ãext4ãã¡ã€ã«ã·ã¹ãã ã¯æ°ãããã£ã¹ã¯ã«ã€ã³ã¹ããŒã«ãããŸããããŠãŒã¶ãŒã¯åŸã§ä»ã®ãã¡ã€ã«ã·ã¹ãã ãããŒãã£ã·ã§ã³ããŒãã«ãlvmãªã©ãå¿ èŠãªãã®ããã£ã¹ã¯ã«ã€ã³ã¹ããŒã«ã§ããŸãã FSã¯ãã£ã¹ã¯èªäœãšåæ§ã«èªåçã«æ¡åŒµããå¿ èŠãããããïŒããã§ãªããã°ãASã®æ¬è³ªã¯å€±ãããŸãïŒããã£ã¹ã¯ã«ã€ã³ã¹ããŒã«ãããŠãããã®ã«é¢ããŠç Žå£çãªã¢ã¯ã·ã§ã³ããšããªã¹ã¯ããããæãäžå¿«ãªã±ãŒã¹ã§ã¯ãããŒã¿æ倱ã«ã ãããã£ãŠãæšæºã®ext4 FSã§ã®ã¿åäœããASã®æ©èœãå¶éããããšã«ããŸããã
ãŸããCentos6ããŒã¹ã®ã·ã¹ãã ã®ãã©ã€ãã§ã¯èªåã¹ã±ãŒãªã³ã°ãæå¹ã«ã§ããŸãããããã¯ãå€ãã«ãŒãã«ã䜿çšãããŠããããã§ããudevã¯æ£åžžã«åäœããããã®çµæããã©ã€ãã®æ¡åŒµåŸã«ãã¡ã€ã«ã·ã¹ãã ã¯èªåçã«æ¡åŒµããŸããã
ä»äºã®ã¡ã«ããºã ïŒ
cronã«ãããšããã£ã¹ã¯äžã§7åããšã«1åèªåã¹ã±ãŒãªã³ã°ãéå§ãããŸãã ã·ã¹ãã ã«æ¥ç¶ãããŠãããã¹ãŠã®ãã©ã€ãã«é¢ããæ å ±ã¯ãå©çšå¯èœãªãã¹ãŠã®ãœãŒã¹ããåéãããŸãã
1.ããã«ã§ASãèšå®ãããšãèšå®ãjson /etc/autoscaling/autoscaling.confã®åœ¢åŒã§ä»®æ³ãã·ã³ã«éä¿¡ãããŸãã ãã®VMïŒãããã®uidïŒã«æ¥ç¶ãããŠãããã¹ãŠã®ãã£ã¹ã¯ã®ãªã¹ãããããã«å¯ŸããŠèªåã¹ã±ãŒãªã³ã°ãæå¹ã«ãªã£ãŠãããã©ãããããã³æ¡åŒµå¯èœãªæ倧æ°ã«é¢ããæ å ±ããããŸãã
2. / sys / class / blockã®VMå ã§ãã·ã¹ãã ã«è¡šç€ºããããã¹ãŠã®ãã£ã¹ã¯ã®ãªã¹ããååŸããŸãã
3. / proc /ããŒãã£ã·ã§ã³ããããã£ã¹ã¯ã®ãµã€ãºãååŸããŸãã
4. / proc / mountsãããFSã®ã¿ã€ããšãèªã¿åã/æžã蟌ã¿ã¢ãŒãã§ããŠã³ããããŠãããã©ããã«é¢ããæ å ±ãæœåºããŸãã
5.åºådfãããFSã®ãµã€ãºã«é¢ããæ å ±ãšãFSã«æ®ã£ãŠãã空ãã¹ããŒã¹ã®éãååŸããŸãã
ãã®çµæãæ
å ±ã®åéã®çµæãšããŠããã¹ãŠã®ãã£ã¹ã¯ã«ããŒã¿ãå
¥åãããããŒãã«ã®ãããªãã®ãåŸãããŸãã
Disk id disk_size max_size autoscale_enabled fs_type is_writable fs_size fs_free ------------------------------------------------------------------------------------------ vda 1081 5 40 True ext4 True 5 1.2 vdb None 0.1 None None iso9660 False 0.1 0.1 vdc 1082 10 45 True ext4 True 10 6.2 vdd 1234 5 15 False ext4 True 5 0.3
ãã£ã¹ã¯äžã®å¿ èŠãªæ å ±ããã¹ãŠåéã§ããå Žåãé©åãªFSïŒext4ïŒããããASãæå¹ã«ãªã£ãŠããå Žåããã§ãã¯ãå®è¡ãããŸãïŒFSã«æ®ã£ãŠãã空ãé åã®å²åã ãã®å€ããããå€10ïŒ æªæºã§ããããšãå€æããå ŽåãAPIåŒã³åºããããã«ã«éä¿¡ããããã®ãã£ã¹ã¯ãå¢å ããŸãã ããã«ã¯ããã®ãã£ã¹ã¯ãå¢ããããšã«ã€ããŠããã®VMãåäœããŠãããã¹ã¿ãŒãµãŒããŒã«å¯Ÿå¿ããã³ãã³ããéä¿¡ããŸãã ïŒãŸããããã«ã¯ããã®ã€ãã³ãã«é¢ããé£çµ¡å ã¡ãŒã«ã«ãå¿ èŠãªãã¹ãŠã®è©³çŽ°ãèšèŒããã¡ãŒã«ãéä¿¡ããŸãïŒã ãã£ã¹ã¯ãæ¡åŒµãããšãããŠãŒã¶ãŒã·ã¹ãã å ã®udevã¯ãã®ã€ãã³ããã€ã³ã¿ãŒã»ããããFCïŒresize2fsïŒãæ¡åŒµããããã»ã¹ãéå§ããŸãã
ãã¹ãŠã®ASã¢ã¯ã·ã§ã³ã¯ãä»®æ³ãã·ã³å ã®/ var / log / syslogããã³ããã«ãã°ã«èšé²ãããŸãã
é¢çšã®èªåã¹ã±ãŒãªã³ã°ã
ã¡ã¢ãªãŸãã¯ããã»ããµãå€æŽããã«ã¯ãå¥ã®é¢çšãžã®åãæ¿ããé©çšãããŸãã json圢åŒã®APIãä»ããŠåãåãããšãã§ããé¢çšã®ã©ã€ã³ããããŸãã
çŸæç¹ã§ã¯æ¬¡ã®ããã«ãªã£ãŠããŸãã
[ { "memsize": 1024, "name": "tiny", "ncpu": 2 }, { "memsize": 2048, "name": "small", "ncpu": 2 }, { "memsize": 4096, "name": "medium", "ncpu": 4 }, { "memsize": 8192, "name": "large", "ncpu": 4 }, { "memsize": 8192, "name": "xl8", "ncpu": 8 }, { "memsize": 16384, "name": "xl16", "ncpu": 8 } ]
ã芧ã®ãšãããè¿é£ã®é¢çšãžã®ç§»è¡ã«ãã£ãŠããã©ã¡ãŒã¿ãŒã®1ã€ïŒcpu / memsizeïŒãå¢å /æžå°ããŸããã ããšãã°ã ãTINYããããSMALLãã«åãæ¿ããŠãã¡ã¢ãªéã¯å¢å ããã ãã§ãCPUã¯è¿œå ãããŸããã CPUããTINYãã«å¢ããã«ã¯ã ãMEDIUMãã«çŽæ¥ç§»åããå¿ èŠããããŸãã ããã¯ãåžæããé¢çšãéžæããéã«èæ ®ãããŸãã
é¢çšã®èªåã¹ã±ãŒãªã³ã°ã ã¡ã¢ãªã
ã¡ã¢ãªæ¶è²»ã«é¢ããæ å ±ã¯ã / proc / meminfoããååŸãããŸãã
ãã©ã¡ãŒã¿ãŒãMemTotalãããMemFreeãããBuffersãããCachedããããã³ãShmemãã«åºã¥ããŠãçŸåšäœ¿çšãããŠããã¡ã¢ãªãŒã®éãããããå¿ èŠã«å¿ããŠè§£æŸã§ããŸããã
ã䜿çšæžã¿ã=ãMemTotalã-ãMemFreeã-ããããã¡ã-ããã£ãã·ã¥ã+ãShmemã
ããããã¡ãã¯ãå°ããªãã£ã¹ã¯ãããã¯ã®äžæã¹ãã¬ãŒãžã«å²ãåœãŠãããã¡ã¢ãªã§ãã ãã£ã¹ã¯I / Oãé«éåããããã«äœ¿çšãããå¿ èŠã«å¿ããŠãªãã¬ãŒãã£ã³ã°ã·ã¹ãã ã«ãã£ãŠãã®ã¡ã¢ãªããã°ãã解æŸã§ããŸãïŒããã»ã¹ã®ãããããæªäœ¿çšã¡ã¢ãªãããå€ãã®ã¡ã¢ãªãå¿ èŠãšããå ŽåïŒã
ããã£ãã·ã¥ã -ãã£ã¹ã¯ããèªã¿åããããã¡ã€ã«ã®ãã£ãã·ã¥ã ãã®ã¡ã¢ãªãããã«è§£æŸã§ããŸãã
ãããã ãShmemãããããŸããããã¯ãããã»ã¹ééä¿¡ïŒIPCïŒã®æéã®æ¹æ³ãšããŠäœ¿çšãããå ±æã¡ã¢ãªã§ãã / proc / meminfoã§ã¯ã ãShmemãã¯ãCachedãã®äžéšã§ãããããã»ã¹ã®ããããã§äœ¿çšãããŠããéãã¡ã¢ãªã®ãã®éšåã¯ããã«è§£æŸã§ããŸããã
次ã«ã空ãã¡ã¢ãªã®å²åãšããªã³ããã³ãã§è§£æŸã§ããã¡ã¢ãªã®å²åã次ã®ããã«èšç®ã§ããŸãã
('MemTotal' - 'Used') * 100 / 'MemTotal'
ãŸãã¯
('MemFree' + 'Buffers' + 'Cached' - 'Shmem') * 100 / 'MemTotal'
ããè¯ãé¢çšãå€æŽãã決å®ãäžãããã«ãæ¯ååã«ããã€ãã®æž¬å®ãè¡ãããã®ãã³ã«ä»¥åã®æž¬å®ã®å±¥æŽãä¿æããŸãã éå»5åéã®ç©ºãã¡ã¢ãªã®å¹³åå€ããããå€20ïŒ æªæºã§ããå ŽåããŠãŒã¶ãŒã®VMã¯æ¢ã«çå®ã«ã¯ãªãã£ã«ã«ãŸãŒã³ã«ç§»åããŠãããšèããããŸãããããªãåé¡ãåé¿ããããã«ãçŸåšã®ã¡ã¢ãªãããå€ãã®ã¡ã¢ãªããã次ã®ã¿ãªãã«æéãåŒãäžããææã§ãã é©åãªAPIåŒã³åºããé©çšããŸãã é¢çšã¯ãªããŒãããã«ã»ãŒç¬æã«å€æŽãããã·ã¹ãã ã¯ããã«å€§å¹ ã«ã¡ã¢ãªãå¢ãããŸãã ãŠãŒã¶ãŒã«ã¯ãã€ãã³ãã«é¢ããé£çµ¡å ã¡ãŒã«ã«ã¡ãŒã«ãéä¿¡ãããŸãã
é¢çšãå€æŽããããšãã®çµ±èšåéå±¥æŽã¯ãæ°ããæ¡ä»¶ã§ã®æ°ãã枬å®ãžã®åœ±é¿ãé¿ããããã«ãªã»ãããããŸãã ãããã£ãŠãæ°ãã枬å®å±¥æŽãèç©ããããŸã§ã次ã®æéå€æŽã¯çºçããŸããã
ãŸãããã¹ãŠã®ASã¢ã¯ã·ã§ã³ã¯/ var / log / syslogããã³ããã«ãã°ã«èšé²ãããŸãã
é¢çšã®èªåã¹ã±ãŒãªã³ã°ã ããã»ããµãŒ
CPUæ¶è²»ã«é¢ããçµ±èšã¯1åã«1ååéãããæåŸã®10åéã®å±¥æŽãèæ ®ãããŸãã CPUã®çµ±èšã¯/ proc / statããååŸãããŸãããã¡ã¢ãªã®å Žåããã解éãããå°é£ã§ãã
å®éã«ã¯ããªãœãŒã¹ã®ããæ£ç¢ºãªå²ãåœãŠã®ããã«ããã¹ã¿ãŒãµãŒããŒã®ããã»ããµã®å®éã®ã³ã¢ã§ã¯ãªãä»®æ³ãã·ã³ã«é 賊ããŸãããåžžã«ãã¹ã¿ãŒãµãŒããŒã®ä»®æ³ãã·ã³12ã³ã¢ã«é 賊ããcgroupsã䜿çšããŠä»®æ³ãã·ã³ãæ¶è²»ã§ããã³ã¢ã®å²åãå¶éããŸãïŒãåãã®ããã«ãcgroupsã¯ãããã»ã¹ãŸãã¯OSããã»ã¹ã®ã°ã«ãŒãã®ãªãœãŒã¹ã®æäŸãå¶éã§ããLinuxã«ãŒãã«ãã¯ãããžãŒã§ãïŒã ãããã£ãŠãMEDIUMæéã§VMã«4ã€ã®CPUã³ã¢ãæäŸããå Žåãããã¯12ã®å®éã®ã³ã¢ãæäŸãããããšãæå³ããcgroupsã䜿çšãããšCPUæ¶è²»ã¯1ã€ã®ã³ã¢ã®400ïŒ ã«å¶éãããŸãã å®éã®ã«ãŒãã«ãä»®æ³ãã·ã³ã«çºè¡ããè€æ°ã®VMã1ã€ã®ã³ã¢ã§å®è¡ãããŠããå Žåãæçµçã«CPUã³ã¢ã®ãªãœãŒã¹ãå ±æããããããã®ã¢ãããŒãã¯ãªãœãŒã¹ãæäŸãã粟床ãšæè»æ§ã«å©ç¹ããããŸããä»®æ³ãã·ã³ã¯ãŸãã«çŽæããããã®ã§ãïŒãã ãããã¹ã¿ãŒãµãŒããŒã®ããã»ããµè² è·ãç£èŠããå€å¿ãªãã¹ã¿ãŒãµãŒããŒéã§ä»®æ³ãã·ã³ãã¿ã€ã ãªãŒã«ç§»è¡ããå ŽåïŒã ãŸããæŽæ°ã®CPUã³ã¢ãçºè¡ããããšã¯ã§ããŸããããããšãã°ã1ã€ã®ã³ã¢ã®123ïŒ ãçºè¡ããŸãïŒããã¯äœ¿çšããŸããïŒã
äžæ¹ããã®ã¢ãããŒãã«ã¯ãã€ãã¹ç¹ããããŸããä»®æ³ãã·ã³ã®ææè ã«ãšã£ãŠã®ç¶æ³ã¯ããã»ã©æçœã§ã¯ãããŸããã / proc / cpuinfo ã / proc / stat ãããã³topãhtopãatopãªã©ã®ãã¹ãŠã®ãŠãŒãã£ãªãã£ã§ã¯ã12åã®CPUã³ã¢ã衚瀺ãããŸãã ãŸãããã®ãããªãŠãŒãã£ãªãã£ã䜿çšããŠç¶æ³ãæ£ããè©äŸ¡ããã«ã¯ããããã®å¶éã®æ¬è³ªãããå°ãç解ããå¿ èŠããããŸãïŒãã ãããŠãŒã¶ãŒã®å©äŸ¿æ§ã®ããã«ãå¿ èŠãªæ å ±ã¯ãã¹ãŠã³ã³ãããŒã«ããã«ã«ãããããã圢åŒã§è¡šç€ºãããŸãïŒã
ãããã£ãŠã/ proc / statãã次ã®ããã«è¡šç€ºãããŸãã
cpu 308468 0 155290 2087891920 139327 0 1717 323604 0 0 cpu0 52005 0 18792 173912232 41000 0 734 40868 0 0 cpu1 20211 0 23423 173905770 5134 0 253 47490 0 0 cpu2 58747 0 22624 173929843 17311 0 162 35843 0 0 cpu3 46602 0 17294 173965248 16777 0 100 31919 0 0 cpu4 21629 0 9426 174009578 8572 0 66 21842 0 0 cpu5 17057 0 10685 174021499 6986 0 53 18868 0 0 cpu6 14844 0 8881 174011454 5011 0 58 25400 0 0 cpu7 17524 0 10358 174023057 6182 0 66 20343 0 0 cpu8 15126 0 8597 174030215 7034 0 47 19455 0 0 cpu9 15437 0 9150 174023863 10817 0 56 20722 0 0 cpu10 15456 0 8545 174028209 8363 0 62 21390 0 0 cpu11 13826 0 7511 174030947 6135 0 56 19460 0 0
ããã«ããã®å Žåã®12ã³ã¢ã«é¢ããæ å ±ã¯åœ¹ã«ç«ã¡ãŸããã ãã¹ãŠã®ã³ã¢ã®æ å ±ãèŠçŽããæåã®è¡ã§ååã§ãã
cpu 308468 0 155290 2087891920 139327 0 1717 323604 0 0
ãã®æååã®æ°å€ãã£ãŒã«ãã¯ã次ãé çªã«æå³ããŸãã
ãŠãŒã¶ãŒ -ãŠãŒã¶ãŒç©ºéã§ããã»ã¹ã®åŠçã«è²»ããããããã»ããµãŒæéã
niceãåãã§ãããåªå é äœãå€æŽãããïŒniceïŒããã»ã¹çšã§ãã
system-ã·ã¹ãã ã³ãŒã«ã®äœæã«è²»ããããæéã
idle-ã¢ã€ãã«æéïŒããã»ããµããã®ãªã¹ãã®ä»ã®ã¿ã¹ã¯ã§ããžãŒã§ã¯ãªãéïŒã
iowait-å ¥åºåæäœãèŠè¶ããŠããã»ããµãŒãè²»ãããæéã
irq-å²ã蟌ã¿ãåŠçããæéã
softirq-ããã€ãã®ãç°¡åãªãäžæã ïŒæããã«ããããäœã§ããããç解ããã«ã¯ãå·çæç¹ã§ã¢ã¬ã¯ã»ã€ã»ã¯ãºããã©ããããã®ãšåããããæªããŠã©ãã«ã飲ãå¿ èŠããããŸããïŒ
ã¹ããŒã« -ãã¹ã¿ãŒããã®ãªãœãŒã¹ãå¥ã®VMã«æäŸãããšããäºå®ã®ããã«ããã®ä»®æ³ãã·ã³ã«ãã£ãŠå€±ãããæéïŒããã³/ãŸãã¯cgroupså¶éãæ©èœããå ŽåïŒã
guest -Linuxãå®è¡ããŠããã²ã¹ãã·ã¹ãã ã®ä»®æ³CPUã«è²»ããããæéïŒãã®ãã©ã¡ãŒã¿ãŒã¯ãã¹ã¿ãŒã·ã¹ãã ã§ã®ã¿æå³ããããŸãïŒã
guest_nice-åæ§ã«ãå€æŽãããåªå 床ãæã€ã²ã¹ãã·ã¹ãã çšã
niceãåãã§ãããåªå é äœãå€æŽãããïŒniceïŒããã»ã¹çšã§ãã
system-ã·ã¹ãã ã³ãŒã«ã®äœæã«è²»ããããæéã
idle-ã¢ã€ãã«æéïŒããã»ããµããã®ãªã¹ãã®ä»ã®ã¿ã¹ã¯ã§ããžãŒã§ã¯ãªãéïŒã
iowait-å ¥åºåæäœãèŠè¶ããŠããã»ããµãŒãè²»ãããæéã
irq-å²ã蟌ã¿ãåŠçããæéã
softirq-ããã€ãã®ãç°¡åãªãäžæã ïŒæããã«ããããäœã§ããããç解ããã«ã¯ãå·çæç¹ã§ã¢ã¬ã¯ã»ã€ã»ã¯ãºããã©ããããã®ãšåããããæªããŠã©ãã«ã飲ãå¿ èŠããããŸããïŒ
ã¹ããŒã« -ãã¹ã¿ãŒããã®ãªãœãŒã¹ãå¥ã®VMã«æäŸãããšããäºå®ã®ããã«ããã®ä»®æ³ãã·ã³ã«ãã£ãŠå€±ãããæéïŒããã³/ãŸãã¯cgroupså¶éãæ©èœããå ŽåïŒã
guest -Linuxãå®è¡ããŠããã²ã¹ãã·ã¹ãã ã®ä»®æ³CPUã«è²»ããããæéïŒãã®ãã©ã¡ãŒã¿ãŒã¯ãã¹ã¿ãŒã·ã¹ãã ã§ã®ã¿æå³ããããŸãïŒã
guest_nice-åæ§ã«ãå€æŽãããåªå 床ãæã€ã²ã¹ãã·ã¹ãã çšã
ãŸããCPUã®çµ±èšãèšç®ããã«ã¯ã / proc / statããã®æ å ±ã«å ããŠããã®VMã®cgroupã䜿çšããŠå®éã«å²ãåœãŠãããŠããCPUã³ã¢ã®æ°ã«é¢ããæ å ±ãå¿ èŠã§ãã äºçŽ°ãªæ¹æ³ã§ãVMèªäœã®å éšã¯èªèã§ããŸããã
ãããã£ãŠãä»®æ³ãã·ã³ã«é¢ããåºæ¬æ å ±ãæäŸããå¥ã®APIåŒã³åºãã䜿çšãããŸãã
jsonã§ã¯ã次ã®ããã«è¡šãããšãã§ããŸãã
{ "id": 11004, "ips": [ { "id": 11993, "ipvalue": "185.41.161.231" } ], "memsize": 1024, "monitoring_enabled": false, "name": "esokolov_AS_test", "ncpu": 2, "ssh_keys": [ 42 ], "state": "active", "storages": [ 12344 ], "type": "tiny", "vm_id": "vm_40b5d315" }
ã¹ã±ãŒã«ããŠã³ã§ããããã«ããã«ã¯ãããäœãé¢çšã«åãæ¿ããå Žåã«ã³ã¢ãããã€ããããç¥ãå¿ èŠããããŸãã ãã®æ å ±ã¯ãåè¿°ã®æéè¡šããååŸãããŸãã ããã«ããã®æ å ±ã«å¯Ÿããåããªã¯ãšã¹ãïŒãã®VMã®é¢çšãšãã©ã¡ãŒã¿ãŒã«é¢ããïŒã§APIãæ¯åãã«ããªãããã«ããã®æ å ±ã¯ãã£ãã·ã¥ãããŸãã é¢çšãå€æŽããåã«ããã£ãã·ã¥ããã®æ å ±ãé¢é£æ§ããããšèŠãªãããšãã§ããŸãã é¢çšãå€æŽãããå Žåãã·ã¹ãã ãåèµ·åããå ŽåããŸãã¯æå®ãããæéïŒãã®å Žåã¯1æ¥ïŒããé·ãä¿åãããå Žåããã£ãã·ã¥ã¯ãªã»ãããããŸãã
/ proc / statã«ã¯ãã·ã¹ãã ã®éå§ããã®æ å ±ãåçŽãªæŽæ°ã®æéã«ãŠã³ã¿ãŒïŒã»ãšãã©ã®ã¢ãŒããã¯ãã£ã§ã¯100åã®1ç§ïŒãšããŠæ ŒçŽãããŸãã
ãã®ãããéå»10åéã®çµ±èšãååŸããã ãã§ãªããç¹å®ã®æž¬å®æéããšã«è²»ãããããªãœãŒã¹ã®éãææ¡ããããã«å±¥æŽãä¿åããå¿ èŠããããŸãïŒçŸåšã®å€ããåã®æéã®å€ãæžç®ããŸãããããã®å€ããcur_userãããcur_niceããšåŒã³ãŸãïŒ ããcur_systemããªã©ïŒã
ãããã£ãŠã / proc / statããCPUãªãœãŒã¹ã®åèšéãèšç®ã§ããŸãïŒ ãtotalããšåŒã³ãŸãããïŒã
'total' = 'user' + 'nice' + 'system' + 'idle' + 'iowait' + 'irq' + 'softirq' + 'steal'
çŸåšã®æéã®åèšCPUãªãœãŒã¹ïŒçŸåšã®æž¬å®ã®ãåèšãããåã®æž¬å®ãããåèšããæžç®ããŠãcur_totalããšåŒã³ãŸãããïŒã ããã¯ã12ã³ã¢ãã¹ãŠã®ãªãœãŒã¹ã§ãã ãã®å Žåããã®ä»®æ³ãã·ã³ã«äžããããéšåïŒ 'my_cur_total' ïŒã¯æ¬¡ãšçãããªããŸãïŒ
'my_cur_total' = 'cur_total' * ncpu / 12
ncpuã¯VMæ å ±ïŒã«ãŒãã«ã®cgroups-limitïŒããååŸãããŸãã
ããã§ããã®VMã®çŸåšã®æéã®å®éã®ãã¢ã€ãã«ã ïŒCPUã¢ã€ãã«æéïŒãèšç®ã§ããŸãïŒ ãmy_cur_idleããšåŒã³ãŸãããïŒã
'my_cur_idle' = 'my_cur_total' - 'cur_user' - 'cur_nice' - 'cur_system' - 'cur_iowait' - 'cur_irq' - 'cur_softirq'
ãã®å€ã/ proc / statããã®ãã¢ã€ãã«ããšã¯ã»ãšãã©é¢ä¿ããªãããšã¯æããã§ãã ããã§ããã®å€ã¯12ã³ã¢ãã¹ãŠã®ã¢ã€ãã«æéãæå³ããŸãã
'my_cur_idle' ã 'cur_iowait' ã 'cur_steal'ãªã©ã®å€ã¯ã 'my_cur_total'ã®å²åãšããŠè¡šãããåºæ¬çã«topãatopãhtopãªã©ã®ãŠãŒãã£ãªãã£ã«ãã£ãŠé垞衚瀺ãããå€ã§ãã
ãããã¯é¢çšãåãæ¿ããããã®åºç€ã§ãã ã€ãŸããçŸåšã®ç©ºãCPUã®å²åãèšç®ããã枬å®å±¥æŽã«èšé²ãããŸãã éå»10åéã®ãã®å²åã®å¹³åå€ãã¯ãªãã£ã«ã«10ïŒ ãäžåãå Žåãé¢çšãããå€ãã®CPUãåããé¢çšã«åãæ¿ããŸãã ã€ãŸããåãæ¿ãã®çç±ã¯ãéå»10åéã«ä»®æ³ãã·ã³ã§å¹³å90ïŒ ãè¶ ããCPUãæ¶è²»ãããç¶æ³ã§ãã
ãã¡ããã枬å®æéãšãããå€ã¯ãããšãã°ãCPUå šäœã䜿ãæãããŠæ°å以å ã«åŠçãå®äºããéãã¹ã¯ãªããã1åã ãèµ·åããããšã¯ãé¢çšãåãæ¿ããæ£åœãªçç±ã§ã¯ãªããšããä»®å®ããçµéšçã«åãããŠããŸãã ãã ãããããã®ãã©ã¡ãŒã¿ãŒã¯ãŠãŒã¶ãŒã®ãã£ãŒãããã¯ã«åŸã£ãŠèª¿æŽã§ããŸãïŒASã¹ã¯ãªãããšèšå®ã¯ãæ°ããããŒãžã§ã³ããªãªãŒã¹ããããšä»®æ³ãã·ã³ã§èªåçã«æŽæ°ãããŸãïŒã
èªåã¹ã±ãŒãªã³ã°çãäžããŸãã
ããå°ãªãã¡ã¢ãªãŸãã¯ããå°ãªãCPUã§ä»¥åã®æéãåŒãäžããã·ã¹ãã ã«å°çãäœããªãããã«ããã«ã¯ãåã®æéã§çŸåšã®è² è·ãããã»ããµãšã¡ã¢ãªã®äž¡æ¹ã®å©çšå¯èœãªãªãœãŒã¹ã«å®å šã«åãŸãããã«ããå¿ èŠããããŸããåæã«ãåãæ¿ãåŸããã«äœé¢çšã®ç¶æ³ãé倧ã«ãªããªãããã«ãããããã®ããŒãžã³ãæ®ããŸãã ããããããŸããæãè¿ãé¢çšã®ã¿ã«äžåºŠã«åãæ¿ããããšãã§ããŸãïŒ2ã€ã®é¢çšãåãæ¿ããããšãã§ããå Žåãããã¯2ã€ã®ã¹ãããã§è¡ãããŸãïŒã ãããŠã第äºã«ãããã¯ãåã®æéè¡šã®ãã©ã¡ãŒã¿ã«åºã¥ããŠãã¡ã¢ãªãšããã»ããµã«å¯ŸããŠäžèšã®ãã¹ãŠã®èšç®ãè¡ãå¿ èŠãããããšãæå³ããŸãïŒã¡ã¢ãªãšCPUãæäŸãããéïŒã ãããã£ãŠããããã®ãã©ã¡ãŒã¿ã¯æéè¡šããååŸãããŸãã ãããŠãã·ã¹ãã ã®è² è·ã®åºæºãååŸããããã®äžèšã®ãã¹ãŠã®æšè«ã¯ã以åã®æéã®ãããã®ãã©ã¡ãŒã¿ãŒãèæ ®ã«å ¥ããŠåæã«å®è¡ãããŸãã ãŸããå±¥æŽãä¿åããŸãã ã€ãŸããçµæãšããŠãçŸåšã®è² è·ã§ç¹å®ã®ä»®æ³ãã·ã³ã以åã®æéã§ãã£ãå Žåã«èšç®ãããå€ãåæã«ååŸããŸãã
ãã ããé¢çšã®çµ¶ãéãªãåãæ¿ããæé€ããããã«ãåãæ¿ãã®ãããå€ã¯åãæ¿ãã®ãããå€ãšãããã«ç°ãªããŸãã
ãããã£ãŠãããäœãé¢çšã§åãæ¿ããã«ã¯ãåãæ¿ãåŸã䜿çšãããŠããªãCPUïŒã¢ã€ãã«ïŒã®å°ãªããšã20ïŒ ãšç©ºãã¡ã¢ãªïŒãŸãã¯è§£æŸå¯èœãªã¡ã¢ãª-ãããã¡ãšãã£ã¹ã¯ãã£ãã·ã¥ïŒã®å°ãªããšã30ïŒ ãå¿ èŠã§ãã ãŸããåãæ¿ãã®çç±ã¯ã1åéãã®æž¬å®ã§ã¯ãªããæåŸã®10åã®æž¬å®ã®å¹³åçµæã§ãã
PSã ãã§ã«ã¯ã©ã€ã¢ã³ãã§ããå Žåã¯ãã³ã³ãããŒã«ããã«-bit.ly/Panel-NetAngelsã§èªåã¹ã±ãŒãªã³ã°ã«æ¥ç¶ã§ããŸãã
ããã«æ°ããã¢ã«ãŠã³ããç»é²ããã«ã¯