ãµã€ããã©ã®ããã«æé©åãããã«ã€ããŠã®ã¹ããŒãªãŒã衚瀺ãããŸãã ãã®ãµã€ãã¯Wordpressãšã³ãžã³ã§å®è¡ãããŸãïŒãã®ãã¬ãŒãºã§ã¯ãã»ãšãã©ã®èªè ã¯WordPressãé«éã§ã©ã®ããã«æ©èœããŠããããç¥ã£ãŠãããã£é¢ãããå¿ èŠããããŸãïŒã ããããç§ãã¡ã¯æåãããµã€ãã¯é£ã³å§ããŸããã ç§ã¯ãµãŒããŒæé©åã®å°é家ãšã¯ã¿ãªãããªãããšãããã«èšããªããã°ãªããŸããããç§ãéæããããšã¯ç§ã«ãšã£ãŠéåžžã«æ¥œããã§ãã ãŸãã貎éãªçµéšãåŸãããHabrã®èªè ãšå ±æããããšæããŸãã
è¡ãã
ãŸãããµã€ãã®é»å®³ã®åå ã調æ»ããããšããå§ããŸããã å人çã«ã¯ã LoadImpactãµãŒãã¹ãæãæ°ã«å ¥ã£ãŠããŸãã å°ãåãŸã§ã圌ã¯æ°ããæ©èœãšæ°ããã€ã³ã¿ãŒãã§ãŒã¹ãæã¡ããµãŒãã¹èªäœã¯ãLoadImpact 2.0ããšåŒã°ãå§ããŸããã ããã¯ãã¹ãŠåºåçšã§ã¯ãªããšèšãããŠããŸã-ãµãŒãã¹ã¯æ¬åœã«è¯ãã§ãã Pingdom Full Page TestãšGoogle PageSpeedã®ãããªãµãŒãã¹ã䜿çšããŠãµã€ãããã¹ãããããšãã§ããŸãã
Load Impact Page Analyzerã䜿çšããŠãTime to first byteãã©ã¡ãŒã¿ãŒïŒ4ç§ïŒã®å€§ããªå€ãèŠã€ããŸãããããã¯ãããŒãžã圢æããPHPã¹ã¯ãªãããé·æéå®è¡ãããŠããããšã瀺ããŠããŸãã ãµã€ãã®æãé»å®³çãªã³ã³ããŒãã³ããæ€çŽ¢ããå¿ èŠããããŸããã
footer.phpãã³ãã¬ãŒãã«è¡ãè¿œå ãã
<!-- <?php echo get_num_queries(); ?> queries -->
ã¡ã€ã³ããŒãžãçæããã®ã«82ã®SQLã¯ãšãªãå¿ èŠã§ããããšãããããŸããã WordPressã¢ãžã¥ãŒã«ã®æ°ãšããããã䜿çšããSQLã¯ãšãªã®æ°ãæžããå¿ èŠãããããšãæããã«ãªããŸããã ã€ã³ã¹ããŒã«ãããWordPressãã©ã°ã€ã³ïŒçŽ40åïŒãæŽçãããšãçµå±ã®ãšããããããã®ã»ãšãã©ãæ¬åœã«å¿ èŠã§ããããšãããããŸããã
ãã³ãã¬ãŒãå ã®ãã¹ãŠã®PHPã³ãŒãããããã¡ã€ã«ããããšã«ããŸããã Xdebug + Performance Testingã¯æ°ã«ããŸããã§ããïŒãã®ããããµãŒãããŒãã£ã®ãœãããŠã§ã¢ã倧éã«é 眮ããå¿ èŠããããŸããïŒãã次ã®åœ¢åŒã®ç°¡åãªèªå·±èšè¿°åãããã¡ã€ãªã³ã°ãè¡ããŸããã
<!-- HEADER01 - <?php print microtime(true) ?> -->
次ã®äž»ãªåé¡ãããã«çºèŠããŸããã
- ãžãªã¿ãŒã²ãã£ã³ã°åºåã¢ãžã¥ãŒã«
- Appleæ ªäŸ¡è¡šç€ºã¢ãžã¥ãŒã«
- ãµã€ããããã¯ãã¢ããªã±ãŒã·ã§ã³ã®æŠèŠããšããã€ã©ã€ãã
å
ç§ãã¡ã®ãµã€ãã®æ倧ã®ãã¬ãŒãã¯ããžãªã¿ãŒã²ãã£ã³ã°åºåã¢ãžã¥ãŒã«ã§ãã ãã®æ¬è³ªã¯ããµã€ãã«2çš®é¡ã®ãããŒã衚瀺ãããããšã§ãã1ã€ã¯ãµã³ã¯ãããã«ãã«ã¯ããã®èšªåè çšã«ããã1ã€ã¯ä»ã®ãã¹ãŠã®ãããŒçšã«è¡šç€ºãããŸãã ã¢ãžã¥ãŒã«ã詳ãã調ã¹ãŠã¿ããšãgovnokodãèŠã€ãããŸããã
ifïŒ$ ip_partïŒ { forïŒ$ y1 = $ ip_part [0] ['start']; $ y1 <= $ ip_part [0] ['end']; $ y1 ++ïŒ forïŒ$ y2 = $ ip_part [1] ['start']; $ y2 <= $ ip_part [1] ['end']; $ y2 ++ïŒ forïŒ$ y3 = $ ip_part [2] ['start']; $ y3 <= $ ip_part [2] ['end']; $ y3 ++ïŒ forïŒ$ y4 = $ ip_part [3] ['start']; $ y4 <= $ ip_part [3] ['end']; $ y4 ++ïŒ { $ ip [] = $ y1ã "ã"ã$ y2ã "ã"ã$ y3ã "ã"ã$ y4; ifïŒ$ ip_addr == $ y1ã "ã"ã$ y2ã "ã"ã$ y3ã "ã"ã$ y4ïŒtrueãè¿ããŸãã } }
ãã®ç¬éãç§ã¯ããã»ããµãŒã«å°ãç³ãèš³ãªãæã£ãŠããŸããã
ãµã³ã¯ãããã«ãã«ã¯ã®IPã¢ãã¬ã¹ã®åæç¯å²ã¯ãäºåã«$ ip_parté åã«èšå®ãããŠããŸãã ãã®ã³ãŒããããããããã«ãé¢æ°ãåŒã³åºããã³ã«ãäœããã®çç±ã§ã$ ipã®åçé åãäœæããã4ã€ã®ãã¹ããããã«ãŒããéããŠæããªæ¹æ³ã§IPã¢ãã¬ã¹ãæã€æååïŒïŒïŒããŒã¿ã§åããããŸããã ã«ãŒãã®åå埩ã§ã蚪åè ã®IPã¢ãã¬ã¹ãè¡ïŒïŒïŒãšçµæã®IPã¢ãã¬ã¹æååãšæ¯èŒãããŸããã ãããä¿®æ£ããã®ã¯ç°¡åã§ããïŒ
$ ip_tmp = explodeïŒ "ã"ã$ ip_addrïŒ; ifïŒ$ ip_partïŒ ifïŒïŒ$ ip_part [0] ['start'] <= $ ip_tmp [0]ïŒandïŒ$ ip_tmp [0] <= $ ip_part [0] ['end']ïŒïŒ ifïŒïŒ$ ip_part [1] ['start'] <= $ ip_tmp [1]ïŒããã³ïŒ$ ip_tmp [1] <= $ ip_part [1] ['end']ïŒïŒ ifïŒïŒ$ ip_part [2] ['start'] <= $ ip_tmp [2]ïŒããã³ïŒ$ ip_tmp [2] <= $ ip_part [2] ['end']ïŒïŒ ifïŒïŒ$ ip_part [3] ['start'] <= $ ip_tmp [3]ïŒããã³ïŒ$ ip_tmp [3] <= $ ip_part [3] ['end']ïŒïŒ trueãè¿ããŸãã
ãã®ã³ãŒããããæé©ã«æžãæããããšãã§ããããšã¯åŠå®ããŸãããããã®ç·šéãè¡ã£ãåŸã§ãããµã€ãã¯2ç§éããªããŸããïŒ
äº

