2

我在生产服务器上安装了 PostgreSQL 9.1 服务器。我已经postgresql.conf根据系统更改了所有配置()。

一周以来一切都很好。

突然之间,postgresql 服务器变得非常慢。即使是对表的 count(*) 查询,也需要花费太多时间。

在此之后,我做了很多活动,例如:

  1. 监控系统负载:- 在 0.5 到 1.5 范围内正常。

  2. 监控登录应用程序的用户数:- 200 到 400。正常

  3. 重新创建的索引

  4. 杀死理想的交易。

  5. 检查锁(未找到死锁)

  6. 应用程序服务器重新启动。

  7. 数据库服务器重新启动。

完成所有活动后,数据库服务器的性能不会增加。

正常查询也需要很多时间。

然后我删除数据库并重新创建然后性能提高

重新创建数据库后一切正常。

但几天后突然性能下降。

4

1 回答 1

2

这听起来像数据库的活动部分增长得足够大,以至于它不适合缓存,导致您的许多读取实际磁盘访问(速度慢几个数量级)。这通常是由于没有足够积极地吸尘造成的。

其他因素可能与您的 PostgreSQL 配置和操作系统有关。在不知道的情况下很难给出很多建议:

  • 您使用的是哪个版本的 PostgreSQL(9.1 告诉我们主要版本,但次要版本有时很重要),

  • 你是如何配置 PostgreSQL 的,

  • 您正在运行什么操作系统,

  • 您正在使用什么硬件(内核、RAM、驱动器阵列、控制器)等。

其中一部分可以通过在此页面上发布运行查询的结果来提供:

http://wiki.postgresql.org/wiki/Server_Configuration

它还可能有助于从 pg_class 中为所涉及的表选择 relname、relpages 和 reltuples,并比较运行良好和运行缓慢时的数字。

有了额外的信息,人们应该能够提出一些非常具体的建议。

于 2012-08-14T00:29:35.693 回答