我们城市即将举办一场非常公开的活动(收集市政厅公共场所的数据),这要求我们公司创建一个表单应用程序来提交课程表和一些个人数据。由于该活动的宣传力度和我们客户以往的经验,预计第一周将有大约 5-10,000 名用户提交数据。
我在使用 Amazon EC2 运行小型应用程序方面拥有丰富的经验,因此我计划启动一个专门用于输入/输出的实例,以应对大量的数据输入。
该应用程序将在 Windows 服务器下的 IIS + MySQL 或 Tomcat + MySQL 上运行。
我非常希望得到一些想法和建议,以便测试和配置此 Web 服务器,以应对压力和并发用户,避免出现停机和连接丢失的情况。我几乎没有处理如此大量用户的经验,所以我对这类工具还只是个新手。
进步:
- 我在 Vimeo 上找到了一个非常好的 Jmeter 入门教程(http://vimeo.com/3453772)
- 我还发现了关于测试结果的有用解释这个博客
在我看来,除了官方文档之外,这两个资源使得理解 jmeter 变得更容易。
答案1
由于您想在整个堆栈中测试此应用程序,您可能需要一些可以填写表格和登录等的东西。测试仪在这方面是相当广泛的。
最重要的是确保对将影响整个堆栈的各个方面(包括 SQL 后端)进行压力测试。此外,如果您的应用程序是按这种方式构建的,则最好确保您访问了许多不同的页面,这样您就不会只是对系统的缓存进行基准测试。错误地使用 a/b 来反复加载静态页面主要是浪费时间,除非您只关心 Apache 最佳情况下的性能。
其流程一般为:
准备:
- 确保压力测试值得投入时间
- 开发一个广泛的压力测试来测试整个堆栈(即 Jmeter)。如果时间有限,你无法做到这一点,那么请利用你的跨职能团队(开发人员、数据库管理员、系统管理员等)来猜测瓶颈在哪里
- 确保已建立流程来监控测试期间所有相关系统资源
执行:
- 运行压力测试
- 分析瓶颈结果
- 解决瓶颈
- 重复
最后要说的是,我经常发现获得足够的系统来实际测试系统是困难的部分之一 - 所以您的亚马逊解决方案对我来说听起来不错。
答案2
ABApache 的是一款非常流行的压力测试工具。我会看看它是否能满足您的需求。