gWa*_*ldo 36 database load-testing capacity-planning benchmark
这是一个关于数据库容量规划的规范问题。
有关的:
我希望创建一个关于数据库容量规划工具和方法的规范问题。这是一个规范的问题。
显然,一般的工作流程是:
请随意描述适用于不同网络服务器、框架等的不同工具和技术,以及最佳实践。
vor*_*aq7 24
作为一般准则,我提供以下内容:
每个数据库供应商都有一些关于性能调整磁盘/内存/操作系统内核的说明——在部署之前花一些时间阅读此文档。我会帮你的。
现在有了一个原始基准测试,ABSOLUTELY MEANINGLESS让我们考虑一种更现实的基准测试方法:加载您的数据库模式并编写一个程序,用虚拟数据填充它,然后针对该数据运行应用程序的查询。
这对三件重要的事情进行了基准测试:1. 数据库服务器(硬件) 2. 数据库服务器(软件) 3. 您的数据库设计,以及它如何与上述 (1) 和 (2) 交互。
请注意,这比简单的预先构建的基准测试需要更多的努力,例如pgBench:您需要编写一些代码来进行填充,并且您可能需要编写一些代码来进行查询和报告执行时间。
这种测试也更加准确:因为您正在使用您的架构和查询,您可以看到它们将如何执行,并且它为您提供了分析和改进您的数据库/查询的机会。
这些基准测试的结果是您的数据库的理想化视图。为安全起见,假设您在生产环境中只能实现此性能的 50-70%(其余部分是缓冲,可让您处理意外增长、硬件故障、工作负载变化等)。
一旦您的系统投入生产,“基准测试”真的为时已晚——您可以简单地打开查询日志记录/计时并查看执行所需的时间,并且您可以在关闭期间针对大型数据集运行一些“压力测试”查询小时。您还可以查看系统的 CPU、RAM 和 I/O(磁盘带宽)利用率,以了解它的负载情况。
不幸的是,所有这些事情都会让您了解系统正在做什么,以及它接近饱和的程度的模糊概念。
这让我们……
如果您的系统突然发现新的/不同的使用模式,那么世界上所有的基准测试都无济于事。
无论好坏,数据库部署都不是一成不变的:您的开发人员会改变事物,您的数据集会增长(它们似乎永远不会缩小),而您的用户会以某种方式创建您在测试中从未预料到的疯狂事件组合。
为了对您的数据库进行适当的容量规划,您需要实施某种性能监控,以便在数据库性能不再满足您的期望时向您发出警报。此时,您可以考虑采取补救措施(新硬件、数据库架构或查询更改以优化资源使用等)。
注意:这是一个非常高级和通用的指南,用于确定数据库硬件的大小并确定它可能遭受的滥用程度。如果您仍然不确定如何确定特定系统是否满足您的需求,您应该咨询数据库专家。
还有一个专门用于数据库管理的 Stack Exchange 站点:dba.stackexchange.com。搜索他们的问题档案或浏览特定于您的数据库引擎的标签,以获取有关性能调整的进一步建议。
| 归档时间: |
|
| 查看次数: |
9496 次 |
| 最近记录: |