【发布时间】:2016-06-01 11:27:03
【问题描述】:
我注意到在 1 到 5 分钟的时间段内,有 1 - 20% 的请求屈服于Rack::Timeout::RequestTimeoutException。这大约每隔几个小时就会发生一次。没有 n+1 个查询,也没有任何缺失的索引 AFAIK。我们使用的是 Standard-7 Postgres,具有 120GB 的 RAM,并且连接尚未达到极限。还有什么其他的东西我可以四处看看,看看问题是什么?谢谢!
这是请求队列时间达到峰值的示例。
示例日志:
source=DATABASE
sample#current_transaction=160483065.0
sample#db_size=35361812244.0bytes
sample#tables=29
sample#active-connections=60
sample#waiting-connections=0
sample#index-cache-hit-rate=0.99897
sample#table-cache-hit-rate=0.99893
sample#load-avg-1m=0.07375
sample#load-avg-5m=0.06
sample#load-avg-15m=0.05375
sample#read-iops=0
sample#write-iops=0
sample#memory-total=125650852.0kB
sample#memory-free=75423472.0kB
sample#memory-cached=46423528.0kB
sample#memory-postgres=485000.0kB
【问题讨论】:
-
请包括 (1) 数据库主机上的 CPU 使用率,(2) 数据库 WAL 和数据所在磁盘的延迟/IO 队列。
-
我不确定我能否获得这些数据。似乎其中大部分是从 Heroku Postgres 中抽象出来的。我刚刚上传了带有示例日志的帖子,但它们看起来并没有什么不同。
-
heroku pg:diagnose --app <your_app>的输出是什么? -
RED: Hit Rate Name Ratio ----------------------------- ------------------ public.tracks 0.9678830033375656 GREEN: Connection Count GREEN: Long Queries GREEN: Idle in Transaction GREEN: Bloat GREEN: Blocking Queries GREEN: Sequences GREEN: Load -
你运行了多少台测功机?
标签: ruby-on-rails postgresql heroku