首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >PostgreSQL性能监控工具

PostgreSQL性能监控工具
EN

Stack Overflow用户
提问于 2008-08-31 19:47:35
回答 7查看 9.2K关注 0票数 11

我正在设置一个带有FreeBSD PostgreSQL后端的web应用程序。我正在寻找一些数据库性能优化工具/技术。

EN

回答 7

Stack Overflow用户

回答已采纳

发布于 2008-08-31 20:34:03

pgfouine对我来说运行得相当好。而且它看起来像是有一个FreeBSD port

票数 5
EN

Stack Overflow用户

发布于 2013-12-06 19:18:56

数据库优化通常是两件事的组合

  1. 减少对database
  2. Reduce的查询数量回答

查询时需要查看的数据量

减少查询量通常是通过缓存非易失性/不太重要的数据来完成的。“哪些用户在线”或“此用户的最新帖子是什么?”)在应用程序内部(如果可能)或在外部更高效的数据存储(memcached、redis等)中。如果你得到的信息写得很重(例如命中计数器),并且不需要Postgres -semantics,你也可以考虑把它从Postgres数据库中移到更高效的数据存储中。

优化查询运行时更为棘手-这可能相当于创建special indexes (或indexes in the first place)、更改(可能是反规范化)数据模型或更改应用程序在使用数据库时所采用的基本方法。例如,请参阅Markus Winand关于如何重新考虑分页概念以提高数据库效率的Pagination done the Postgres way演讲

以较慢的方式测量查询

但是,为了理解应该首先查看哪些查询,您需要知道它们的执行频率以及它们平均运行多长时间。

一种方法是记录所有(或“慢”)查询,包括它们的运行时,然后解析查询日志。一个很好的工具是pgfouine,它已经在前面的讨论中提到过,它已经被pgbadger取代,它用更友好的语言编写,速度更快,维护也更积极。

pgfouinepgbadger都需要启用查询日志记录,这可能会对数据库造成明显的性能影响,或者给您带来磁盘空间问题,此外,使用该工具解析日志可能需要相当长的时间,并且不会让您了解数据库中发生了什么。

通过扩展加速它

为了弥补这些缺点,现在有两个直接在数据库中跟踪查询性能的扩展- pg_stat_statements (只在9.2或更高版本中有帮助)和pg_stat_plans。这两个扩展提供了相同的基本功能-跟踪给定的“规范化查询”(查询字符串减去所有表达式文字)的运行频率以及总共花费了多长时间。由于这是在查询实际运行时完成的,因此这是以非常有效的方式完成的,在合成基准中,可测量的开销不到5%。

理解数据的含义

从信息的角度来看,查询列表本身是非常“枯燥”的。已经有第三个扩展试图解决这个问题,并提供更好的数据表示pg_statsinfo (以及pg_stats_reporter),但要让它启动并运行起来有点困难。

为了给这个问题提供一个更方便的解决方案,我开始从事一个商业项目,该项目主要关注pg_stat_statementspg_stat_plans,并通过从数据库中提取大量其他数据来增强收集的信息。它叫做pganalyze,你可以在https://pganalyze.com/上找到它。

为了提供Postgres监控领域中有趣的工具和项目的简明概述,我还开始在Postgres Wiki上编辑一个列表,该列表会定期更新。

票数 9
EN

Stack Overflow用户

发布于 2008-09-15 17:59:24

我用过一点pgtop。它非常粗糙,但至少我可以看到针对每个进程ID运行的查询。

我试过pgfouine,但如果我没记错的话,它是一个离线工具。

我还跟踪了psql.log文件,并将日志记录条件设置为我可以看到问题查询的级别。

代码语言:javascript
运行
复制
#log_min_duration_statement = -1        # -1 is disabled, 0 logs all statements
                                        # and their durations, > 0 logs only
                                        # statements running at least this time.

我也使用EMS Postgres管理器来做一般的管理工作。它不会为您做任何事情,但它确实使大多数任务变得更容易,并使审查和设置您的模式变得更简单。我发现在使用GUI时,发现不一致(如缺少索引、字段标准等)要容易得多。这只是我愿意在苹果电脑上使用VMWare的两个程序中的一个。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37056

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档