äž
ãµã€ããããã¯ã®ãã¢ããªã±ãŒã·ã§ã³ã®æŠèŠããšãæãèå³æ·±ãããå ·äœçãªæéãå®è¡ããŸããã ãã³ãã¬ãŒãïŒsidebar.phpïŒã®å éšãèŠããšããORDER BY RANDïŒïŒããšåŒã°ããåå¿è ã®Webããã°ã©ããŒã®å€å žçãªãšã©ãŒãèŠãŸããã ãã®åé¡ã®æ¬è³ªã«ã€ããŠã¯ãããšãã°ãã¡ããã芧ãã ãã ã
èå³ããã人ã®ããã«ããã®ãããªã³ãŒãããããŸããïŒ
$ args = arrayïŒ 'caller_get_posts' => '1'ã 'post__not_in' => $ã¹ãã£ãããŒã 'cat' => '75'ã 'fields' => 'ids'ã 'post_per_page' => '20'ã 'orderby' => 'ID'ã ïŒ; $ sk_count =æ°ããWP_QueryïŒ$ argsïŒ; $ args = arrayïŒ 'caller_get_posts' => '1'ã 'post__not_in' => $ã¹ãã£ãããŒã 'showposts' => '4'ã 'cat' => '75'ã <b> 'orderby' => 'rand' </ b> ïŒ; $ sk_posts =æ°ããWP_QueryïŒ$ argsïŒ;
ãã®äžã§ãéžæããè¡ã
'post__in' => array_randïŒarray_flipïŒ$ sk_count-> postsïŒã4ïŒ
ãœãªã¥ãŒã·ã§ã³ã®æ¬è³ª-ææ°ã®20åã®ãšã³ããªãäºåã«éžæããŠãããããã20åã®ãšã³ããªããã©ã³ãã ã«4åãéžæããããŒã¿ããŒã¹ãããããã®çªå·ã®æçš¿ãéžæããŸãã
ããã«ãããããã«0.5ç§ç¯çŽã§ããŸããã
Clodoãžã®ç§»è¡
ç§ãã¡ã®éã®ãµãŒããŒã¯åœåãå€æ°ã®ãµã€ãããã¹ãããŠããŸãããããã©ãã£ãã¯ãšäŸ¡å€ã®é¢ã§æãéèŠãªã®ã¯AppleInsider.ruã§ãã ã ãã®ãµã€ããä»ã®ãµã€ãã®è¿ãããä¿è·ãããã£ãããã Clodoã¯ã©ãŠãã«è»¢éããããšã«ããŸãã ã Clodoã®äž»ãªå©ç¹ã¯ãæéã®ã匟åæ§ããšåŒã¶ããšãã§ããŸã-ã©ãã ãã®ãªãœãŒã¹ã䜿ãããããªãã¯ãããªã«æãã®ã§ãã å¿ã蟌ããŠãVIP以å€ã®ããŒãžã§ã³ã§ãæ£ããåäœãããã¹ãŠã®ããªãããŒãªè³ªåã«çããå®éã®ã»ããã¢ããã«åœ¹ç«ã£ãäŒç€Ÿã®ãã¯ãã«ã«ãµããŒãã«æ³šç®ããããšæããŸãã
転éã§ãéãã«ããããã€ãã®å€æŽãè¡ãããŸãããããšãã°ãå®å šã«éãApache WebãµãŒããŒãåé€ãã代ããã«nginx + php-fpmã倧éã«äœæããŸããã Nginxã¯éåžžã®ã¹ããŒã ã«åŸã£ãŠåäœããŸãã-éçãè¿ããä»ã®ãã¹ãŠã¯index.phpã¹ã¯ãªããã«ãªãã€ã¬ã¯ããããããã«ã¯ããã«WordPressããžãã¯ããããŸãã
nginx + php-fpm WebãµãŒããŒã«å²ãåœãŠãããã¢ã€ãã³ã®ãªãœãŒã¹ãæ¶è²»ããªãããã«ãMySQLããŒã¿ããŒã¹ãµãŒããŒãå¥ã®ãµãŒããŒã«ç§»åããããŒã«ã«ãããã¯ãŒã¯çµç±ã§WebãµãŒããŒã«æ¥ç¶ããŸããã
ãŸãã AppleInsider.ruããããã£ã¹ããšAppleã³ã¢ãããã³ãªã³ã©ã€ã³ããã¹ããããŒããã£ã¹ãçšã«ã 2ã€ã®åå¥ã®ãã¯ã©ãŠãããµãŒããŒãã»ããã¢ããããŸããã 次åã¯ãããã«ã€ããŠè©³ãã説æããŸãã
Clodoã«åãæ¿ããŠãããŒãžçææéã¯å€§å¹ ã«ççž®ãããŸããã§ãããããµã€ãã¯å®å šã«ãªããŸããã
WPã¹ãŒããŒãã£ãã·ã¥ãšéåæåºå
ãã®æ®µéã§ã¯ãçŽ1ç§ã§ããŒãžã圢æãããŸããã ãã§ã«æªãã¯ãããŸããããæé©åã§ããç¹ããŸã ããã€ããã£ããããç§ãã¡ã«ãšã£ãŠã¯ååã§ã¯ãããŸããã§ããã
ããšãã°ã WP Super CacheãšåŒã°ãããã©ã°ã€ã³ã䜿çšããŠWordPressããŒãžããã£ãã·ã¥ããŸãã éåžžã®ãã£ãã·ã¥ã®ããã«æ©èœããŸã-ãŠãŒã¶ãŒãããŒãžã«ã¢ã¯ã»ã¹ãããšãçæããã/ wp-content / cache / supercacheãã£ã¬ã¯ããªã«é 眮ãããŸãã 次ã®èšªåè ã«ã¯ãæ¢ã«éçãªäºåçæãããHTMLãã¡ã€ã«ãæäŸãããŸãã ãã¹ãŠãã¹ãŒããŒã ãšæããã-ãµã€ããé£ãã§ãã...
ãããããã£ãã·ã³ã°ã®äœ¿çšããžãªã¿ãŒã²ãã£ã³ã°åºåãå£ããããšãããã«çºèŠãããŸããã ãµã³ã¯ãããã«ãã«ã¯ã®äœæç¯å²ã§ã®èšªåè ã®äœæã®ç¢ºèªã¯ãPHPã¬ãã«ã§å®è¡ãããŸããã ãã§ã«ãã£ãã·ã¥çšã§ãã ãããã£ãŠããã®ãã§ãã¯ã®çµæã¯ãæ°žä¹ ã«ããã£ãã·ã¥ã«æ®ããŸããã ãã ãããããŒã®è¡šç€ºãåºå¥ããå¿ èŠããããŸããã
ãã®åé¡ã次ã®ããã«è§£æ±ºããŸãã-ããŒãžãã³ãã¬ãŒãã§ãJavasciptåœä»€ãé©åãªå Žæã«é 眮ãããç¹å®ã®URLãããã®divãããã¯ã«ã³ã³ãã³ããããŒãããå¿ èŠãããããšã瀺ããŸããã ãããã£ãŠããŠãŒã¶ãŒã¯Javascriptåœä»€ãå«ããã£ãã·ã¥ãããããŒãžãèªç±ã«åãåããæåã®æåã衚瀺ãããåŸããµã€ãã®åºåããã³ãã®ä»ã®æ§é ãããã¯ã¯åå¥ã®ç¹å¥ãªURLã«ä¿åãããŸãã èŠèŠçã«ã¯ãããã¯éåžžã«è¿ éã«çºçããŸãã ãã®ããã2ã€ã®ç®æšãéæããããšãã§ããŸããã1ã€ç®ã¯ããã£ãã·ã¥ã«ãããµã€ããå€§å¹ ã«é«éåããã2ã€ç®ã¯ããžãªã¿ãŒã²ãã£ã³ã°åºåãæ£ããæ©èœããããšã§ããã
Clodostorage
æé©åã§æåŸã«è¡ã£ãã¹ãããã¯ãéçã³ã³ãã³ãïŒç»åãCSSã¹ã¿ã€ã«ãJavascriptïŒãCloudStorageã«è»¢éããããšã§ããã 詳现ã¯ãã¡ããã芧ãã ãã ã äžèšã§èšãã°-ããã¯Clodoã®ã³ã³ãã³ãé ä¿¡ãããã¯ãŒã¯ã§ããããã·ã¢èªã§ã¯-éåžžã«é«éãªãµãŒããŒã§ãããçµ±èšã®é ä¿¡çšã«ç¹å¥ã«åŒ·åãããŠããŸãã
WordPressãšã®çµ±åã¯ãCDNåæããŒã«ïŒClodoã®å Žåã¯PHP Cloud Files APIã©ã€ãã©ãªã®ç¹å¥ãªãã«ãã䜿çšããå¿ èŠããããŸã ïŒãšWPã¹ãŒããŒãã£ãã·ã¥ã®2ã€ã®ãã©ã°ã€ã³ã®é©åãªæ§æã§æ§æãããŸãã
æåã®ãã©ã°ã€ã³ã§ããCDN Sync Tool㯠ãWordPressã³ã³ãã³ãããªããžããªã«ã¢ããããŒãããåæã«ãã®ã³ã³ãã³ãã§ããã€ãã®ã¢ã¯ã·ã§ã³ãå®è¡ããããšãçŽæããŸãã WP Minifyãã©ã°ã€ã³ã䜿çšãããšã CSSããã³JSãã¡ã€ã«ãå§çž®ã§ããŸãã ãŸããããŠã³ããŒãããç»åããã®å Žã§å§çž®ããããšãã§ããŸãã ãã®å ŽåãGDã©ã€ãã©ãªã䜿çšãããŸããç§ãã¡ã«ãšã£ãŠæãåãå ¥ããããå§çž®ã¬ãã«ã¯GDå§çž®ã¬ãã«= 2ã§ãããä»ã®ããã°ã©ã ã«é¢ããŠã¯ãããã¯90ïŒ ã®å質ã§ãã ãã¡ãããæãéèŠãªããšã¯ãèè ã«ããç»åã®æšæºçãªèªã¿èŸŒã¿äžã«ãããããèªåçã«ãªããžããªã«ã¢ããããŒãããå§ããããšã§ãã
éçã«ã€ããŠã¯ãå¥ã®ãµããã¡ã€ã³static.appleinsider.ruãäœæããCyberââDuckã䜿çšããŠã³ã³ãã³ãã®åæèªã¿èŸŒã¿ãè¡ããŸãããCyberââDuckã¯ãFTPãSFTPãWebDAVãã¯ã©ãŠããã¡ã€ã«ãGoogle DocsãAmazon S3ãæäœããããã®ããªã䟿å©ãªããã°ã©ã ã§ãã
Clodoçšã«èª¿æŽãããCDN Sync Toolãã©ã°ã€ã³ã®ã¹ã¯ãªãŒã³ã·ã§ããã次ã«ç€ºããŸãïŒã¯ãªãã¯å¯èœïŒã


