除硬件外,还会影响并发用户数量的性能?

时间:2013-01-16 14:21:17

标签: performance appfog blitz++

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

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

对我而言,这是惊人的低。我可以添加更多RAM和实例来改善结果,但我怀疑我的代码可以更聪明。

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

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

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

这会影响并发用户的数量(除了硬件配置)?

1 个答案:

答案 0 :(得分:0)

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

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

  • 查找将并发代码转换为顺序的锁。请参阅:Amdahl's law

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