1

我正在开发一个 API,并且希望(当然)在并发用户数量方面优化性能。

根据这些测试,我使用 Blitz 运行了一些测试(我的应用程序在 Appfog、PHP、512MB、1 个实例上),我的 API 可以在响应时间变得太高(>1000 毫秒)之前处理 11 个并发用户。

对我来说,它是惊人的低。我可以添加更多 RAM 和实例来改善结果,但我怀疑我的代码可能更智能。

我做了一些测试,总是使用相同的硬件配置。结果是响应时间超过 1000 毫秒之前的并发用户数。

  • 使用我的实际 API(带有 db-queries)--> 11 个用户
  • 使用仅输出文本的脚本(最少处理)-> 40 个用户
  • 使用带有 sleep(2) 函数的脚本来模拟较长的响应时间 --> 52 个用户(超过 (2000 + 1000 ms) 之前)
  • 使用内存密集型脚本(使用 for 循环构建数据):95 个用户

我真的看不出结果中有任何相关性(每个测试都运行了很多次,结果相似)。脚本的处理越多 - 并发用户越多?

是什么影响了并发用户的数量(除了硬件配置)?

4

1 回答 1

0

一般来说,你应该考虑两个方面:

  • 数据库或外部 API 等瓶颈。你和最慢的组件一样慢

  • 寻找将您的并发代码转换为顺序代码的锁。参见:阿姆达尔定律

第二点与第一点有关。数据库或您在代码中使用的任何内容可能是内部同步的,或者可能无法很好地处理并发。

于 2013-01-16T14:26:38.277 回答