[英]Puma web server (ROR) and connection timeout
我有一個自定義的Ruby on Rails安裝程序,並使用puma作為Web服務器(由Nginx支持-套接字)
我連接到的數據庫是rds介質(因此296個連接限制)。 我的puma設置是線程1:32和4個工人。 具有128個連接池。
我的負載很高,每秒300個請求,每說1000個請求,就會進行更長的計算,這大約需要3秒鍾(獲取所有事件,進行一些計算並更新它們)。
我收到錯誤
ActiveRecord::ConnectionTimeoutError: could not obtain a database connection within 5.000 seconds (waited 5.016 seconds)
但是,如果我查看rds數據庫,則僅打開了43個連接。 我的內存大約是7000 MB中的2000 MB(2個核心處理器處於100%的狀態),我想知道為什么即使我的所有連接都沒有打開,我也會得到連接超時(當然,puma配置還可以)嗎?
謝謝您幫忙!
編輯:
在我的puma.rb中,我有:
on_worker_boot do
ActiveRecord::Base.connection_pool.disconnect!
ActiveSupport.on_load(:active_record) do
config = Rails.application.config.database_configuration[Rails.env]
config['reaping_frequency'] = ENV['DB_REAP_FREQ'] || 10 # seconds
config['pool'] = ENV['DB_POOL'] || 128
ActiveRecord::Base.establish_connection
end
end
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.