OpenVZã¯ãLinuxã«ãŒãã«çšã®ã³ã³ãããŒä»®æ³åãã¯ãããžãŒã®OpenSourceå®è£ ã§ãããOpenVZã«ãŒãã«ãåããåäžã·ã¹ãã äžã§ãããŸããŸãªLinuxãã£ã¹ããªãã¥ãŒã·ã§ã³ãå«ãå€ãã®ä»®æ³ç°å¢ã§å®è¡ã§ããŸãã å¯åºŠã匟åæ§ãRAMãµã€ãºã®èŠä»¶ãå¿çé床ãªã©ã®å€ãã®ããã©ãŒãã³ã¹ã€ã³ãžã±ãŒã¿ã®æ©èœïŒã³ã³ããä»®æ³åã¯ãéã§ã¯ãªãã«ãŒãã«ã¬ãã«ïŒã«ãããŸãã -ä»ã®ä»®æ³åãã¯ãããžãŒãããããŸãæ©èœããŸãã ããšãã°ã ããã§ã¯ãåŸæ¥ã®ãã€ããŒãã€ã¶ãŒä»®æ³åã·ã¹ãã ãšã®OpenVZããã©ãŒãã³ã¹ã®æ¯èŒãèŠãããšãã§ããŸãã ããããããã«å ããŠãLinuxãšOpenVZã«ã¯åŸ®èª¿æŽã®ããã®ãªãã·ã§ã³ããããããããŸãã
ãã®èšäºã§ã¯ãOpenVZã·ã¹ãã å šäœã®ããã©ãŒãã³ã¹ãæ¹åã§ãããOpenVZã«ãŒãã«ã³ã³ãããŒã®éèŠãªæ§æãªãã·ã§ã³ãæ€èšããŸãã
äžè¬èšå®
ã³ã³ããã®ããã©ãŒãã³ã¹ã«åœ±é¿ããäž»ãªèšå®ã¯ãã¡ã¢ãªãšããã»ããµã®æ¶è²»ã®å¶éã§ãã ã»ãšãã©ã®å Žåãå²ãåœãŠãããã¡ã¢ãªãšããã»ããµã®éãå¢ãããšãããšãã°WebãµãŒããŒãããŒã¿ããŒã¹ãµãŒããŒãªã©ã®ã«ã¹ã¿ã ã¢ããªã±ãŒã·ã§ã³ã®ã³ã³ããã®ããã©ãŒãã³ã¹ãåäžããŸãã
ã³ã³ããã«å²ãåœãŠãããç©çã¡ã¢ãªã«ã°ããŒãã«ãªå¶éãèšå®ããã«ã¯ãããšãã°--ramãªãã·ã§ã³ãæå®ããã ãã§ãã
# vzctl set 100 --ram 4G --save
ã³ã³ããã®éå°è©äŸ¡ãããå¶éã¯ãã«ãŒãã«ãŸãã¯ã¢ããªã±ãŒã·ã§ã³ã®ã©ããã§ã¡ã¢ãªãå²ãåœãŠãããšã«å€±æããããšãéåžžã«å€ããããã³ã³ããã䜿çšããå Žåã/ proc / user_beancountersãã¡ã€ã«ã®å 容ãç£èŠããããšã¯éåžžã«åœ¹ç«ã¡ãŸãã failcntåã®ãŒã以å€ã®å€ã¯ãå¶éã®äžéšãå°ããããããšãæå³ããã³ã³ããã®ã¯ãŒãã³ã°ã»ãããæžããïŒããšãã°ãapacheãŸãã¯postgresqlãµãŒããŒã¹ã¬ããã®æ°ãæžããïŒãã-ramãªãã·ã§ã³ã䜿çšããŠã¡ã¢ãªå¶éãå¢ããå¿ èŠããããŸãã / proc / user_beancountersãã¡ã€ã«ã䟿å©ã«ç£èŠããã«ã¯ãvzubcãŠãŒãã£ãªãã£ã䜿çšã§ããŸããããã«ãããããšãã°ãfailcntã«è¿ãã«ãŠã³ã¿ãŒã®ã¿ãç£èŠããããäžå®ã®åšæã§èªã¿åãå€ãæŽæ°ãããã§ããŸãïŒãããã©ã€ã¯ã¢ãŒãïŒã vzubcãŠãŒãã£ãªãã£ã®è©³çŽ°ã«ã€ããŠã¯ã ãã¡ããã芧ãã ãã ã
ç©çã¡ã¢ãªã«å¶éãèšå®ããããšã«å ããŠãã³ã³ããã®ã¹ã¯ãããµã€ãºã«å¶éãèšå®ããããšããå§ãããŸãã ã¹ã¯ããã³ã³ããã®ãµã€ãºã調æŽããã«ã¯ãvzctlã³ãã³ãã®--swapãªãã·ã§ã³ã䜿çšããŸãã
# vzctl set 100 --ram 4G --swap 8G --save
--ramå€ãš--swapå€ã®åèšã¯ãã³ã³ããã䜿çšã§ããã¡ã¢ãªã®æ倧éã§ãã ã³ã³ããã®--ramå¶éã«éãããšãã³ã³ããããã»ã¹ã«å±ããã¡ã¢ãªããŒãžã¯ããããããä»®æ³ã¹ã¯ããïŒVSwapïŒãã«ããã·ã¥ããå§ããŸãã ãã®å Žåãå®éã®ãã£ã¹ã¯I / Oã¯ååšãããã³ã³ããã®ããã©ãŒãã³ã¹ã¯äººçºçã«äœäžããå®éã®ã¹ã¯ããã³ã°ã®å¹æãçããŸãã
ã³ã³ãããèšå®ããå Žåããã¹ãŠã®ã³ã³ããã®RAM +ã¹ã¯ããã®åèšãããã¹ãããŒãã®RAM +ã¹ã¯ããã®åèšãè¶ ããªãããã«ããããšããå§ãããŸãã èšå®ã確èªããã«ã¯ãvzoversellãŠãŒãã£ãªãã£ã䜿çšã§ããŸãã
ã³ã³ãããŒã§äœ¿çšå¯èœãªããã»ããµãŒã®æ倧æ°ãå¶åŸ¡ããã«ã¯ã-cpusãªãã·ã§ã³ã䜿çšããå¿ èŠããããŸãã次ã«äŸã瀺ããŸãã
# vzctl set 100 --cpus 4 --save
æ°ããã³ã³ãããäœæãããšãããã®ã³ã³ããã®ããã»ããµã®æ°ã¯å¶éãããŠãããããµãŒããŒã®ãã¹ãŠã®CPUãªãœãŒã¹ã䜿çšããŸãã ãããã£ãŠãè€æ°ã®ã³ã³ãããæã€ã·ã¹ãã ã®å Žåãåã³ã³ããã«å²ãåœãŠãããã¿ã¹ã¯ã«å¿ããŠãåã³ã³ããã®ããã»ããµæ°ã«å¶éãèšå®ããããšã¯çã«ããªã£ãŠããŸãã ãŸãã-cpulimitãªãã·ã§ã³ã䜿çšããŠCPUãããŒã»ã³ãïŒãŸãã¯ã¡ã¬ãã«ãïŒã§å¶éãã-cpuunitsãªãã·ã§ã³ã䜿çšããŠéã¿ãã€ãŸãã³ã³ããã®åªå 床ã管çããããšã圹ç«ã€å ŽåããããŸãã
ã¡ã¢ãªããã®ãªãŒããŒã³ããã
OpenVZã³ã¢ã«ããããã¹ãŠã®ã³ã³ããã¯ããã¹ãã§äœ¿çšå¯èœãªç©çã¡ã¢ãªã®åèšããã倧ããªã¡ã¢ãªãå²ãåœãŠãããšãã§ããŸãã ãã®ç¶æ³ã¯ã¡ã¢ãªãªãŒããŒã³ããããšåŒã°ãããã®å Žåãã«ãŒãã«ã¯ã¡ã¢ãªãåçã«ç®¡çããã³ã³ããéã§ã¡ã¢ãªã®ãã©ã³ã¹ãåããŸããããã¯ãã³ã³ããã䜿çšãèš±å¯ããã¡ã¢ãªãã³ã³ããã«ãã£ãŠå¿ èŠãšããããã«ãŒãã«ãèªç±è£éã§å¶åŸ¡ã§ããããã§ãã ã¡ã¢ãªãããªãŒããŒã³ããããããšãã«ãŒãã«ã¯ããŸããŸãªãã£ãã·ã¥ïŒããŒãžãã£ãã·ã¥ããã³ããªãã£ãã·ã¥ïŒãå¹æçã«ç®¡çããèšå®ãããã¡ã¢ãªå¶éã«æ¯äŸããŠã³ã³ããå ã§ããããåæžããããšããŸãã ããšãã°ãã»ãã¥ãªãã£ãåäžãããããã«ãããã³ããšã³ããããã¯ãšã³ããããã³ããŒã¿ããŒã¹ã§æ§æãããè² è·ã®é«ãWebãµã€ãã®ãµãŒãã¹ãäºãã«åé¢ããå Žåãããããå¥ã ã®ã³ã³ãããŒã«å ¥ããããšãã§ããŸãããåæã«åãã¹ãã§å©çšå¯èœãªæ倧æ°ãéžæããŸãã¡ã¢ãªéãããšãã°ïŒ
# vzctl set 100 --ram 128G --save # vzctl set 101 --ram 128G --save # vzctl set 102 --ram 128G --save
ãã®å Žåãã¡ã¢ãªç®¡çã®èŠ³ç¹ããèŠããšããµãŒãã¹ãåããã¹ãã§å®è¡ãããŠãããšããšç¶æ³ã¯å€ããããã¡ã¢ãªãã©ã³ã·ã³ã°ã¯å¯èœãªéãå¹ççã«ãªããŸãã éçWebãµã€ãããŒã¿çšã®å€§ããªããŒãžãã£ãã·ã¥çšã®ããã³ããšã³ãã³ã³ãããŒããããŒã¿ããŒã¹ãå«ãŸããã³ã³ãããŒçšã«-ããŒã¿ããŒã¹èªäœçšã®å€§ããªãã£ãã·ã¥ãã£ãã·ã¥çšã«ãã©ã®ã³ã³ãããŒã«ã¡ã¢ãªãè¿œå ããå¿ èŠãããããèããå¿ èŠã¯ãããŸããã ã«ãŒãã«ã¯ãã¹ãŠãèªåçã«ãã©ã³ã¹ãããŸãã
ãªãŒããŒã³ãããã«ãããã«ãŒãã«ã¯ã³ã³ããéã§å¯èœãªéãå¹ççã«ã¡ã¢ãªã®ãã©ã³ã¹ãåãããšãã§ããŸãããç¹å®ã®äžå¿«ãªç¹æ§ããããŸãã å²ãåœãŠãããå¿åã¡ã¢ãªã®åèšéãã€ãŸãããã¹ãŠã®ã³ã³ããã®ãã¹ãŠã®ããã»ã¹ã®åèšã¯ãŒãã³ã°ã»ããããã¹ãã®åèšã¡ã¢ãªãµã€ãºã«è¿ã¥ããšãããã»ã¹ãŸãã¯ã«ãŒãã«ã«ãã£ãŠæ°ããã¡ã¢ãªãå²ãåœãŠãããšãããšãã°ããŒãã«ãªãã¡ã¢ãªäžè¶³ãäŸå€ãçºçããOOMãã©ãŒã匷å¶çµäºããŸãã·ã¹ãã å ã®ããã»ã¹ã®1ã€ã ãã®ãããªäŸå€ããã¹ããŸãã¯ã³ã³ããã§çºçãããã©ããã確èªããã«ã¯ã次ã®ã³ãã³ãã䜿çšã§ããŸãã
# dmesg | grep oom [3715841.990200] 645043 (postmaster) invoked oom-killer in ub 600 generation 0 gfp 0x2005a [3715842.557102] oom-killer in ub 600 generation 0 ends: task died
OOMãã©ãŒã¯ãã¡ã¢ãªãå²ãåœãŠãããšããåãã³ã³ããå ã®ããã»ã¹ãå¿ ããã匷å¶çµäºããããã§ã¯ãªãããšã«æ³šæããããšãéèŠã§ãã OOM-killerã®åäœãå¶åŸ¡ããã«ã¯ã次ã®ã³ãã³ãã䜿çšããŸãïŒ
# vzctl set 100 --oomguarpages 2G --save
æå®ããå¶éå ã§ã³ã³ããããã»ã¹ã®æŽåæ§ãä¿èšŒããå¶éãèšå®ã§ããŸãã ãããã£ãŠãéèŠãªãµãŒãã¹ãå®è¡ããŠããã³ã³ããã®å Žåããã®å¶éãã¡ã¢ãªå¶éã«çããèšå®ã§ããŸãã
CPUã®ãªãŒããŒã³ããã
ã¡ã¢ãªã®å Žåãšåæ§ã«ãããã»ããµã«ãããªãŒããŒã³ãããã«ããããã¹ãäžã®è«çããã»ããµã®ç·æ°ãè¶ ããããã»ããµã®ç·æ°ãã³ã³ããã«å²ãåœãŠãããšãã§ããŸãã ãŸããã¡ã¢ãªã®å Žåãšåæ§ã«ãããã»ããµã«ãããªãŒããŒã³ãããã«ãããã·ã¹ãã å šäœã®ããã©ãŒãã³ã¹ãæãå¹æçã«ãªããŸãã ããšãã°ãããã³ããšã³ããããã¯ãšã³ããããŒã¿ããŒã¹ã®3ã€ã®ã³ã³ããã«ãã¬ã€ã¢ãŠãããããåãWebãµãŒããŒã®å Žåãåã³ã³ããã«ç¡å¶éã®CPUãèšå®ããæ倧ã®ã·ã¹ãã ããã©ãŒãã³ã¹ãå®çŸããããšãã§ããŸãã ç¹°ãè¿ããŸãããã«ãŒãã«èªäœã¯ãã©ã®ã³ã³ããããã©ã®ããã»ããµã«ããã»ããµæéãå²ãåœãŠããã決å®ããŸãã
ã¡ã¢ãªãšã¯ç°ãªããããã»ããµã¯ã匟åæ§ã®ããããªãœãŒã¹ã§ããã€ãŸããCPUã®äžè¶³ã¯ãäžéšã®ã¢ã¯ãã£ããªããã»ã¹ã®é床ãèœãšãããšãé€ããŠãã·ã¹ãã ã§äŸå€ããšã©ãŒãåŒãèµ·ãããŸããã ãããã£ãŠãããã»ããµã«ãããªãŒããŒã³ãããã®äœ¿çšã¯ãã¡ã¢ãªããã®ãªãŒããŒã³ããããããã·ã¹ãã ããªãŒããŒã¯ããã¯ããå®å šãªæ¹æ³ã§ãã ããã»ããµã®ãªãŒããŒã³ãããã®å¯äžã®ãã€ãã¹ã®åœ±é¿ã¯ãã³ã³ããã«ããã»ããµæéãå²ãåœãŠãéã®èª å®æ§ã®ååã«éåããå¯èœæ§ãããããšã§ããããã¯ãããšãã°ãææã®ããã»ããµæéãããå°ãªãã¯ã©ã€ã¢ã³ããåãåãVPSãã¹ãã£ã³ã°ã¯ã©ã€ã¢ã³ãã«ãšã£ãŠã¯æªãå ŽåããããŸãã ããã»ããµæéã®æ£çŽãªååžãç¶æããã«ã¯ãvzctlã³ãã³ãã®--cpuunitsãªãã·ã§ã³ã䜿çšããŠãæ¯æãããããã»ããµæéã«å¿ããŠã³ã³ããã®ãéã¿ããèšå®ããå¿ èŠããããŸãïŒè©³çŽ°ã«ã€ããŠã¯ã ãã¡ããåç §ããŠãã ããïŒã
NUMAãã¹ãäžã®ã³ã³ãããŒã®æé©å
NUMAïŒNon-Uniform Memory AccessïŒãåãããã¹ãã§ã³ã³ãããŒãå®è¡ããå Žåãã³ã³ãããŒããã»ã¹ã1ã€ã®NUMAããŒãã§å®è¡ããããããã®ããã»ã¹ã®äžéšïŒãŸãã¯ãã¹ãŠã®ã¡ã¢ãªãŒïŒãå¥ã®NUMAããŒãã«å²ãåœãŠãããå¯èœæ§ããããŸãã ãã®å Žåãåã¡ã¢ãªã¢ã¯ã»ã¹ã¯ããŒã«ã«NUMAããŒãã®ã¡ã¢ãªã¢ã¯ã»ã¹ãããé ããªããæžéä¿æ°ã¯ããŒãéã®è·é¢ã«äŸåããŸãã Linuxã«ãŒãã«ã¯ãã®ç¶æ³ãé²æ¢ããããšããŸãããããŒã«ã«NUMAããŒãã§ã®ã³ã³ãããŒã®å®è¡ãä¿èšŒããããã«ãã³ã³ãããŒããšã«CPUãã¹ã¯ãèšå®ã§ããŸããããã«ãããã³ã³ãããŒããã»ã¹ãå®è¡ã§ããããã»ããµãŒã®ã»ãããå¶éãããŸãã
numactlã³ãã³ãã䜿çšããŠããã¹ãã§äœ¿çšå¯èœãªNUMAããŒãã衚瀺ã§ããŸãã
ïŒnumactl -H 䜿çšå¯èœïŒ2ããŒãïŒ0-1ïŒ ããŒã0 cpusïŒ0 1 2 3 ããŒã0ãµã€ãºïŒ16351 MB ããŒã0空ãïŒ1444 MB ããŒã1 cpusïŒ4 5 6 7 ããŒã1ã®ãµã€ãºïŒ16384 MB ããŒã1空ãïŒ10602 MB ããŒãè·é¢ïŒ ããŒã0 1 0:10 21 1:21 10
ãã®äŸã§ã¯ããã¹ãã«2ã€ã®NUMAããŒãããããåããŒãã«ã¯4ã€ã®ããã»ããµã³ã¢ãš16GBã®ã¡ã¢ãªããããŸãã
ã³ã³ããã®ããã»ããµã»ããã«å¶éãèšå®ããã«ã¯ãvzctlã³ãã³ãã䜿çšããŸãã
# vzctl set 100 --cpumask 0-3 --save # vzctl set 101 --cpumask 4-7 --save
ãã®äŸã§ã¯ãã³ã³ãã100ãããã»ããµ0ã3ãã³ã³ãã101ã4ã7ã§ã®ã¿å®è¡ã§ããããã«ããŸãããããšãã°ãã³ã³ãã100ã®ããã»ã¹ãæ¢ã«NUMAããŒã1ã«ã¡ã¢ãªãå²ãåœãŠãŠããå Žåããã®ã¡ã¢ãªãžã®ã¢ã¯ã»ã¹ã¯ãã¹ãŠããŒã«ã«ã¡ã¢ãªãžã®ã¢ã¯ã»ã¹ãããé ããªããŸãã ãããã£ãŠããããã®ã³ãã³ããå®è¡ããåŸã«ã³ã³ãããåèµ·åããããšããå§ãããŸãã
æ°ããvzctl 4.8ãªãªãŒã¹ã§ã¯ã--nodemaskãªãã·ã§ã³ãç»å ŽããŸãããããã«ããããã®ããŒãã®ããã»ããµã®ãªã¹ããæå®ããã«ãã³ã³ãããç¹å®ã®NUMAããŒãã«æ¥ç¶ã§ããŸãããNUMAããŒãçªå·ã®ã¿ã§åäœããŸãã
ãã®ã¢ãããŒãã§ã¯ãããã»ã¹ã¹ã±ãžã¥ãŒã©ãã·ã¹ãã ããã»ããµéã§è² è·ãåæ£ããèœåãå¶éãããããšã«æ³šæããŠãã ãããããã«ãããããã»ããµãå€§å¹ ã«ãªãŒããŒã³ããããããå Žåãé床ãäœäžããå¯èœæ§ããããŸãã
ã³ã³ããã§ã®fsyncåäœã®å¶åŸ¡
ãåãã®ããã«ãããŒã¿ããã£ã¹ã¯ã«ç¢ºå®ã«æžã蟌ãŸããããã«ããã«ã¯ãã¢ããªã±ãŒã·ã§ã³ã¯å€æŽãããåãã¡ã€ã«ã«å¯ŸããŠfsyncïŒïŒã·ã¹ãã ã³ãŒã«ãè¡ãå¿ èŠããããŸãã ãã®ã·ã¹ãã ã³ãŒã«ã¯ããã¡ã€ã«ããŒã¿ãã©ã€ãããã¯ãã£ãã·ã¥ãããã£ã¹ã¯ã«æžã蟌ã¿ããã£ã¹ã¯ãã£ãã·ã¥ããæ°žç¶çãªäžæ®çºæ§ã¡ãã£ã¢ãžã®ããŒã¿ã®ãã©ãã·ã¥ãéå§ããŸãã åæã«ãã¢ããªã±ãŒã·ã§ã³ãã©ã€ãããã¯ãã£ãã·ã¥ïŒããããçŽæ¥I / OïŒããã€ãã¹ããŠãã£ã¹ã¯ã«ããŒã¿ãæžã蟌ãå Žåã§ããããŒã¿ããã£ã¹ã¯ã®ãã£ãã·ã¥ãããã©ãã·ã¥ãããããšãä¿èšŒããã«ã¯ããã®ã·ã¹ãã ã³ãŒã«ãå¿ èŠã§ãã
fsyncïŒïŒã·ã¹ãã ã³ãŒã«ãé »ç¹ã«å®è¡ãããšããã£ã¹ã¯ãµãã·ã¹ãã ã®é床ãèããäœäžããå¯èœæ§ããããŸãã å¹³åçãªããŒããã©ã€ãã¯30ã50ã®åæ/ç§ã«å¯Ÿå¿ããŠããŸãã
ããã«ãã³ã³ããã®ãã¹ãŠãŸãã¯äžéšã«ã€ããŠãããŒã¿èšé²ã®å³å¯ãªä¿èšŒã¯äžèŠã§ãããããŒããŠã§ã¢é害ãçºçããå Žåã®ããŒã¿ã®äžéšã®æ倱ã¯éèŠã§ã¯ãªãããšãããç¥ãããŠããŸãã ãã®ãããªå ŽåãOpenVZã«ãŒãã«ã¯ãã³ã³ããã®ãã¹ãŠãŸãã¯äžéšã«å¯ŸããfsyncïŒïŒ/ fdatasyncïŒïŒ/ syncïŒïŒèŠæ±ãç¡èŠããæ©èœãæäŸããŸãã ãã¡ã€ã«/ proc / sys / fs / fsync-enableã䜿çšããŠãã«ãŒãã«ã®åäœãã«ã¹ã¿ãã€ãºã§ããŸãã ãã¹ãããŒãã§æ§æãããŠããå Žåããã®ãã¡ã€ã«ã®å¯èœãªå€ïŒã°ããŒãã«èšå®ïŒïŒ
0ïŒFSYNC_NEVERïŒfsyncïŒïŒ/ fdatasyncïŒïŒ/ syncïŒïŒã³ã³ããããã®ãªã¯ãšã¹ãã¯ç¡èŠãããŸã 1ïŒFSYNC_ALWAYSïŒfsyncïŒïŒ/ fdatasyncïŒïŒ/ syncïŒïŒã³ã³ããããã®ãªã¯ãšã¹ãã¯éåžžââã©ããåäœããŸããã ãã¹ããã·ã³ã®ãã¹ãŠã®ãã¡ã€ã«ã·ã¹ãã äžã®ãã¹ãŠã®iããŒãã®ããŒã¿ãæžã蟌ãŸããŸã 2ïŒFSYNC_FILTEREDïŒfsyncïŒïŒ/ fdatasyncïŒïŒã³ã³ããããã®ãªã¯ãšã¹ãã¯éåžžââã©ããåäœããŸããã ã³ã³ããããã®syncïŒïŒèŠæ±ã¯ãã³ã³ãããã¡ã€ã«ã®ã¿ã«åœ±é¿ããŸãïŒããã©ã«ãå€ïŒ
ç¹å®ã®ã³ã³ããå ã§æ§æãããŠããå Žåããã®ãã¡ã€ã«ã®å¯èœãªå€ïŒ
0ãã®ã³ã³ããããã®fsyncïŒïŒ/ fdatasyncïŒïŒ/ syncïŒïŒèŠæ±ã¯ç¡èŠãããŸã 2ãã¹ãããŒãã«ã€ã³ã¹ããŒã«ãããã°ããŒãã«èšå®ã䜿çšããïŒããã©ã«ãå€ïŒ
ãããã®èšå®ã¯ãµãŒããŒã®ãã£ã¹ã¯ãµãã·ã¹ãã ãå€§å¹ ã«é«éåã§ãããšããäºå®ã«ãããããããæ éãã€éžæçã«äœ¿çšããå¿ èŠããããŸãã fsyncïŒïŒãç¡å¹ã«ãããšãããŒããŠã§ã¢é害ãçºçããå Žåã«ããŒã¿ã倱ãããå¯èœæ§ããããŸãã
ã³ã³ããã§ã®çŽæ¥I / Oåäœã®å¶åŸ¡
ããã©ã«ãã§ã¯ãO_DIRECTãã©ã°ãªãã§éããããã¹ãŠã®ãã¡ã€ã«ãžã®æžã蟌ã¿ã¯ãã©ã€ãããã¯ãã£ãã·ã¥ãä»ããŠè¡ãããŸãã ããã«ãããã¢ããªã±ãŒã·ã§ã³ã®ãã£ã¹ã¯ãžã®ããŒã¿æžã蟌ã¿ã®ã¬ã€ãã³ã·ãŒïŒã¬ã€ãã³ã·ãŒïŒãåæžãããã ãã§ãªãïŒãã£ã¹ã¯ãžã®å®éã®æžã蟌ã¿ãåŸ ããã«ããŒã¿ãã©ã€ãããã¯ãã£ãã·ã¥ã«ã³ããŒããããšããã«writeïŒïŒã·ã¹ãã ã³ãŒã«ãçµäºããŸãïŒãã«ãŒãã«I / Oã¹ã±ãžã¥ãŒã©ãŒãèš±å¯ãããŸãããã»ã¹éã§ãã£ã¹ã¯ãªãœãŒã¹ãããå¹ççã«åæ£ããã¢ããªã±ãŒã·ã§ã³ããã®I / OèŠæ±ãã°ã«ãŒãåããŸãã
åæã«ãããŒã¿ããŒã¹ãªã©ã®ããã€ãã®ã«ããŽãªã®ã¢ããªã±ãŒã·ã§ã³ã¯ã倧èŠæš¡ãªé 次I / OèŠæ±ãå®è¡ããããšã«ãããããŒã¿ã®èšé²ãå¹æçã«ç®¡çããŸãã ãããã£ãŠããã®ãããªã¢ããªã±ãŒã·ã§ã³ã¯å€ãã®å ŽåãO_DIRECTãã©ã°ã䜿çšããŠãã¡ã€ã«ãéããŸããããã¯ããŠãŒã¶ãŒã¢ããªã±ãŒã·ã§ã³ã¡ã¢ãªããçŽæ¥ãã©ã€ãããã¯ãã£ãã·ã¥ããã€ãã¹ããŠããã®ãããªãã¡ã€ã«ã«ããŒã¿ãæžã蟌ãããã«ãŒãã«ã«æ瀺ããŸãã ãã¹ãã§å®è¡ãããŠããåäžã®ããŒã¿ããŒã¹ã®å ŽåãããŒã¿ããŒã¹ããã®I / OèŠæ±ã¯ãã§ã«æé©ã«æ§æãããŠããããŠãŒã¶ãŒã¢ããªã±ãŒã·ã§ã³ããã©ã€ãããã¯ãã£ãã·ã¥ãžã®ã¡ã¢ãªã®è¿œå ã³ããŒãå¿ èŠãªãããããã®ã¢ãããŒãã¯ãã£ãã·ã¥çµç±ã§æžã蟌ããããå¹ççã§ãã
è€æ°ã®ã³ã³ãããåããã¹ãäžã®ããŒã¿ããŒã¹ã§åäœããå ŽåãLinuxã«ãŒãã«ã®I / Oã¹ã±ãžã¥ãŒã©ã¯Direct I / Oã䜿çšããã¢ããªã±ãŒã·ã§ã³éã§ãã£ã¹ã¯ãªãœãŒã¹ãæé©ã«åé ã§ããªãããããã®ä»®å®ã¯èª€ãã§ãã ãããã£ãŠãããã©ã«ãã§ã¯ãã³ã³ããã®OpenVZ Direct I / Oã«ãŒãã«ã¯ãªãã«ãªãããã¹ãŠã®ããŒã¿ã¯ã©ã€ãããã¯ãã£ãã·ã¥ãä»ããŠæžã蟌ãŸããŸãã ããã«ããããŠãŒã¶ãŒã¢ããªã±ãŒã·ã§ã³ããã©ã€ãããã¯ãã£ãã·ã¥ãžã®ã¡ã¢ãªã®è¿œå ã³ããŒãšãã圢ã§å°ããªãªãŒããŒããããçºçããŸãããã«ãŒãã«I / Oã¹ã±ãžã¥ãŒã©ã¯ãã£ã¹ã¯ãªãœãŒã¹ãããå¹ççã«å²ãåœãŠãããšãã§ããŸãã
ãã¹ãã«ãã®ãããªç¶æ³ãååšããªãããšãäºåã«ããã£ãŠããå Žåã¯ãè¿œå ã®ãªãŒããŒããããåé¿ããã³ã³ããã®ãã¹ãŠãŸãã¯äžéšã«çŽæ¥I / Oã®äœ¿çšãèš±å¯ã§ããŸãã ãã¡ã€ã«/ proc / sys / fs / odirect_enableã䜿çšããŠãã«ãŒãã«ã®åäœãã«ã¹ã¿ãã€ãºã§ããŸãã ãã¹ãããŒãã§æ§æãããŠããå Žåããã®ãã¡ã€ã«ã®å¯èœãªå€ïŒã°ããŒãã«èšå®ïŒïŒ
0ã³ã³ããã®O_DIRECTãã©ã°ã¯ç¡èŠããããã¹ãŠã®èšé²ã¯ã©ã€ãããã¯ãã£ãã·ã¥ãä»ããŠè¡ãããŸãïŒããã©ã«ãå€ïŒ 1ã³ã³ããå ã®O_DIRECTãã©ã°ã¯éåžžã©ããæ©èœããŸã
ç¹å®ã®ã³ã³ããå ã§æ§æãããŠããå Žåããã®ãã¡ã€ã«ã®å¯èœãªå€ïŒ
0ãã®ã³ã³ããã®O_DIRECTãã©ã°ã¯ç¡èŠããããã¹ãŠã®èšé²ã¯ã©ã€ãããã¯ãã£ãã·ã¥ãä»ããŠè¡ãããŸã ãã®ã³ã³ããã®O_DIRECTãã©ã°ã¯éåžžã©ããæ©èœããŸã 2ã°ããŒãã«èšå®ã䜿çšããïŒããã©ã«ãå€ïŒ
ãããã«
äžè¬ã«ãLinuxã«ãŒãã«å šäœãç¹ã«OpenVZã¯ãç¹å®ã®ãŠãŒã¶ãŒã¿ã¹ã¯ã®ããã©ãŒãã³ã¹ã埮調æŽããããã®å€æ°ã®ãªãã·ã§ã³ãæäŸããŸãã OpenVZã«åºã¥ãä»®æ³åã«ãããæè»ãªãªãœãŒã¹ç®¡çãšããŸããŸãªèšå®ã«ãããæé«ã®ããã©ãŒãã³ã¹ãå®çŸã§ããŸãã ãã®èšäºã§ã¯ãã³ã³ããåºæã®èšå®ã®ããäžéšã®ã¿ã玹ä»ããŸããã ç¹ã«ãCPUUNITS / CPULIMIT / CPUSã®3ã€ã®ãã©ã¡ãŒã¿ãŒãšãããããäºãã«ã©ã®ããã«åœ±é¿ãããã«ã€ããŠã¯æžããŠããŸããã ããããç§ã¯ããã§ã³ã¡ã³ãã§ãã£ãšå€ãã説æããæºåãã§ããŠããŸãã
詳现ã«ã€ããŠã¯ãvzctlã®ããã¥ã¢ã«ããŒãžãšã€ã³ã¿ãŒãããäžã®èšå€§ãªãªãœãŒã¹ïŒopenvz.livejournal.comãªã©ïŒãåç §ããŠãã ããã