Тест производительности сервера php - PullRequest
0 голосов
/ 09 марта 2012

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

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

<code><?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.
"; ?>

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

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

Ответы [ 2 ]

3 голосов
/ 09 марта 2012

Вам нужно установить WordPress, чтобы знать наверняка.

Я бы просто отредактировал файл index.php для каждого, а требовал бы этот файл .

<?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');
* 1007.* Некоторое время я проводил бенчмаркинг, и он даст вам хорошую информацию о текущем использовании памяти и скорости обработки сервера.Вы можете даже поразить сервер с httperf несколько сотен раз, чтобы получить ИСТИННУЮ способность сервера.
0 голосов
/ 09 марта 2012

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

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

...