这是我前几天被问到的一个棘手的问题......我们正在开发一个非常复杂的电话(SIP)应用程序,其中包含混合的C++和PHP代码以及MySQL数据库和几个开源组件.
一位电信工程师要求我们估算应用程序的性能(尚未准备好).他说得很好,你知道每秒可以通过Linux内核传递多少数据包,而且你可能知道你的应用程序有多快,所以告诉我每秒会有多少通过你的东西的电话'.
对我来说似乎是无稽之谈,因为可能会发生一百万个场景(好吧,字面意思......)
但是......有没有办法在实际测试之前估算应用程序性能(知道它将运行的硬件,能够在其上运行标准基准测试等)?
performance benchmarking load-testing performance-estimation
我有一个我需要扩展的应用程序(IP会议服务).它有很多独立的组件/应用程序,用不同的语言编写(主要是C++和PHP,一些是Perl).目前,单个安装在5台机器上运行,1-2个组件共享一个机箱.因此,每个盒子的配置都不同,因此扩展整个过程很痛苦,更不用说维护了.
各个组件从媒体代理到消息代理和数据库各不相同,因此负载是一切,甚至是偶数.
我正在考虑将所有组件放在一台机器上并添加更多的盒子,因为我在前面使用了某种负载均衡器.其他人建议我扩展另一种方式 - 添加应用程序负载变高的专用框 - 但这会导致维护噩梦.
你知道我应该从哪里开始的资源吗?理想情况下,我需要一些基准,哪种方法在性能方面更好?(大声思考,当我有X量的负载和Y量的内存和处理能力时,我分配它的重要性?)