PostgreSQL 数据库性能 kreplay
1 背景知识
kreplay 是 PostgreSQL 数据库流式的负载重放工具。
- 重放工具通常使用 PostgreSQL 的查询日志,在另外一台 PostgreSQL 数据库上进行负责重放。
- kreplay 可以在长时间测试新的 PostgreSQL 版本数据库场景。
1.1 什么是数据流(Data Flow)
- PostgreSQL 配置日志保存为
csv
格式,csv
日志中包含所有查询。 - fluentd 实例将会监控此
csv
文件,并将解析处得内容发送到Kafka
。每个数据库的查询都会按照主题进行分类。 - 每个数据库都会运行一个 kreplay 实例,并根据不同的主题,在目标端的 PostgreSQL 实例上负载重放。
1.2 kreplay 的功能
- 负载重放时保持
csv
日志文件中的原始顺序。 - 每个会话都在目标实例单独的链接中重放。
- 所以源端上的事务语句和目标会话的事务语句完全相同。
1.3 kreplay 注意事项
- 吞吐量有上限:每个 kreplay 实例都只能在单线程中运行,保持事务顺序的一致。