2012-03-09 2 views
0

У меня есть несколько учетных записей хостинга в разных компаниях, и я пытаюсь оценить, какой из них будет запускать установку Wordpress на скорости быстрее (без необходимости сначала устанавливать Wordpress для каждого из них).Оценка производительности сервера php

Я нашел сценарий бенчмаркинга php, чтобы попытаться определить, какой из них будет работать лучше, и у меня появятся странные результаты.

<?php 
/* 
########################################################################## 
#      PHP Benchmark Performance Script     # 
#       © 2010 Code24 BV        # 
#                  # 
# Author  : Alessandro Torrisi          # 
# Company  : Code24 BV, The Netherlands        # 
# Date  : July 31, 2010           # 
# version  : 1.0              # 
# License  : Creative Commons CC-BY license       # 
# Website  : http://www.php-benchmark-script.com      # 
#                  # 
########################################################################## 
*/ 

    function test_Math($count = 140000) { 
     $time_start = microtime(true); 
     $mathFunctions = array("abs", "acos", "asin", "atan", "bindec", "floor", "exp", "sin", "tan", "pi", "is_finite", "is_nan", "sqrt"); 
     foreach ($mathFunctions as $key => $function) { 
      if (!function_exists($function)) unset($mathFunctions[$key]); 
     } 
     for ($i=0; $i < $count; $i++) { 
      foreach ($mathFunctions as $function) { 
       $r = call_user_func_array($function, array($i)); 
      } 
     } 
     return number_format(microtime(true) - $time_start, 3); 
    } 


    function test_StringManipulation($count = 130000) { 
     $time_start = microtime(true); 
     $stringFunctions = array("addslashes", "chunk_split", "metaphone", "strip_tags", "md5", "sha1", "strtoupper", "strtolower", "strrev", "strlen", "soundex", "ord"); 
     foreach ($stringFunctions as $key => $function) { 
      if (!function_exists($function)) unset($stringFunctions[$key]); 
     } 
     $string = "the quick brown fox jumps over the lazy dog"; 
     for ($i=0; $i < $count; $i++) { 
      foreach ($stringFunctions as $function) { 
       $r = call_user_func_array($function, array($string)); 
      } 
     } 
     return number_format(microtime(true) - $time_start, 3); 
    } 


    function test_Loops($count = 19000000) { 
     $time_start = microtime(true); 
     for($i = 0; $i < $count; ++$i); 
     $i = 0; while($i < $count) ++$i; 
     return number_format(microtime(true) - $time_start, 3); 
    } 


    function test_IfElse($count = 9000000) { 
     $time_start = microtime(true); 
     for ($i=0; $i < $count; $i++) { 
      if ($i == -1) { 
      } elseif ($i == -2) { 
      } else if ($i == -3) { 
      } 
     } 
     return number_format(microtime(true) - $time_start, 3); 
    } 


    $total = 0; 
    $functions = get_defined_functions(); 
    $line = str_pad("-",38,"-"); 
    echo "<pre>$line\n|".str_pad("PHP BENCHMARK SCRIPT",36," ",STR_PAD_BOTH)."|\n$line\nStart : ".date("Y-m-d H:i:s")."\nServer : {$_SERVER['SERVER_NAME']}@{$_SERVER['SERVER_ADDR']}\nPHP version : ".PHP_VERSION."\nPlatform : ".PHP_OS. "\n$line\n"; 
    foreach ($functions['user'] as $user) { 
     if (preg_match('/^test_/', $user)) { 
      $total += $result = $user(); 
      echo str_pad($user, 25) . " : " . $result ." sec.\n"; 
     } 
    } 
    echo str_pad("-", 38, "-") . "\n" . str_pad("Total time:", 25) . " : " . $total ." sec.</pre>"; 

?> 

Теперь на одном сервере, я получаю в среднем около 10, а на другом 15 (до сих пор так хорошо), но на треть, в среднем, как 45 секунд. Это странно, потому что у этого сервера есть рабочая версия Wordpress, которая работает довольно быстро (около 1,5 секунд загрузки страницы).

Мой вопрос: почему этот сервер может показать мне такие высокие результаты, но, похоже, работает нормально? И, во-вторых, означает ли это, что это не очень хороший способ определить, какой хост в конечном итоге запустит Wordpress быстрее всех (при прочих равных условиях)? И если это не хороший метод, есть ли у вас какие-либо предложения?

ответ

3

Вам необходимо установить Wordpress, чтобы точно знать.

Я бы просто отредактировал файл index.php каждого и require this file.

<?php 
/** 
* Front to the WordPress application. This file doesn't do anything, but loads 
* wp-blog-header.php which does and tells WordPress to load the theme. 
* 
* @package WordPress 
*/ 
require('benchmark.php'); 
/** 
* Tells WordPress to load the WordPress theme and output it. 
* 
* @var bool 
*/ 
define('WP_USE_THEMES', true); 

/** Loads the WordPress Environment and Template */ 
require('./wp-blog-header.php'); 

Я сделал бенчмаркинг на некоторое время, и это даст вам хорошую информацию о текущем использовании памяти и скорости обработки данных сервера. Вы можете даже поразить сервер httperf несколько сотен раз, чтобы получить ИСТИННУЮ способность сервера.

0

Вам необходимо установить Wordpress для анализа производительности в каждом из них. Фактически, вы должны иметь полную среду Wordpress, установленную во всех трех, и я имею в виду, что все плагины wordpress должны быть установлены, потому что они могут иметь большое влияние на производительность. Также apache, mysql и php должны быть настроены одинаково на всех трех серверах.

Как только вы это сделаете, вы можете использовать jMeter (http://jmeter.apache.org/), чтобы действительно протестировать ваш сервер и посмотреть, сколько запросов может обслуживать ваш сервер.

Смежные вопросы