簡體   English   中英

Mule 4 數據庫池配置

[英]Mule 4 DB Pooling Configuration

我想使用以下連接器為 mule 使用數據庫池:

<db:mysql-config name="dbConfig" host="localhost" port="3306" user="root"
   password="" database="esb" doc:name="MySQL Configuration">
   <db:pooling-profile maxPoolSize="17" minPoolSize="13" acquireIncrement="1"/>
</db:mysql-config>

參考 - https://docs.mulesoft.com/mule-runtime/4.3/tuning-pooling-profiles

我的問題是,假設如果應用程序以 4000 個查詢/秒的速度進入數據庫,並且每個查詢的周轉時間為 0.4 秒。 我的問題 maxPoolSize 應該設置什么?

第二個問題,根據 mule 文檔, acquireIncrement屬性使用是“確定在池耗盡時一次嘗試獲取多少個連接”。 這是否意味着如果 maxPoolSize 用盡了一個新的連接被創建然后又被丟棄,這是公平的理解嗎?

如果一個查詢需要 0.4 秒,那么理論上可以使用一個連接每秒執行 2.5 個查詢。 因此,對於每秒 4000 個查詢,您至少需要 4000/2.5=1600 個連接。 您應該添加更多內容以被峰值、更長的查詢等覆蓋。這實際上取決於您的應用程序的使用模式。 您應該嘗試測量負載測試中的使用情況或跟蹤實際使用情況。 為了保險起見,我猜不少於2000。

當當前沒有可用的空閑連接時使用acquireIncrement,連接總數不超過maxPoolSize並且新連接的請求到達。 由於您的應用程序預期的使用模式,您可能希望創建 3 個連接而不是僅 1 個。 在任何情況下,總連接數永遠不會超過 maxPoolSize。 例如,使用您共享的配置,可能有 14 個活動連接正在使用中,並且新的查詢到達。 如果 acquireIncrement 為 2,則池將創建 2 個額外的連接,總共 16 個。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM