delphi – DataSnap是否经过优化,可以同时响应超过1k的用户?
我们想要启动一个大型的多层应用程序.服务器端应用程序必须同时响应超过1000个用户.我们想用64位编译器和32位客户端创建服务器应用程序.在这种情况下,我们不知道DataSnap可以毫无问题地响应所有客户端吗?
在这种情况下,服务器计算机非常强大(多处理器和超过16GB的RAM),数据库管理系统是FireBird 2.5. 解决方法
您需要一种方法来执行实际的负载测试.
对于Firebird数据库,您可以使用免费的Apache JMeter工具模拟并发用户.它可以运行SQL语句并记录它们的执行时间统计信息(平均值,最小值/最大值等).因此,您可以创建一个包含20个不同SQL查询的线程组,然后运行20个线程,每个线程将按顺序执行这些查询. JMeter允许在SQL查询上定义时间限制,如果查询超出此限制,JMeter会将其视为错误.然后,您可以尝试查找总体错误率仍小于(例如)5%的最大客户端计数. 但是您还需要知道预期的数据库负载有多高,并且您还需要具有实际大小的测试数据库,而不仅仅是几个记录.此外,某些数据库查询(如报告)可能会导致更高的负载 – 这些也应包含在模拟中,因为它们会影响整体性能.在JMeter中,您可以创建第二个线程组,与第一个线程组并行运行,用于具有不同设置的这些长时间运行的语句(模拟客户端较少). 测试数据库将显示此区域是否存在瓶颈.例如,测试结果可能是数据库可以服务20个客户端,总平均事务速率为20 TPS(每秒事务数),这意味着一个客户端每秒执行一个事务.但是这个TPS值会随着用户数量的增加而减少. 相关问题:Firebird usage in big projects也有链接到http://www.firebirdsql.org/en/case-studies-catalog/ 关于DataSnap客户端负载模拟:这可以通过脚本化客户端完成,该客户端通过连接运行预定义的一组语句/命令. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |