【问题标题】:Suggestions for profiling a webserver分析网络服务器的建议
【发布时间】:2010-02-05 02:58:54
【问题描述】:

我用 C 开发了一个漂亮的小型网络服务器,并想评估它的性能。为此,我正在执行以下操作:

在以下场景中测量套接字建立时间、文件传输时间(对于随机大小的文件)和套接字拆除时间:

  • 单线程
  • 多线程

这应该给我吞吐量/带宽...我打算在一堆计算机上设置它并测量所有内容...对于客户端部分,我正在使用 PHP 并且正在使用简单的计时功能如下:

<?php
$time_start = microtime_float();
// COMMAND TO PROFILE
$time_end = microtime_float();
$time = $time_end - $time_start;
echo "Task took $time seconds\n";
?>

是否还有其他我应该衡量的指标可以给我一些有价值的见解?

【问题讨论】:

    标签: php webserver benchmarking measurement


    【解决方案1】:

    如果您正在分析 PHP 性能,您可以使用Xdebug(以及许多其他方法)。但是,如果您担心网络服务器的性能,那就另当别论了。像 Apache 这样的网络服务器也有为其开发的分析工具,例如 ab 工具

    【讨论】:

    • 对不起...我正在测试我自己的网络服务器...我将探索 Apache 工具...谢谢
    【解决方案2】:

    嗯,我不确定这是对请求性能进行基准测试的最佳方法。看看 Apache 发行版提供的 ab,它是一个初级工具,但您应该能够在同一台服务器上运行它并获得更准确的请求时间基准。它还会为您提供许多其他指标。

    http://httpd.apache.org/docs/2.0/programs/ab.html

    【讨论】:

    • 我只是好奇......如果我从服务器端而不是客户端测量这些指标会有什么区别?
    • 您从请求中消除了网络延迟(假设您正在通过 localhost 进行测试)并获得 Web 服务器性能的原始度量。网络真的可以扭曲事情。我猜这取决于您是否要考虑到这一点。
    【解决方案3】:

    尝试将xDebug 与分析一起使用,然后下载并安装webgrind

    你:

    1. 避免代码混乱和
    2. 获得更多信息、内存、例程被调用的次数、例程的成本以及从何处调用。

    我怀疑您是否可以如此轻松地使用 PHP 分析类收集此类信息

    There are plently of tutorials to get you started.


    (来源:jokke.dk

    【讨论】:

      【解决方案4】:

      内存使用可能很好。您可能还想查看某些函数被调用的频率,以了解需要优化的内容。

      此外,Facebook 推出了一个名为 XHProf 的工具,可能值得一看:http://mirror.facebook.net/facebook/xhprof/doc.html。关于它的使用的一些额外说明在这里:http://techportal.inviqa.com/2009/12/01/profiling-with-xhprof/

      【讨论】:

        猜你喜欢
        • 2017-10-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-07-18
        • 1970-01-01
        • 2011-02-19
        • 2023-04-04
        • 1970-01-01
        相关资源
        最近更新 更多