åŠæ ¡ã§é«è² è·ãæããããå Žåããã®äž»é¡ã®æç§æžã¯ãã®ãããªä»äºãæã£ãŠããã§ãããã ãNãœãŒã·ã£ã«ãããã¯ãŒã¯ã«ã¯2,000å°ã®ãµãŒããŒãããããã®äžã«åPHPã³ãŒã900 MBã®150,000åã®ãã¡ã€ã«ãš50å°ã®ãã·ã³ã®ã¹ããŒãžã³ã°ã¯ã©ã¹ã¿ãŒããããŸãã ã³ãŒãã¯ãµãŒããŒã«1æ¥ã«2åå±éãããã³ãŒãã¯ã¹ããŒãžã³ã°ã¯ã©ã¹ã¿ãŒã§æ°åããšã«æŽæ°ãããŸããè¿œå ã®ãä¿®æ£ããã°ã©ã ãããããŸããå®å
šãªèšç®ãåŸ
ããã«ããµãŒããŒã®ãã¹ãŠãŸãã¯éžæããéšåã«é çªã«é
眮ãããå°ããªãã¡ã€ã«ã»ããã§ãã 質åïŒãã®ãããªæ¡ä»¶ã¯é«è² è·ãšèŠãªãããããããå±éããæ¹æ³ã¯ïŒ å°ãªããšã5ã€ã®å±éãªãã·ã§ã³ãäœæããŸããã ç§ãã¡ã¯ãhyloadåé¡ã®æ¬ã«ã€ããŠã®ã¿å€¢ãèŠãããšãã§ããŸããããã§ã«ã
Yuri Nasretdinov ïŒ
youROCK ïŒãééããªããã®åé¡ã解決ããã5ããç²åŸããããšãããã£ãŠããŸãã
ãŠãªã¯åçŽãªãœãªã¥ãŒã·ã§ã³ã«çãŸããããã³ãŒããããã€ãã³ã³ã»ããã®æŠå¿µãé瀺ãã倧èŠæš¡ãªPHPãããã€ã¡ã³ãã®åŸæ¥ã®ä»£æ¿ãœãªã¥ãŒã·ã§ã³ã«ã€ããŠè©±ãããã®ããã©ãŒãã³ã¹ãåæããMDKãããã€ã¡ã³ãã·ã¹ãã ãæ瀺ããã¬ããŒããè¿œå ããŸããã
ãã³ãŒãã®ãããã€ãã®æŠå¿µ
è±èªã§ã¯ããå±éããšããçšèªã¯è»éãèŠæãããããšãæå³ãããã·ã¢èªã§ã¯ãã³ãŒããæŠéã«æå
¥ããããšããããšããããŸãããããã¯åãããšãæå³ããŸãã ãã§ã«ã³ã³ãã€ã«ãããŠããã³ãŒããŸãã¯å
ã®ã³ãŒãïŒPHPã®å ŽåïŒã䜿çšããŠããŠãŒã¶ãŒãã©ãã£ãã¯ãåŠçãããµãŒããŒã«ã¢ããããŒãããéæ³ã«ãã£ãŠã³ãŒãã®ããŒãžã§ã³ãå¥ã®ããŒãžã§ã³ã«åãæ¿ããŸãã ãããã¯ãã¹ãŠããã³ãŒãã®ãããã€ãã®æŠå¿µã«å«ãŸããŠããŸãã
éåžžãå±éããã»ã¹ã¯ããã€ãã®æ®µéã§æ§æãããŸãã
- ãªããžããªããã³ãŒããååŸããã«ã¯ãã¯ããŒã³ããã§ããããã§ãã¯ã¢ãŠããªã©ã奜ããªæ¹æ³ã䜿çšããŸãã
- ã¢ã»ã³ããª-ãã«ã ã PHPã³ãŒãã®å Žåããã«ããã§ãŒãºãæ¬ èœããŠããå¯èœæ§ããããŸãã ç§ãã¡ã®å Žåãããã¯ååãšããŠã翻蚳ãã¡ã€ã«ã®èªåçæãéçãã¡ã€ã«ã®CDNãžã®ã¢ããããŒããããã³ãã®ä»ã®æäœã§ãã
- ãšã³ããµãŒããŒãžã®é
ä¿¡ -å±éã
ãã¹ãŠãã¢ã»ã³ãã«ãããåŸãå³æå±éã®ãã§ãŒãºãå§ãŸããŸã-
ã³ãŒãã¯
éçšãµãŒããŒã«æ³šãããŸã ã
Badooã«ã€ããŠã¯ããã®ãã§ãŒãºã«ã€ããŠèª¬æããŸãã
Badooã®å€ãå±éã·ã¹ãã
ãã¡ã€ã«ã·ã¹ãã ã€ã¡ãŒãžã®ãããã¡ã€ã«ãããå ŽåããããããŠã³ãããæ¹æ³ã¯ïŒ Linuxã§ã¯ã
äžéã«ãŒãããã€ã¹ãäœæããããã«ãã¡ã€ã«ãæ·»ä»ããå¿
èŠããããŸãããã®åŸããã®ãããã¯ããã€ã¹ã¯æ¢ã«ããŠã³ãã§ããŸãã
ã«ãŒãããã€ã¹ã¯ãLinuxããã¡ã€ã«ã·ã¹ãã ã€ã¡ãŒãžãããŠã³ãããããã«å¿
èŠãªæŸèæã§ãã ãã®æŸèæãå¿
èŠãªãOSããããŸãã
ç°¡åã«ããããã«ãã«ãŒãããšãåŒã°ãããã¡ã€ã«ã䜿çšããŠãå±éããã»ã¹ã¯ã©ã®ããã«è¡ãããŸããïŒ ãœãŒã¹ã³ãŒããšèªåçæãããã³ã³ãã³ããé
眮ãããŠãããã£ã¬ã¯ããªããããŸãã ãã¡ã€ã«ã·ã¹ãã ã®ç©ºã®ã€ã¡ãŒãžãååŸããŸããçŸåšã¯EXT2ã§ããã以åã¯ReiserFSã䜿çšããŠããŸããã ãã¡ã€ã«ã·ã¹ãã ã®ç©ºã®ã€ã¡ãŒãžãäžæãã£ã¬ã¯ããªã«ããŠã³ãããããã«ãã¹ãŠã®å
容ãã³ããŒããŸãã æ¬çªã«å
¥ãããã«äœããå¿
èŠãªãå Žåããã¹ãŠãã³ããŒããããã§ã¯ãããŸããã ãã®åŸãããã€ã¹ãã¢ã³ããŠã³ãããå¿
èŠãªãã¡ã€ã«ãé
眮ãããŠãããã¡ã€ã«ã·ã¹ãã ã®ã€ã¡ãŒãžãååŸããŸãã 次ã«ã
ç»åã
ã¢ãŒã«ã€ãããŠãã¹ãŠã®ãµãŒããŒã«ã¢ããããŒãã ãããã§è§£åããŠããŠã³ãããŸãã
ä»ã®æ¢åã®ãœãªã¥ãŒã·ã§ã³
ãŸãã
Richard Stallmanã«æè¬ããŸãããã圌ã®ã©ã€ã»ã³ã¹ããªããã°ãç§ãã¡ã䜿çšãããŠãŒãã£ãªãã£ã®ã»ãšãã©ã¯ååšããªãã£ãã§ãããã
ç§ã¯åŸæ¥ãPHPã³ãŒãããããã€ããæ¹æ³ã4ã€ã®ã«ããŽãªãŒã«åããŠããŸããã
- ããŒãžã§ã³ç®¡çã·ã¹ãã ã«åºã¥ããŠãsvn upãgit pullãhg upã
- rsyncãŠãŒãã£ãªãã£ã«åºã¥ã㊠-æ°ãããã£ã¬ã¯ããªãŸãã¯ãããããã«ã
- 1ã€ã®ãã¡ã€ã«ããããã€ããŸã -pharãhhbcãloopã«é¢ä¿ãªãã
- Rasmus Lerdorfãææ¡ããç¹å¥ãªæ¹æ³ã¯ã rsyncã2ã€ã®ãã£ã¬ã¯ããªãããã³realpath_rootã§ãã
åã¡ãœããã«ã¯é·æãšçæã®äž¡æ¹ããããŸãããã®ãããããããæŸæ£ããŸããã ããã4ã€ã®æ¹æ³ããã詳现ã«æ€èšããŠãã ããã
svn upããŒãžã§ã³ç®¡çã·ã¹ãã ã«åºã¥ãå±é
ç§ã¯å¶ç¶ã§ã¯ãªãSVNãéžæããŸãã-ç§ã®èŠ³å¯ã«ããã°ããã®åœ¢åŒã§ã¯SVNã®å Žåã«å±éãæ£ç¢ºã«ååšããŸãã ã·ã¹ãã ã¯éåžžã«
軜é㧠ã
ç°¡åãã€è¿
éã«å±éãå®è¡ã§ããŸã-svnãå®è¡ããã ãã§å®äºã§ãã
ãã ãããã®æ¹æ³ã«ã¯å€§ããªãã€ãã¹ç¹ã1ã€ãããŸããsvnupãå®è¡ãããœãŒã¹ã³ãŒããæŽæ°ããéçšã§ããªããžããªããæ°ãããªã¯ãšã¹ããæ¥ããšããªããžããªã«ååšããªããã¡ã€ã«ã·ã¹ãã ã®ç¶æ
ã衚瀺ãããŸãã æ°ãããã¡ã€ã«ã®äžéšãšå€ããã¡ã€ã«ã®äžéšããããŸããããã¯
éååçãªå±éæ¹æ³ã§ãé«è² è·ã«ã¯é©ããŠããŸããããå°ããªãããžã§ã¯ãã«ã®ã¿é©ããŠããŸãã ããã«ãããããããç§ã¯ãŸã ãã®æ¹æ³ã§å±éãããŠãããããžã§ã¯ããç¥ã£ãŠããŸãã
rsyncãŠãŒãã£ãªãã£ã«åºã¥ãå±é
ãããè¡ãã«ã¯2ã€ã®ãªãã·ã§ã³ããããŸãããŠãŒãã£ãªãã£ã䜿çšããŠãã¡ã€ã«ããµãŒããŒã«çŽæ¥ã¢ããããŒããããäžã«ãã¢ããããŒããã-æŽæ°ããŸãã
æ°ãããã£ã¬ã¯ããªãžã®rsync
æåã«ãã¹ãŠã®ã³ãŒãããµãŒããŒã«ãŸã ååšããªããã£ã¬ã¯ããªã«å®å
šã«æ³šã蟌ã¿ããããããã©ãã£ãã¯ãåãæ¿ããããããã®ã¡ãœããã¯
ã¢ãããã¯ã§ã -誰ãäžéç¶æ
ãèŠãŸããã ãã®å Žåã150,000åã®ãã¡ã€ã«ãäœæãã150,000åã®ãã¡ã€ã«ãããå€ããã£ã¬ã¯ããªãåé€ãããš
ããã£ã¹ã¯ãµãã·ã¹ãã ã«å€§ããªè² è·ãããããŸã ã ç§ãã¡ã¯ããŒããã£ã¹ã¯ãéåžžã«ç©æ¥µçã«äœ¿çšããŠããããã®ãããªæäœã®åŸã1åéã®ãµãŒããŒã¯ããŸãæ°åãæªããªããŸãã 2000å°ã®ãµãŒããŒãããããã900 MBã2000åã¢ããããŒãããå¿
èŠããããŸãã
ãã®ã¹ããŒã ã¯ãæåã«ç¹å®ã®æ°ã®äžéãµãŒããŒïŒããšãã°50ïŒã«ã¢ããããŒãããŠãããæ®ãã®ãµãŒããŒã«è¿œå ãããšæ¹åã§ããŸãã ããã«ããããããã¯ãŒã¯ã§çºçããå¯èœæ§ã®ããåé¡ã¯è§£æ±ºãããŸãããèšå€§ãªæ°ã®ãã¡ã€ã«ãäœæããã³åé€ããåé¡ã¯ã©ãã«ãæ¶ããŸããã
äžã®rsync
rsyncã䜿çšããå Žåããã®ãŠãŒãã£ãªãã£ã¯ãã£ã¬ã¯ããªå
šäœãåããã ãã§ãªããæ¢åã®ãã£ã¬ã¯ããªãæŽæ°ããããšãã§ããŸãã å€æŽã®ã¿ãéä¿¡ããã®ã¯ãã©ã¹ã§ãããããã«ã³ãŒããæäŸããåããã£ã¬ã¯ããªã«å€æŽãã¢ããããŒããããããäœããã®äžéç¶æ
ããããŸããããã¯ãã€ãã¹ã§ãã
å€æŽã®éä¿¡ã¯æ¬¡ã®ããã«æ©èœããŸãã Rsyncã¯ããããã€ãå®è¡ããããµãŒããŒåŽãšåä¿¡åŽã§ãã¡ã€ã«ã®ãªã¹ããäœæããŸãã ãã®åŸããã¹ãŠã®ãã¡ã€ã«ããstatãã«ãŠã³ããããªã¹ãå
šäœãåä¿¡åŽã«éä¿¡ããŸãã å±éãé²ããŠãããµãŒããŒäžã§ããããã®å€ã®éããèæ
®ãããã©ã®ãã¡ã€ã«ãéä¿¡ãããã決å®ãããŸãã
ç§ãã¡ã®æ¡ä»¶ã§ã¯ããã®ããã»ã¹ã«ã¯çŽ
3 MBã®ãã©ãã£ãã¯ãš1ç§ã®ããã»ããµãŒæéãããããŸãã ããã¯å€§ããããšã§ã¯ãªãããã§ããã2,000å°ã®ãµãŒããŒãããããã¹ãŠãå°ãªããšã1åéã®ããã»ããµæéã«ãªããŸãã ããã¯ããã»ã©ç°¡åãªæ¹æ³ã§ã¯ãããŸããããrsyncã䜿çšããŠãã¹ãŠãéä¿¡ããããã確å®ã«åªããŠããŸãã ã©ãã«ãããŠååæ§ã®åé¡ã解決ããã»ãŒå®ç§ã«ãªããŸãã
åäžãã¡ã€ã«ãå±éãã
ã¢ããããŒããããã¡ã€ã«ã1ã€ã§ãã£ãŠããBitTorrentãŸãã¯UFTPãŠãŒãã£ãªãã£ã䜿çšãããšæ¯èŒçç°¡åã«å®è¡ã§ããŸãã 1ã€ã®ãã¡ã€ã«ã¯è§£åãç°¡åã§ãUnixã§ã¢ãããã¯ã«çœ®ãæããããšãã§ããŸãããŸãããã¡ã€ã«ããMD5ãŸãã¯SHA-1ã®éãèšç®ããããšã«ããããã«ããµãŒããŒã§çæãããå®å
ãã·ã³ã«é
ä¿¡ããããã¡ã€ã«ã®æŽåæ§ãç°¡åã«ç¢ºèªã§ããŸãïŒrsyncã®å Žåãå®å
ãµãŒããŒã«äœããããããããŸããïŒ
ããŒããã©ã€ãã®å Žåãã·ãŒã±ã³ã·ã£ã«ã¬ã³ãŒãã£ã³ã°ã¯å€§ããªãã©ã¹ã§ããçŽ10ç§ã§ã空ããŠããããŒããã©ã€ãã«900 MBã®ãã¡ã€ã«ãæžã蟌ãŸããŸãã ãã ãããããã®åã900 MBãèšé²ãããããã¯ãŒã¯çµç±ã§è»¢éããå¿
èŠããããŸãã
UFTPã«é¢ããåæ
çãªäœè«
ãã®ãªãŒãã³ãœãŒã¹ãŠãŒãã£ãªãã£ã¯ãå
ã
ãããšãã°è¡æããŒã¹ã®ãããã¯ãŒã¯ãä»ããŠããããã¯ãŒã¯äžã§é·ãé
延ã®ãããã¡ã€ã«ã転éããããã«äœæãããŸããã ããããUFTPã¯ãã«ããã£ã¹ãã«åºã¥ãUDPãããã³ã«ã䜿çšããŠåäœãããããå€æ°ã®ãã·ã³ãžã®ãã¡ã€ã«ã®ã¢ããããŒãã«é©ããŠããããšãå€æããŸããã åäžã®ãã«ããã£ã¹ãã¢ãã¬ã¹ãäœæããããã¡ã€ã«ãåä¿¡ãããã¹ãŠã®ãã·ã³ããµãã¹ã¯ã©ã€ãããã¹ã€ããããã±ããã®ã³ããŒãåãã·ã³ã«é
ä¿¡ãããããã«ããŸãã ããã§ãããŒã¿ããããã¯ãŒã¯ã«éä¿¡ããè² æ
ãã·ããããŸãã ãããã¯ãŒã¯ããããåŠçã§ããå Žåããã®æ¹æ³ã¯BitTorrentãããã¯ããã«ããŸãæ©èœããŸãã
ã¯ã©ã¹ã¿ãŒã§ãã®ãªãŒãã³ãœãŒã¹ãŠãŒãã£ãªãã£ãè©Šãããšãã§ããŸãã UDPäžã§åäœãããšããäºå®ã«ãããããããNACKã¡ã«ããºã ïŒé
ä¿¡æã«å€±ããããã±ããã®å転éã匷å¶ããåŠå®å¿çïŒããããŸãã
ããã¯å±éããä¿¡é Œã§ããæ¹æ³ã§ãã
åäžãã¡ã€ã«ã®å±éãªãã·ã§ã³
tar.gzäž¡æ¹ã®ã¢ãããŒãã®æ¬ ç¹ãçµã¿åããããªãã·ã§ã³ã ãã£ã¹ã¯ã«900 MBãé çªã«æžã蟌ãå¿
èŠãããã ãã§ãªãããã®åŸãåã900 MBãã©ã³ãã ã«èªã¿æžãããŠããäžåºŠæžã蟌ã¿ã150,000åã®ãã¡ã€ã«ãäœæããå¿
èŠããããŸãã ãã®æ¹æ³ã¯ãrsyncãããããã©ãŒãã³ã¹ãããã«å£ããŸãã
ãã¡ãŒPHPã¯ãphar圢åŒã®ã¢ãŒã«ã€ãïŒPHPã¢ãŒã«ã€ãïŒããµããŒãããã³ã³ãã³ãã®æäŸæ¹æ³ãšãã¡ã€ã«ã®ã€ã³ã¯ã«ãŒãæ¹æ³ãç¥ã£ãŠããŸãã ãã ãããã¹ãŠã®ãããžã§ã¯ãã1ã€ã®pharã«å
¥ããã®ãç°¡åãªããã§ã¯ãããŸãããã³ãŒãã®é©åãå¿
èŠã§ãã ãã®ã¢ãŒã«ã€ãããã®ã³ãŒããæ©èœããªããšããçç±ã ãã§ã ããã«ãã¢ãŒã«ã€ãå
ã®1ã€ã®ãã¡ã€ã«ãå€æŽããããšã¯ã§ããŸããïŒ
å°æ¥ã®YuriïŒçè«çã«ã¯ããŸã å¯èœã§ãïŒãã¢ãŒã«ã€ãå
šäœããªããŒãããå¿
èŠããããŸãã ãŸããpharã¢ãŒã«ã€ãã¯OPCacheã§æ©èœãããšããäºå®ã«ããããããããããã€ãããšãã«ãã£ãã·ã¥ãç Žæ£ããå¿
èŠããããŸããããããªããšãå€ãpharãã¡ã€ã«ããOPCacheã«ã¬ããŒãžãçºçããŸãã
hhbcãã®ã¡ãœããã¯ãHHVMã®ãã€ãã£ãã§ããHipHop Virtual Machineã§ãããFacebookã§äœ¿çšãããŠããŸãã ããã¯pharã¢ãŒã«ã€ãã®ãããªãã®ã§ããããœãŒã¹ã³ãŒãã¯å«ãŸããŠããŸããããHHVMä»®æ³ãã·ã³ïŒFacebookã®PHPã€ã³ã¿ãŒããªã¿ãŒïŒã®ã³ã³ãã€ã«æžã¿ãã€ãã³ãŒãã¯å«ãŸããŠããŸããã ãã®ãã¡ã€ã«ã®å
容ãå€æŽããããšã¯çŠæ¢ãããŠããŸããæ°ããã¯ã©ã¹ãé¢æ°ãäœæããããšã¯ã§ããŸããããŸãããã®ã¢ãŒãã®ãã®ä»ã®åçæ©èœã¯ç¡å¹ã«ãªããŸãã ãããã®å¶éã«ãããä»®æ³ãã·ã³ã¯è¿œå ã®æé©åã䜿çšã§ããŸãã Facebookã«ãããšãããã«ããã³ãŒãå®è¡é床ãæ倧30ïŒ
åäžããå¯èœæ§ããããŸãã ããã¯ãããã圌ãã«ãšã£ãŠè¯ãéžæè¢ã§ãã ããã§1ã€ã®ãã¡ã€ã«ãå€æŽããããšãäžå¯èœã§ãïŒ
å°æ¥ã®YuriïŒsqliteããŒã¹ã§ãããããå®éã«ã¯å¯èœã§ãïŒã 1è¡å€æŽãããå Žåã¯ãã¢ãŒã«ã€ãå
šäœãå床ããçŽãå¿
èŠããããŸãã
ãã®æ¹æ³ã§ã¯ã
evalããã³åçãªincludeã®äœ¿çšã¯
çŠæ¢ãããŠããŸãã ããã¯ããã§ãããå®å
šã§ã¯ãããŸããã Evalã¯äœ¿çšã§ããŸãããæ°ããã¯ã©ã¹ãŸãã¯é¢æ°ãäœæãããããã®ã¢ãŒã«ã€ãã®å€éšã«ãããã£ã¬ã¯ããªããã€ã³ã¯ã«ãŒãããããšã¯ã§ããŸããã
ã«ãŒãããã¯å€ãããŒãžã§ã³ã§ããã2ã€ã®å€§ããªå©ç¹ããããŸãã ãŸããéåžžã®ãã£ã¬ã¯ããªã®ããã«èŠã
ãŸãã ã«ãŒããããŠã³ããããšããšã«ããã³ãŒãã®ããã«-éçºç°å¢ãšæ¬çªç°å¢ã®äž¡æ¹ã§ãã¡ã€ã«ãåŠçããŸãã 2çªç®ã®-ã«ãŒãã¯èªã¿åãããã³æžã蟌ã¿ã¢ãŒãã§ããŠã³ãã§ããå®çšŒåã®ããã«äœããç·æ¥ã«å€æŽããå¿
èŠãããå Žåã¯1ã€ã®ãã¡ã€ã«ãå€æŽã§ããŸãã
ããããã«ãŒãã«ã¯çæããããŸãã ãŸããDockerã§å¥åŠã«åäœããŸãã ããã«ã€ããŠã¯åŸã§èª¬æããŸãã
2çªç®-æåŸã®ã«ãŒãã§document_rootãšããŠã·ã³ããªãã¯ãªã³ã¯ã䜿çšãããšãOPCacheã§åé¡ãçºçããŸãã ãã¹ã«ã·ã³ããªãã¯ãªã³ã¯ãå«ããã®ã¯ããŸãåŸæã§ã¯ãªãã䜿çšãããã¡ã€ã«ã®ããŒãžã§ã³ãæ··ä¹±ããå§ããŸãã ãããã£ãŠããããã€æã«OPCacheããªã»ããããå¿
èŠããããŸãã
ãã1ã€ã®åé¡ã¯ããã¡ã€ã«ã·ã¹ãã ãããŠã³ãããã«
ã¯ã¹ãŒããŒãŠãŒã¶ãŒç¹æš©ãå¿
èŠãªããšã§ãã ãŸãããã·ã³ã®èµ·å/åèµ·åæã«ããããããŠã³ãããããšãå¿ããªãã§ãã ãããããããªããšãã³ãŒãã®ä»£ããã«ç©ºã®ãã£ã¬ã¯ããªãååšããŸãã
ããã«ãŒã®åé¡
ããã«ãŒã³ã³ãããŒãäœæãããã®äžã«ãã«ãŒãããŸãã¯ä»ã®ãããã¯ããã€ã¹ãããŠã³ãããããã©ã«ããŒãã¹ããŒãããšã2ã€ã®åé¡ãåæã«çºçããŸããæ°ããããŠã³ããã€ã³ããããã«ãŒã³ã³ãããŒã«èœã¡ãªãããšãããã³äœææã«ååšãããã«ãŒãã Dockerã³ã³ãã
㯠ãDockerã³ã³ããã«ãã£ãŠå æãããŠããããã
ããŠã³ã解é€ã§ããŸãã ã
åœç¶ãããã¯éåžžãå±éãšäºææ§ããããŸãããã«ãŒãããã€ã¹ã®æ°ãå¶éãããŠãããæ°ããã³ãŒããã³ã³ããã«ã©ã®ããã«åé¡ãããããäžæã ããã§ãã
ããšãã°ãããŒã«ã«
NFSãµãŒããŒãèµ·åããããSSHFSã䜿çšããŠãã£ã¬ã¯ããªãããŠã³ãããããããªã©ãå¥åŠãªããšãããããšããŸããããããŸããŸãªçç±ã§ãããå®çããŸããã§ããã ãã®çµæãcronã§rsyncãæåŸã®ãã«ãŒããããçŸåšã®ãã£ã¬ã¯ããªã«ç»é²ãã1åããšã«ã³ãã³ããå®è¡ããŸããã
rsync /var/loop/<N>/ /var/www/
ããã§
/var/www/
ã¯ãã³ã³ããã«ææ Œããããã£ã¬ã¯ããªã§ãã ããããDockerã³ã³ãããåãããã·ã³ã§ã¯ãPHPã¹ã¯ãªãããé »ç¹ã«å®è¡ããå¿
èŠããªããããrsyncã¯ã¢ãããã¯ã§ã¯ãªããç§ãã¡ã«é©ããŠããŸãã ããã§ãããã®æ¹æ³ã¯ãã¡ããéåžžã«æªãã§ãã Dockerã§ããŸãæ©èœããå±éã·ã¹ãã ãäœæããããšæããŸãã
rsyncã2ã€ã®ãã£ã¬ã¯ããªããã³realpath_root
ãã®æ¹æ³ã¯ãPHPã®äœæè
ã§ããRasmus Lerdorfã«ãã£ãŠææ¡ããããã®ã§ã圌ã¯å±éæ¹æ³ãç¥ã£ãŠããŸãã
ã¢ãããã¯ãããã€ãäœæããæ¹æ³ãšãç§ã説æããæ¹æ³ã®ããããã䜿çšããŸããïŒ ã·ã³ããªãã¯ãªã³ã¯ãååŸããdocument_rootãšããŠç»é²ããŸãã åæç¹ã§ãã·ã³ããªãã¯ãªã³ã¯ã¯2ã€ã®ãã£ã¬ã¯ããªã®ãããããæããrsyncãè¿é£ã®ãã£ã¬ã¯ããªãã€ãŸãã³ãŒããæã瀺ããŠããªããã£ã¬ã¯ããªã«äœæããŸãã
ããããåé¡ãçºçããŸãïŒPHPã³ãŒãã¯ãã©ã®ãã£ã¬ã¯ããªã§èµ·åãããããç¥ããŸããã ãããã£ãŠãããšãã°ãconfigã®æåã®ã©ããã«æžã蟌ãå€æ°ã䜿çšããå¿
èŠããããŸããããã«ãããã³ãŒããå®è¡ããããã£ã¬ã¯ããªãšæ°ãããã¡ã€ã«ãå«ãŸãããã£ã¬ã¯ããªãä¿®æ£ãããŸãã ã¹ã©ã€ãã§ã¯ã
ROOT_DIR
ãšåŒã°ã
ROOT_DIR
ã
æ¬çªç°å¢ã§äœ¿çšããã³ãŒãå
ã®ãã¹ãŠã®ãã¡ã€ã«ã«ã¢ã¯ã»ã¹ãããšãã«ããã®å®æ°ã䜿çšããŸãã ã¢ãããã¯ããããã£ãååŸããŸããsymlinkãåãæ¿ããåã«å°çãããªã¯ãšã¹ãã«ã¯ãäœãå€æŽããŠããªãå€ããã£ã¬ã¯ããªããã®ãã¡ã€ã«ãåŒãç¶ãå«ãŸããsymlinkåãæ¿ãåŸã«æ¥ãæ°ãããªã¯ãšã¹ãã¯æ°ãããã£ã¬ã¯ããªããåäœãéå§ããŠåŠçãããŸãæ°ããã³ãŒãã
ãã ããããã¯ã³ãŒãã§èšè¿°ããå¿
èŠããããŸãã ãã¹ãŠã®ãããžã§ã¯ããããã«å¯Ÿå¿ã§ããããã§ã¯ãããŸããã
ã©ã¹ãã¹ã¹ã¿ã€ã«
Rasmus㯠ãã³ãŒããæåã§å€æŽããŠå®æ°ãäœæãã代ããã«ãApacheããããã«å€æŽããããnginxã䜿çšããããšããå§ãããŸãã
document_rootã«ã¯ãææ°ããŒãžã§ã³ãžã®ã·ã³ããªãã¯ãªã³ã¯ãæå®ããŸãã nginxããæã¡ã®å Žåã¯ã
root $realpath_root
ç»é²ã§ããŸããApacheã®å Žåã¯ãã¹ã©ã€ãã«è¡šç€ºãããèšå®ãæã€å¥ã®ã¢ãžã¥ãŒã«ãå¿
èŠã§ãã ããã¯æ¬¡ã®ããã«æ©èœããŸãããªã¯ãšã¹ããå°çãããšãnginxãŸãã¯Apacheããã¹ããrealpathïŒïŒãæ€èšããã·ã³ããªãã¯ãªã³ã¯ããä¿åãããã®ãã¹ãdocument_rootãšããŠæž¡ããŸãã ãã®å Žåãdocument_rootã¯åžžã«ã·ã³ããªãã¯ãªã³ã¯ã®ãªãéåžžã®ãã£ã¬ã¯ããªãæããPHPã³ãŒãã¯ã©ã®ãã£ã¬ã¯ããªããåŒã³åºãããããèæ
®ããå¿
èŠããªãå ŽåããããŸãã
ãã®æ¹æ³ã«ã¯èå³æ·±ãå©ç¹ããããŸã-OPCache PHPãžã®å®éã®ãã¹ã¯ã·ã³ããªãã¯ãªã³ã¯ãå«ã¿ãŸããã ãªã¯ãšã¹ããå±ããæåã®ãã¡ã€ã«ã§ããããã§ã«ãã£ã±ãã«ãªã£ãŠããŠãOPCacheã«åé¡ã¯ãããŸããã document_rootã䜿çšããããããããã¯ã©ã®PHPãããžã§ã¯ãã§ãæ©èœããŸãã äœãé©å¿ããå¿
èŠã¯ãããŸããã
fpmã®ãªããŒãã¯äžèŠã§ãããããã€äžã«OPCacheããªã»ããããå¿
èŠã¯ãããŸãããããã¯ããã¹ãŠã®ãã¡ã€ã«ãå床解æããå¿
èŠããããããããã»ããµãµãŒããŒã®è² è·ãé«ãçç±ã§ãã ç§ã®å®éšã§ã¯ãOPCacheãçŽ30åãªã»ãããããšãããã»ããµã®æ¶è²»ã2ã3åå¢å ããŸããã ãããåå©çšããã®ã¯è¯ãããšã§ããããã®æ¹æ³ã§ãããè¡ãããšãã§ããŸãã
ä»ãçæã OPCacheãåå©çšããã2ã€ã®ãã£ã¬ã¯ããªããããããåãã£ã¬ã¯ããªã®ã¡ã¢ãªã«ãã¡ã€ã«ã®ã³ããŒãä¿åããå¿
èŠããããŸã-OPCacheã§ã¯ã2åã®ã¡ã¢ãªãå¿
èŠã§ãã
å¥åŠã«æãããå¥ã®å¶éããã
ãŸã-max_execution_timeããšã«è€æ°åãããã€ããããšã¯ã§ããŸãã ã ããããªããšãrsyncããã£ã¬ã¯ããªã®1ã€ã«ã¢ã¯ã»ã¹ããŠããéããã®ãã£ã¬ã¯ããªããã®ãªã¯ãšã¹ããåŠçã§ãããããåãåé¡ãçºçããŸãã
äœããã®çç±ã§Apacheã䜿çšããå Žåã¯ãRasmusãæžãã
ãµãŒãããŒãã£ã®ã¢ãžã¥ãŒã«ãå¿
èŠã§ãã
ã©ã¹ãã¹ã¯ããã®ã·ã¹ãã ã¯åªããŠãããšèšããŸããç§ãããªãã«ãå§ãããŸãã 99ïŒ
ã®ãããžã§ã¯ãã§ã¯ãæ°ãããããžã§ã¯ããšæ¢åã®ãããžã§ã¯ãã®äž¡æ¹ã«é©ããŠããŸãã ãããããã¡ãããç§ãã¡ã¯ãã®ãããªãã®ã§ã¯ãªããç¬èªã®æ±ºå®ãæžãããšã«ããŸããã
æ°ããã·ã¹ãã -MDK
åºæ¬çã«ãç§ãã¡ã®èŠä»¶ã¯ã»ãšãã©ã®Webãããžã§ã¯ãã®èŠä»¶ãšå€ãããŸããã ã¹ããŒãžã³ã°ãšãããã¯ã·ã§ã³ã§ã®
è¿
éãªå±é ã
äœãªãœãŒã¹æ¶è²» ãOPCacheã®åå©çšãããã³é«éããŒã«ããã¯ãå¿
èŠã§ãã
ãã ããä»ã®èŠä»¶ãšã¯ç°ãªã2ã€ã®èŠä»¶ããããŸãã ãŸãã
ã¢ãããã¯ã«ãããã
é©çšããæ©èœã§ãã ãããã¯ãæ¬çªç°å¢ã§äœããæ¯é
ãã1ã€ãŸãã¯è€æ°ã®ãã¡ã€ã«ã®å€æŽãšåŒã°ããŸãã æ©ãããããã§ãã ååãšããŠãRasmusãæäŸããã·ã¹ãã ã¯ãããã¿ã¹ã¯ã«å¯ŸåŠããŠããŸãã
ãŸã
ãæ°æéå®è¡ã§ãã CLIã¹ã¯ãªããããã
ãŸãã ããããã¯åŒãç¶ãã³ãŒãã®äžè²«ããããŒãžã§ã³ã§åäœããã¯ãã§ãã ãã®å Žåãäžèšã®ãœãªã¥ãŒã·ã§ã³ã¯ãæ®å¿µãªããç§ãã¡ã«åããªãããå€ãã®ãã£ã¬ã¯ããªãå¿
èŠã§ãã
å¯èœãªè§£æ±ºçïŒ
- ã«ãŒãxNïŒ-stagingã-dockerã-opcacheïŒ;
- rsync xNïŒ-productionã-opcache xNïŒ;
- SVN xNïŒ-productionã-opcache xNïŒã
ããã§ãNã¯æ°æéã§çºçããèšç®ã®æ°ã§ãã ããããäœååãæã€ããšãã§ããã®ã§ãã³ãŒãã®è¿œå ã³ããŒã®ããã«éåžžã«å€§ããªã¹ããŒã¹ãè²»ããå¿
èŠããããŸãã
ãã®ãããæ°ããã·ã¹ãã ãæãã€ããŠ
MDKãšåŒã³ãŸãã
ã ããã¯ã
ãã«ãããŒãžã§ã³å±éããŒã«ã§ãããã«ã
ããŒãžã§ã³å±éãããã®ç¥ã§ãã 以äžã®ä»®å®ã«åºã¥ããŠãããè¡ããŸããã
ããªãŒã¹ãã¬ãŒãžã¢ãŒããã¯ãã£ã¯GitããååŸããŸããã ã¹ã¯ãªãããæ©èœããã³ãŒãã®äžè²«ããããŒãžã§ã³ãå¿
èŠã§ããã€ãŸããã¹ãããã·ã§ãããå¿
èŠã§ãã ã¹ãããã·ã§ããã¯LVMã§ãµããŒããããŠããŸãããBtrfsãGitãªã©ã®å®éšçãªãã¡ã€ã«ã·ã¹ãã ã§ã¯éå¹ççã«å®è£
ãããŠããŸãã Gitããã¹ãããã·ã§ããã®å®è£
ãåããŸããã
file.phpããfile.phpã<version>ã«ãã¹ãŠã®ãã¡ã€ã«ã®ååãå€æŽããŸããã æã£ãŠãããã¡ã€ã«ã¯ãã¹ãŠãã£ã¹ã¯ã«ä¿åãããŠãããããåããã¡ã€ã«ã®è€æ°ã®ããŒãžã§ã³ãä¿åããå Žåã¯ããã®ããŒãžã§ã³ã«ãµãã£ãã¯ã¹ãè¿œå ããå¿
èŠããããŸãã
ç§ã¯Goã倧奜ããªã®ã§ãã¹ããŒãã®ããã«Goã§ã·ã¹ãã ãäœæããŸãããMultiversion Deployment Kitã®ä»çµã¿
Gitããã¹ãããã·ã§ããã®ã¢ã€ãã¢ãåãå
¥ããŸããã ãããå°ãåçŽåããMDKã§ã®å®è£
æ¹æ³ã説æããŸãã
MDKã«ã¯2çš®é¡ã®ãã¡ã€ã«ããããŸãã æåã¯
ã«ãŒãã§ãã 以äžã®å³ã¯ç·è²ã§ããŒã¯ãããŠããããªããžããªå
ã®ãã£ã¬ã¯ããªã«å¯Ÿå¿ããŠããŸãã 2çªç®ã®ã¿ã€ãã¯
çŽæ¥ãã¡ã€ã«ã§ãéåžžãšåãå Žæã«ãããŸããããã¡ã€ã«ããŒãžã§ã³ã®åœ¢åŒã®ãµãã£ãã¯ã¹ãä»ããŠããŸãã ãã¡ã€ã«ãšãããã¯ããã®å
容ã«åºã¥ããŠããŒãžã§ã³ç®¡çãããŸãããã®äŸã§ã¯ãåã«MD5ã§ãã
ã«ãŒãããããä»ã®ãããã®ãã¡ã€ã«ã®ç¹å®ã®ããŒãžã§ã³ãåç
§ããããããä»ã®ãã¡ã€ã«ãšããããåç
§ããç¹å®ã®ããŒãžã§ã³ãä¿®æ£ãããã¡ã€ã«ã®éå±€ããããšããŸãã äœããã®ãã¡ã€ã«ãå€æŽãããã®ã§ãã
ããããåæ§ã®åçãèŠãããšããããããããŸããïŒãã¹ãã®ç¬¬2ã¬ãã«ã§ãã¡ã€ã«ãå€æŽãã察å¿ããããã-map *ã§ã3ã€ã®*ãã¡ã€ã«ã®ããŒãžã§ã³ãæŽæ°ããããã®å
容ãå€æŽãããããŒãžã§ã³ãå€æŽãããŸã-ããŒãžã§ã³ãã«ãŒããããã§å€æŽãããŸãã äœããå€æŽãããšãåžžã«æ°ããã«ãŒãããããååŸãããŸãããå€æŽããªãã£ããã¡ã€ã«ã¯ãã¹ãŠåå©çšãããŸãã
ãªã³ã¯ã¯ä»¥åãšåããã¡ã€ã«ã«æ®ããŸãã ããã¯ãä»»æã®æ¹æ³ã§ã¹ãããã·ã§ãããäœæããäž»ãªã¢ã€ãã¢ã§ããããšãã°ã
ZFSã§ã¯ ãã»ãŒåãæ¹æ³ã§å®è£
ãããŸãã
MDKããã£ã¹ã¯äžã«ããæ¹æ³
ãã£ã¹ã¯äžã«ãããŸãïŒ
ææ°ã®ã«ãŒãããããžã®ã·ã³ããªãã¯ãªã³ã¯-WebããæäŸãããã³ãŒããã«ãŒããããã®ããã€ãã®ããŒãžã§ã³ãå Žåã«ãã£ãŠã¯ç°ãªãããŒãžã§ã³ã®ããã€ãã®ãã¡ã€ã«ãããã³ãµããã£ã¬ã¯ããªã«ã¯å¯Ÿå¿ãããã£ã¬ã¯ããªã®ãããããããŸãã
ç§ã¯è³ªåãäºèŠããŸãïŒã
ãããŠãããã¯ã©ã®ããã«ãŠã§ããªã¯ãšã¹ããåŠçããŸããïŒãŠãŒã¶ãŒã³ãŒãã¯ã©ã®ãã¡ã€ã«ã«æ¥ãã§ããããïŒ ã
ã¯ããç§ã¯ããªãã欺ãã-ããŒãžã§ã³ãªãã®ãã¡ã€ã«ããããŸããindex.phpã®ãªã¯ãšã¹ããåä¿¡ãããã£ã¬ã¯ããªã«ããããªãå Žåããµã€ãã¯æ©èœããŸããã
ãã¹ãŠã®PHPãã¡ã€ã«ã«ã¯ã
ã¹ã¿ããšåŒã°ãããã¡ã€ã«ããããŸãããããã®ãã¡ã€ã«ã«ã¯ããããã®ã«ãŒãã®æäœæ¹æ³ãç¥ã£ãŠããé¢æ°ã宣èšãããŠãããã¡ã€ã«ããã®ãã¡ã€ã«ãšãç®çã®ããŒãžã§ã³ã®ãã¡ã€ã«ããã®ãã¡ã€ã«ã®2è¡ãå«ãŸããŠããããã§ãã
<?php require_once "mdk.inc"; require mdk_resolve_path("a.php");
ããã¯ãããŒãžã§ã³ãªãã§
a.phpãã¡ã€ã«ãã
b.phpãé€å€ããå Žåãrequire_onceãæžã蟌ãŸããŠãããããã·ã¹ãã ã¯ã©ã®ã«ãŒãã«ãŒãããéå§ããããèšæ¶ããããã䜿çšãããããææ°ããŒãžã§ã³ã«ã·ã³ããªãã¯ãªã³ã¯ãããŸããäžè²«ããããŒãžã§ã³ã®ãã¡ã€ã«ãååŸããŸãã
æ®ãã®ãã¡ã€ã«ã«ã€ããŠã¯ãææ°ããŒãžã§ã³ãžã®ã·ã³ããªãã¯ãªã³ã¯ããããŸãã
MDKã䜿çšããŠå±éããæ¹æ³
ã¢ãã«ã¯git pushã«éåžžã«äŒŒãŠããŸãã
- ã«ãŒããããã®ã³ã³ãã³ããéä¿¡ããŸãã
- åä¿¡åŽã§ã¯ãã©ã®ãã¡ã€ã«ãæ¬ èœããŠãããã調ã¹ãŸãã ãã¡ã€ã«ã®ããŒãžã§ã³ã¯ã³ã³ãã³ãã«ãã£ãŠæ±ºå®ããããããããäžåºŠããŠã³ããŒãããå¿
èŠã¯ãããŸããïŒ å°æ¥ã®ãŠãŒãªïŒççž®ãããMD5ã®è¡çªãçºçããå Žåãé€ããŸãã
- äžè¶³ããŠãããã¡ã€ã«ãèŠæ±ããŸãã
- 2çªç®ã®ãã€ã³ãã«é²ã¿ãããã«åãæããŸãã
äŸ
ãµãŒããŒã«ãoneããšããååã®ãã¡ã€ã«ããããšããŸãã ã«ãŒãããããéä¿¡ããŸãã
ã«ãŒããããã®ç Žç·ã®ç¢å°ã¯ãååšããªããã¡ã€ã«ãžã®ãªã³ã¯ã瀺ããŠããŸãã ãããããããäžã«ããããããããã®ååãšããŒãžã§ã³ãç¥ã£ãŠããŸãã ãµãŒããŒã«ãªã¯ãšã¹ãããŸãã ãµãŒããŒãéä¿¡ãããšããã¡ã€ã«ã®1ã€ãã«ãŒãã§ãããããšãããããŸãã
èŠãŠãã ãã-åäžã®ãã¡ã€ã«ã¯ãããŸããã å床ãäžè¶³ããŠãããã¡ã€ã«ããªã¯ãšã¹ãããŸãã ãµãŒããŒã¯ããããéä¿¡ããŸãã æ®ãã®ã«ãŒãã¯ãããŸãã-å±éããã»ã¹ãå®äºããŸããã
ãã¡ã€ã«ã150,000åã®å Žåã¯ã©ããªããç°¡åã«æšæž¬ã§ããŸãããå€æŽãããŠããŸãã ã«ãŒããããã§1ã€ã®ããããæ¬ èœããŠããããšãããããŸãããã¹ãã®ã¬ãã«ã確èªããŠããã¡ã€ã«ãååŸããŸãããã èšç®ã®è€éããšããç¹ã§ã¯ãããã»ã¹ã¯ãã¡ã€ã«ãçŽæ¥ã³ããŒããããšãšã»ãšãã©å€ãããŸããããåæã«ã³ãŒãã®äžè²«æ§ãšã¹ãããã·ã§ãããä¿æãããŸãã
MDKã«ã¯æ¬ ç¹ã¯ãããŸãã:) 1é±é以å
ã«ãããã€ããããã¹ãŠã®ãã¡ã€ã«ãæ®ãããšãã§ããããã
å°ããªå€æŽã
è¿
éãã€ã¢ãããã¯ã«ãããã€ã§ã ã
ã¹ã¯ãªããã¯æ°æ¥éæ©èœããŸãã ãããã¯ããªãååãªã¹ããŒã¹ãå æããŸãã OPCacheãåå©çšããããšãã§ããCPUã¯ã»ãšãã©äœãé£ã¹ãŸããã
ç£èŠã¯éåžžã«å°é£ã§ãããå¯èœã§ãã ãã¹ãŠã®ãã¡ã€ã«ã¯ã³ã³ãã³ãããšã«ããŒãžã§ã³ç®¡çãããŠããããã¹ãŠã®ãã¡ã€ã«ã調ã¹ãŠååãšã³ã³ãã³ãã確èªããcronãäœæã§ããŸãã ã«ãŒããããããã¹ãŠã®ãã¡ã€ã«ãåç
§ããŠããããšãç Žæãããªã³ã¯ããªãããšã確èªããããšãã§ããŸãã ããã«ãå±éäžã«æŽåæ§ããã§ãã¯ãããŸãã
å€ãã«ãŒãã¯ãã¹ãŠæã£ãŠãããã
ãå€æŽãç°¡åã«ããŒã«ããã¯ã§ã
ãŸã ã ã«ãŒããæããã ãã§ãããã«ãã¹ãŠãæããŸãã
ç§ã«ãšã£ãŠãããã«
MDKãGoã§èšè¿°ãããŠãããšããäºå®ã¯ã
MDKããã°ããåäœããããšãæå³ããŸãã
ç§ã¯åã³ããªãã欺ããããŸã çæããããŸãã ãããžã§ã¯ããã·ã¹ãã ã§åäœã
ããã«ã¯ãã³ãŒãã倧å¹
ã«å€æŽããå¿
èŠããããŸãããäžèŠãããšæããããããç°¡åã§ãã
ã·ã¹ãã ã¯éåžžã«è€éã§ããBadooãªã©ã®èŠä»¶ããªãå Žåã¯ãå®è£
ããå§ãããŸããã ãŸãããšã«ãããé
ããæ©ããå Žæã¯çµäºããã®ã§ã
ã¬ããŒãžã³ã¬ã¯ã¿ãŒãå¿
èŠã§ã ã
ãã¡ã€ã«ãç·šéããããã®ç¹å¥ãªãŠãŒãã£ãªãã£ãäœæããŸãã-ã¹ã¿ãã§ã¯ãªãå®éã®ãã¡ã€ã«ãããšãã°mdk-vimã ãã¡ã€ã«ãæå®ãããšãç®çã®ããŒãžã§ã³ãæ€åºãããŠç·šéãããŸãã
æ°åã®MDK
ã¹ããŒãžã³ã°ã«50å°ã®ãµãŒããŒãããããã®äžã«3ã5ç§éå±éã
ãŸãã rsync以å€ã®ãã¹ãŠãšæ¯èŒãããšãéåžžã«é«éã§ãã
æ¬çªç°å¢ã§ã¯ãçŽ
2å ã
5ã10ç§ã®å°ããªããããå±éããŸãã
äœããã®çç±ã§ããã¹ãŠã®ãµãŒããŒäžã®ã³ãŒãã§ãã©ã«ããŒå
šäœã倱ãããå ŽåïŒããã¯æ±ºããŠçºçããªãã¯ãã§ãïŒã
å®å
šã¢ããããŒãã®
ããã»ã¹ã«ã¯çŽ40åããããŸãã å€ã¯ãã©ãã£ãã¯ãæå°ã§ããããããã¯äžåºŠèµ·ãããŸããã ãããã£ãŠã誰ãæªæãããŸããã§ããã 2çªç®ã®ãã¡ã€ã«ã¯5åéãµãŒããŒã®ãã¢äžã«ãã£ããããèšåãã䟡å€ã¯ãããŸããã
ã·ã¹ãã ã¯ãªãŒãã³ãœãŒã¹ã§ã¯ãããŸããããããèå³ãããã°ãã³ã¡ã³ããæžããŠãã ãã-ã¬ã€ã¢ãŠãããããããããŸããïŒ
å°æ¥ã®ããïŒãã®èšäºãæžããŠããæç¹ã§ã¯ãŸã ã·ã¹ãã ã¯ãªãŒãã³ãœãŒã¹ã§ã¯ãããŸãã ïŒã
ãããã«
ã©ã¹ãã¹ã«è³ãåŸãã圌ã¯åãã€ããŠããŸãã ã ç§ã®æèŠã§ã¯ããã®rsyncã¡ãœãããšrealpath_rootãæé©ã§ãããã«ãŒããéåžžã«ããŸãæ©èœããŸãã
é ã§èããŠãã ãã ããããžã§ã¯ãã«å¿
èŠãªãã®ãèŠãŠãååãªãããŠã¢ãã³ã·ããããå®å®è¹ãäœãããšããªãã§ãã ããã ãã ããåæ§ã®èŠä»¶ãããå Žåã¯ãMDKã«äŒŒãã·ã¹ãã ãé©ããŠããŸãã
HighLoad ++ã§èª¬æããããã®ãããã¯ã«æ»ãããšã«ããŸããããããããé«ãããã©ãŒãã³ã¹ãéæããããã®å€ãã®ã¬ã³ã¬ã®1ã€ã«ãããªãã£ããããååãªæ³šæãæãããŸããã§ããã ãããä»ãå®å
šã«PHPã«ç¹åããå°éã®PHPãã·ã¢äŒè°ãéå¬ãããŠããŸãã ãããŠãããã§ç§ãã¡ã¯æ¬åœã«å®å
šã«æããŸãã ããã©ãŒãã³ã¹ ã æšæº ãããã³ããŒã«ã«ã€ããŠã ãªãã¡ã¯ã¿ãªã³ã°ãå«ãå€ãã®ããšã«ã€ããŠåŸ¹åºçã«è©±ããŸãã
äŒè°ããã°ã©ã ã®æŽæ°ã§é»å ±ãã£ã³ãã«ã賌èªãã5æ17æ¥ã«äŒããŸãããã