2ã€ç®ã®ãã©ã°ã€ã³ã¯æ¢ã«èª¬æããŸããããWPã¹ãŒããŒãã£ãã·ã¥ã§ããçæãããããŒãžãååŸããéçãã¡ã€ã«ã®ãã¹ãŠã®URLããªããžããªå ã®URLã«çœ®ãæããŸãã ããšãã°ã httpïŒ//www.appleinsider.ru/Angry-Birds.jpgã¯http://static.appleinsider.ru/Angry-Birds.jpgã«ãªããŸã
ãŸãšã

ãã£ãã·ã¥ã«ããŒãžããªãå ŽåãããŒãžã¯1.25ç§ã§ããŒãããããã£ãã·ã¥ã«ããå Žåã¯250ããªç§ããããŸããããã¯ã4ã€ã®èŠå ãã¹ãŠãèæ ®ããŠãDNSã«ãã¯ã¢ãã+æ¥ç¶+æåã®æé+ããŠã³ããŒãã§ãã ããã¯é©ãã¹ãçµæã ãšæããŸãïŒ
çµè«ãšããŠãç§ã¯ä¹Ÿç¥ããäºå®ãåŒçšããŸã-ãªãœãŒã¹ã®äœ¿çšãšçµ±èšçã³ã¹ãã®çµ±èšã
2011幎11æ23æ¥ãã2011幎11æ30æ¥ãŸã§ã®1é±éã®äœæ¥ïŒ
Web


