Database

在 Windows 伺服器上執行的 Oracle 的典型最大數據庫連接數是多少?

  • June 14, 2018

我們正在維護一個為大量客戶端提供服務的數據庫伺服器。每個客戶端通常執行多個客戶端應用程序。與數據庫伺服器 (Oracle 9i) 的連接總數在峰值負載時達到 800 個連接。windows 2003 伺服器開始記憶體不足。我們現在計劃遷移到 64 位 Windows 以獲得更高的記憶體容量。作為一名開發人員,我建議轉向使用連接池的多層架構,我認為這是解決這個問題的自然方法。但是,為了支持我的想法,我想要以下資訊:

  1. Oracle 數據庫允許的典型連接數到底是多少?
  2. 連接數過多時會出現什麼問題?記憶體消耗過多?還是打開了太多的套接字?還是執行緒之間的上下文切換過多?
  3. 具體來說,Oracle Forms 應用程序如何擴展到數千名使用者而不會遇到這個問題?Oracle RAC 是否應應用於此案例?

我確信這個問題的答案應該取決於很多因素,比如所使用硬體的確切規格。我期待一個粗略的估計或來自現實世界的一些經驗。

為了處理數據庫連接,需要一個單獨的 Oracle 程序,這可能需要高達 2 MB 的記憶體。通常,Oracle 安裝會根據可用記憶體和 CPU 配置限制並發連接數。

例如,假設您在數據庫中有 50 個客戶帳戶,每個帳戶最多有 100 個並發連接。如果每個帳戶平均只使用 25% = 25 個連接,那麼平均總數將是 1250 個連接。這意味著 2500 MB 僅用於儲存連接特定的數據。上下文切換還需要處理器時間。

通過設置並發連接限制,您可以確保您的交易順利通過,並且一些非常活躍的客戶帳戶不會開始阻塞您的數據庫伺服器的資源。連接數受會話參數和您的許可限制。session 參數控制包括 Oracle 後台程序在內的連接總數。

使用 64 位 Windows 平台向伺服器添加更多 RAM 是一個好主意,因為您不必花費太多,甚至添加 16 GB 記憶體。

有關配置如何在實際工作負載場景中執行的詳細資訊,請閱讀Oracle E-Business Suite 標準基準。通常,它們具有大量連接。

引用自:https://serverfault.com/questions/14387