2012-08-13 54 views
2

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

一切都一直工作正常一个星期。

突然之后,postgresql服务器变得非常慢。 即使是在桌面上进行count(*)查询,也需要太多时间。

在此之后我做了这么多的活动,如:

  1. 监控负载对系统: - 范围内正常的0.5〜1.5。

  2. 没有监控用户登录应用: - 200〜400普通

  3. 重新创建索引

  4. 杀死理想的交易。

  5. 检查锁(无死锁实测),

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

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

完成这一切后,数据库服务器的性能不会增加。

它也花费了很多时间进行正常查询。

然后我把数据库,然后重新创建性能提升

一切重新创建数据库之后的工作。

但经过一段时间突然表现下降。

+1

http://www.postgresql.org/docs/9.1/static/app-vacuumdb.html? – 2012-08-13 10:12:42

回答

2

这听起来像数据库的活动部分越来越大,不适合缓存,导致实际的磁盘访问(这是缓慢的几个数量级)的许多读取。这通常是由于没有充分吸尘而造成的。

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

  • 正是你使用的是什么版本的PostgreSQL(9.1告诉我们的主要版本,但次要版本有时事项),

  • 你怎么有PostgreSQL的配置

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

  • 的硬件使用的是(核心,内存,磁盘阵列,控制器)等。那

部分可以通过发布此页上运行查询的结果提供:

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

这也可能有助于从pg_class里的选择relname,relpages和reltuples涉及的表格,并在事情运行良好时,比较数字时,他们很慢。

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