[英]Getting subsequent connections using HikariCP during same request seems slow
我有一個 Spring 啟動應用程序,它使用 HikariCP 進行 Postgres 連接池。
最近,我設置了跟蹤以收集一些數據,了解在處理對特定端點的請求時所花費的時間。
我的假設是,在使用 HikariCP 時:
但是,如跟蹤所示,第一個連接速度很快(< 10 毫秒)。 雖然同一請求處理過程中的一些后續連接也很快(< 10 毫秒),但我經常看到一些后續連接需要 50-100 毫秒,這對我來說似乎很慢,盡管我不確定這是否是預期的或不是。
我可以配置什么來改善這種行為嗎?
也許很高興知道:
我使用默認的 Hikari 設置,我沒有更改它們。
如果從池中獲取已初始化的連接大約需要 10 毫秒,我確實認為您的池配置或池使用有問題。 我希望它是亞毫秒......你確定你正在正確使用池嗎?
確保盡可能使用新版本的池和驅動程序,並確保未設置connectionTestQuery
,因為每次從池中獲取連接時都會執行查詢。 對於設置的 rest,默認值應該足夠好。
調試日志可能是一回事,有助於弄清楚發生了什么,池中的指標是另一回事。 看看 Spring Boot Actuator,它會幫助您...
要回答關於如何改善這種情況的實際問題,因為它實際上需要大約 10 毫秒才能獲得連接:不要為每個查詢獲取連接並將連接返回到池中......如果你不想傳遞連接在您的代碼中,如果它適合您的用例,您可以通過確保將整個請求包裝在事務中來輕松實現這一點。 請參閱有關管理事務的 Spring 指南。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.