我在生产服务器上安装了PostgreSQL 9.1服务器。
我已根据系统更改了所有配置(postgresql.conf
)。
一切都运作良好一周。
突然之后,postgresql服务器变得很慢。 即使对表上的count(*)查询也是如此。这需要花费太多时间。
在此之后,我做了很多活动,如:
监控系统负载: - 正常范围为0.5到1.5。
监控登录应用程序的用户数: - 200到400.正常
重新创建索引
杀死理想的交易。
检查锁定(找不到死锁)
重新启动应用程序服务器。
重新启动数据库服务器。
完成所有活动后,数据库服务器的性能不会提高。
正常查询也花了很多时间。
然后我删除数据库并重新创建性能提升
重新创建数据库后一切正常。
但是几天后突然表现下降。
答案 0 :(得分:2)
这听起来像数据库的活动部分变得越来越大,以至于它不适合缓存,导致许多读取的实际磁盘访问(速度慢了几个数量级)。这通常是由于没有足够的吸尘力造成的。
其他因素可能与您配置PostgreSQL和操作系统有关。如果不知道就很难提出很多建议:
您正在使用的PostgreSQL版本(9.1告诉我们主要版本,但次要版本有时很重要),
如何配置PostgreSQL,
您正在运行的操作系统,
您正在使用的硬件(核心,RAM,驱动器阵列,控制器)等。
可以通过在此页面上发布运行查询的结果来提供部分内容:
http://wiki.postgresql.org/wiki/Server_Configuration
对于所涉及的表,从pg_class中选择relname,relpages和reltuples也可能会有所帮助,并在事情运行良好和比较慢时比较数字。
通过附加信息,人们应该能够提出一些非常具体的建议。