2

我们正在对许多服务器进行基准测试,以迁移我们当前的站点。

我们已经针对当前设置测试了 2 个配置,使用 mysqlslap 测试并在具有相同数据的表上运行 sql 查询并使用 php microtime 进行测量。mysqlslap 测试如下:

  • 电流:4.977 秒
  • 配置 1:2.988 秒
  • 配置 2:1.786 秒

但是,我是否对微时间结果的结果感到困惑,因为当前服务器在除一项测试之外的所有测试中都是最快的。当前服务器在运行较小的查询时似乎更快,而在运行大型查询时则较慢。这是基准案例之一的示例(以防我做一些愚蠢的事情!):

$t1 = microtime(TRUE);
for($i=1; $i<10; $i++)
{
    $sql = 'SELECT a.ref, a.code, a.expiry
                FROM payment a
                WHERE a.Amount >0
                    AND a.type = "card"
                    AND a.user_id = '.$i.'
                    AND a.result = "success"
                    AND a.amount > 0
                    AND a.code = (SELECT b.code
                                        FROM payment b
                                        WHERE b.user_id = a.user_id
                                        AND b.type="Card"
                                        AND b.amount > 0
                                        ORDER BY date DESC LIMIT 1
                                        )
                ORDER BY a.date DESC LIMIT 1';
    mysql_query($sql);
}
$t2 = microtime(TRUE);
$t = $t2-$t1;
echo $t.'s';

所以我有两个问题:

  1. 这些是预期的结果吗?当前服务器在微时间测试中名列前茅(较小的查询更快,较大的查询更慢)但在 mysqlslap 测试中垫底。
  2. 除了我们无法在当前服务器上安装的 (sysbench) - 您能否建议任何其他方法来对服务器进行基准测试?

更新:我已经通过 mysqlslap 运行了与微时间测试中使用的自定义查询相同的 sql 查询,现在新配置的速度要快得多。在运行微时间测试时,我们使用实时数据库来检查常见请求——结果可能已经在内存中了吗?

4

0 回答 0