2016-08-15 25 views
0

我在Spring服務器上使用HikariConfig作爲postgres數據庫的DataSource。 我應該設置maxPoolSize嗎? (默認值爲-1) 我可以使用多少池大小? 硬件是否存在任何依賴關係?HikariConfig和maxPoolSize

回答

0

maxPoolSize是一個指標,作爲您的應用程序的限制。你應該根據流量/應用的開銷/硬件來計算。您可以將限制設置爲10000個連接,這並不意味着它將按預期運行。實際上,這會受到硬件的影響,因爲如果您的計算機包含一個內核,100000個活動連接將只會延伸java應用程序和postgres,因爲操作系統將難以處理所有這些I/O調用。更糟糕的是,如果數據庫和Java應用程序位於同一網絡中的不同機器上,則還會產生網絡開銷。

究竟優化性能與idleTimeout沿minimumIdle屬性,因此,如果您已經計算出這些合適的值,那麼它應該永遠不會到達maxConnection值以及原因造成的開銷等待鎖或資源匱乏。這裏唯一不好的地方是,如果你的應用程序設計錯誤(如果持續的連接時間長於需要,沒有正確提交事務,不使用批量作業進行長時間操作),那麼它會影響用戶體驗,但這是另一個問題。

我)

我應該設立maxPoolSize? (默認值是-1)


你應該把它作爲一個全球性的限制,這樣既您的應用程序和數據庫將是維護健康。默認值是不是-1,但10的更多細節here

II)

我是多麼池的大小可以使用嗎?


這取決於你的應用程序和基礎架構。你可以得到這些數字的唯一方法是通過集成測試來獲得最大的用例。 一些信息here關於Postgres的調整

III)

是否有與硬件的任何依賴性?


是有,兩個JVM和Postgres的服務器,也不僅是從硬件角度看,也可能會選擇什麼樣的OS

相關問題