我在生产服务器上使用 PostgreSQL 9.3 服务器。过去几个月一切都运行良好。但从过去一周左右开始,PostgreSQL 似乎变得非常慢,CPU 和磁盘使用率增加。
以下是过去一个月的 CPU、磁盘和带宽使用情况图表
我使用 memcached 来缓存大多数查询。包含少量基本查询的网页速度更快,而包含复杂查询的网页则需要花费大量时间。此类网页的服务器响应时间已从 0.2 秒增加到 4 秒(使用 Google PageSpeed Insights 测量)。
以下是我使用 PgTune 调整的 postgresql.conf。
default_statistics_target = 50
maintenance_work_mem = 60MB
constraint_exclusion = on
checkpoint_completion_target = 0.9
effective_cache_size = 704MB
work_mem = 6MB
wal_buffers = 8MB
checkpoint_segments = 16
shared_buffers = 240MB
max_connections = 80
知道可能出了什么问题吗?我的网站是一个托管在 DigitalOcean(1GB 内存、30GB SSD 磁盘、Ubuntu 14.04 x64)上的 Django 应用程序。
答案1
您的网络利用率同时增加,这表明您在这台服务器上接收到了更多请求,或者接收到了要求更高、响应量更大的请求。如果您没有更改配置,这并不一定表示出现了问题。您可能只是获得了更多流量。