我们是否需要以及如何模拟真实用户的性能负载模式?

时间:2011-04-28 15:27:01

标签: java performance tomcat jmeter

我看到很多人都在谈论根据真实的生产网站模拟真实的用户负载,以便更好地分析或处理他们的性能状态/问题。这真的很酷,因为我们可以很容易地找到性能问题,并在我们完成新功能或更新的“当天的黎明”中解决它们。

以下是往返的基本工作流程:

  1. 在访问日志中获取用户的真实负载,并从生产中找到相应的详细信息
  2. 存储这些实际负载信息并将其映射到一些快速存储中(我首先想到的是 mongodb 或类似的东西)
  3. 启动多线程以将记录的负载推送到本地性能环境
  4. 让我们看看会发生什么......
  5. 所以我的第一个问题是你在想什么“模拟真实用户的模式”,它们真的有价值还是只是浪费时间?

    我知道Jmeter有一个 AccessLogSampler 用于模拟http请求,但我的是webRevice的soapRequest。看起来我必须在java中做很多工具,但任何其他chocie?

    您的想法真的很受欢迎!

    万斯

2 个答案:

答案 0 :(得分:0)

如果您不模拟实际负载,那么您将找不到真正的性能问题。

真实故事:我曾在以数据库为中心的应用程序中开发了一项新功能。我根据我认为该功能的使用方式编写了性能测试,并进行了相应的优化。然后它被释放,并以我无法想象的方式使用 - 我的大多数优化都毫无价值。我会更好地简单地实现未优化的功能,并等待实际数据。

答案 1 :(得分:0)

Web服务测试有两种主要类型:基于命中和基于场景。 基于命中非常简单,专注于分配/请求率。 基于场景的关注序列和逻辑/事务速率/并发虚拟用户。

基于命中的加载测试要简单得多,这种方式对于真正高负载的系统来说是首选。场景在Web应用程序中不可避免地依赖于序列。

一切都取决于您的服务(或服务的一部分)。

我对AccessLogSampler的替代方法是HTTP Raw Request