gpt4 book ai didi

performance - 使用 Siege 和 AB 进行测试的准确度如何?

转载 作者:行者123 更新时间:2023-12-03 11:51:41 26 4
gpt4 key购买 nike

我很想知道我可以在多大程度上依赖 Siege 和 AB 的负载测试结果。我意识到他们没有考虑静态 Assets (图像、JS、CSS),但假设所有这些东西都是从 CDN 提供的,如果 Siege/AB 告诉我我可以满足 200 个并发用户的需求,我有什么理由不应该不相信吗?我是否没有考虑任何其他因素,例如运行测试的机器可能具有的任何限制?

最佳答案

这是一篇很好的文章,讨论了尝试这样做的陷阱Siegeab类型测试,然后抽象您的 web 应用程序或网站在负载下的执行情况。

http://www.sonassi.com/knowledge-base/magento-kb/why-siege-isnt-an-accurate-test-tool-for-magento-performance/

以下是该页面中的一些项目符号,它们提出了进行此类测试的问题:

  • Siege 并不代表真实用户(或多个用户)在您的网站上实际执行的操作。它只能加载原始响应代码和 HTML,而不是页面中的所有其他元素(图像、CSS、JS 或其他静态内容)——如此有效,它只测试 PHP 性能。
  • 它还具有非常有限的 session /cookie 支持,不支持流水线和对 HTTP/1.1 的基本支持。它产生的负载与真实用户的负载完全不同,因此在更改后可以快速引用;它并没有真正表明现实生活中的用户会发生任何变化。
  • Siege 很容易被愚弄,它无法区分正在提供的静态文件(即纯 HTML 文件)或动态文件(即动态 Magento PHP 页面)。因此,如果您正在运行任何类型的静态文件代理,结果会立即出现偏差。此时 - 您将只测试缓存代理,而不是其背后的交付速度。
  • 因此,那些使用 Varnish、Nginx 缓存、mod_pagecache 的人可以轻松地将页面缓冲到缓存中,您将看到不到 20 毫秒的渲染时间。如果您使用 Varnish,然后使用 Siege 来测试性能——您最好加载图像而不是类别 URL,因为它会给出完全相同的结果。
  • 测试远程服务器几乎没有意义,因为它是并发测试(即可以重复满足多少请求),直接瓶颈是两台机器之间的网络连接。延迟和 TCP/IP 开销使测试远程站点完全没有意义,两台服务器之间的对等点之间最轻微的网络拥塞将立即显示性能下降。因此,真正开始发挥作用的是 TCP 3 次握手的完成速度——被测试的服务器可以提供动态页面或静态 0 字节文件——你可以看到完全相同的性能速率,如连通性是瓶颈。

  • 他们在文章中讨论的另一个对您网站的整体性能影响最大的问题是您的网站与访问它的客户端之间的延迟。他们很好地解释了延迟如何以最终用户会感觉到的方式影响您的网站性能,但 Siegeab类型的测试工具永远不会暴露。

    再次摘录文章:

    Ping 从英国到英国
    [~]$ ping www.bytemark.co.uk -c4
    PING www.bytemark.co.uk (212.110.161.177) 56(84) bytes of data.
    64 bytes from extapp-front.bytemark.co.uk (212.110.161.177): icmp_seq=1 ttl=57 time=2.86 ms
    64 bytes from extapp-front.bytemark.co.uk (212.110.161.177): icmp_seq=2 ttl=57 time=2.51 ms
    64 bytes from extapp-front.bytemark.co.uk (212.110.161.177): icmp_seq=3 ttl=57 time=2.54 ms
    64 bytes from extapp-front.bytemark.co.uk (212.110.161.177): icmp_seq=4 ttl=57 time=2.63 ms
    --- www.bytemark.co.uk ping statistics ---
    4 packets transmitted, 4 received, 0% packet loss, time 3005ms
    rtt min/avg/max/mdev = 2.515/2.641/2.869/0.142 ms

    Ping 从英国到美国
    [~]$ ping www.mediatemple.net -c 4
    PING www.mediatemple.net (64.207.129.182) 56(84) bytes of data.
    64 bytes from mediatemple.net (64.207.129.182): icmp_seq=1 ttl=49 time=158 ms
    64 bytes from mediatemple.net (64.207.129.182): icmp_seq=2 ttl=49 time=154 ms
    64 bytes from mediatemple.net (64.207.129.182): icmp_seq=3 ttl=49 time=154 ms
    64 bytes from mediatemple.net (64.207.129.182): icmp_seq=4 ttl=49 time=154 ms

    --- www.mediatemple.net ping statistics ---
    4 packets transmitted, 4 received, 0% packet loss, time 3004ms
    rtt min/avg/max/mdev = 154.155/155.282/158.321/1.802 ms

    You can immediately see the difference in performance. For that single TCP/IP connection to the USA from the UK, it took 156ms, 62 times more than to a server in the UK. Which means that before you even try anything, the maximum throughput you can achieve on Siege in a second is going to be around 6 transactions per second, due to latency alone.



    我强烈建议阅读整篇文章。它很好地解释了使用诸如 Siege 之类的工具进行性能测试的陷阱。和 ab !

    关于performance - 使用 Siege 和 AB 进行测试的准确度如何?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13823964/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com