ã¹ã±ãŒã«ãµãŒããŒ-RAMãªãœãŒã¹ | 45708.00 GB *å | 457,080ã«ãŒãã« |
ã¹ã±ãŒã«ãµãŒããŒ-CPUãªãœãŒã¹ | 1027116.50 CPUç§ | 427.300ãããã |
ãã£ã¹ã¯äœ¿çšç | 5760.00 GB *æé | 57.600ãããã |
çä¿¡ãã©ãã£ãã¯ïŒãã«ã®ã¬ãã€ãïŒ | 34 GB | 6.800ãããã |
çºä¿¡ãã©ãã£ãã¯ïŒãã«ã®ã¬ãã€ãïŒ | 129 GB | 129.870 RUB |
ããã¯ã¢ããã«ãã£ã¹ã¯ã䜿çšãã | 1910.00 GB *æé | 19.100 RUB |
SMSéç¥ | 1å | 5.000ãããã |
ã¢ã«ãŠã³ãããåŒãèœãšãããåèš | 1102.75 RUB |
DB


ã¹ã±ãŒã«ãµãŒããŒ-RAMãªãœãŒã¹ | 22924.00 GB *å | 229.240 RUB |
ã¹ã±ãŒã«ãµãŒããŒ-CPUãªãœãŒã¹ | 67490.34 CPUç§ | RUB 28,080 |
ãã£ã¹ã¯äœ¿çšç | 3840.00 GB *æé | 38.400ãããã |
çä¿¡ãã©ãã£ãã¯ïŒãã«ã®ã¬ãã€ãïŒ | 1 GB | 0.200ãããã |
çºä¿¡ãã©ãã£ãã¯ïŒãã«ã®ã¬ãã€ãïŒ | 12 GB | 12.000ãããã |
ããã¯ã¢ããã«ãã£ã¹ã¯ã䜿çšãã | 1910.00 GB *æé | 19.100 RUB |
ã¢ã«ãŠã³ãããåŒãèœãšãããåèš | 327.02ã«ãŒãã« |
ã¯ã©ãŠãã¹ãã¬ãŒãž

ã¯ã©ãŠãã¹ãã¬ãŒãž-ãã£ã¹ã¯äœ¿çšé | 1139.00 GB *æé | 11.390 RUB |
ã¯ã©ãŠãã¹ãã¬ãŒãž-ã€ã³ããŠã³ããã©ãã£ãã¯ïŒãã«ã®ã¬ãã€ãïŒ | - | å é»ãããŠããŸãã |
ã¯ã©ãŠãã¹ãã¬ãŒãž-ã¢ãŠãããŠã³ããã©ãã£ãã¯ïŒãã«ã®ã¬ãã€ãïŒ | 330 GB | 330.000ãããã |
ã¢ã«ãŠã³ãããåŒãèœãšãããåèš | 341.39 RUB |
ãµã€ãã®äœæ¥ã®ããã1é±é-1771.16ã«ãŒãã«ã ããªããããããããŸãããå®å®æ§ãšæºè¶³ãããŠãŒã¶ãŒã¯äŸ¡å€ããããŸã:-)
ããªãã®ã³ã¡ã³ããæ¬åœã«æ¥œãã¿ã«ããŠããŸãã