我正在开发一个web应用程序,它可以访问和处理MySQL数据库中的大量数据,就像字典/同义词库一样。随着数据库大小的增加,我需要测试它的性能,这样我才能知道每个请求在将来会有多慢。
有什么想法吗?例如,是否有特定的工具来检查特定查询的数据库性能等?
发布于 2009-08-20 13:42:08
您可以使用Maatkit的query profiler来衡量数据量对MySQL性能的影响。
和generatedata.com来生成测试应用程序所需的数据。
您还可以使用HTTP测试工具测试应用程序的响应性,例如:
Apache的捆绑'ab‘工具(Apache Bench)
)
发布于 2009-08-20 13:51:00
你知道吗,特别是你在测试什么?测量“性能”并不总是无用的,除非你确切地知道它是你想要的。
例如,您是否在寻找查询结果检索的低延迟?也许是日期检索的高吞吐量?也许您更关心数据库中的快速插入,而不是快速查询结果?也许您关心的是不同表上的不同内容(实际上,情况几乎总是如此)。
我的建议可能会被忽略,但我还是会说:
在你知道自己想要什么之前,不要使用进行优化。
在编写代码时,不要使用进行优化。
当你开始优化你的数据库时,要确保你优化的是正确的东西。使用真实的数据-如果你正在测试字典大小的文本块,不要测试二进制数据(例如)。
不管怎样,我知道你可能在找一个更专业的答案,但是嘿...
发布于 2009-08-20 13:44:23
apache的ab是一个很好的工具,它是apache httpd服务器的标准配置。此工具可以与web服务器建立多个连接,并对其性能进行基准测试。虽然firebug是一种很好的方式来查看事物lod的顺序,每个项目需要多长时间加载,等等,但你只能看到一个用户的体验。对于卸载的测试服务器,这些信息只能带您走到这一步。ab模拟多个用户连接,并将给出一个特定页面如何处理并发用户的更真实的图景。
这导致了我在ab中的一个限制:它只测试一个URL。我经常通过弹出一个简单的测试网页来解决这个问题,它从我想要测试的预定义URL列表中随机选择一个。例如:登录页面、搜索结果、发表评论等等。ab命中测试页面,测试页面只是调用其中一个测试URL(可能使用随机化的参数)并返回该页面。通过这种方式,您可以更好地了解整个站点如何处理并发用户。
PS:你的操作系统是无法回答的。你必须根据你的应用程序是如何编写的,数据的布局,web服务器和数据库服务器的配置,等等来弄清楚这一点。
https://stackoverflow.com/questions/1306226
复制相似问题