以下的文章主要介紹的是Oracle DRCP正確的解決以下的兩個相關問題,,它的共享連接能夠跨 apache 和中間件節點,但是共享的相關連接是基於相關數據庫用戶的,比如 Scott 用戶登錄到 DB 上的所有連接間共享。
Oracle 對 PHP 的支持一直是不錯的(只是國內好像 PHP + Oracle 的開發並不多)。 Oracle 11g 中的新特性數據庫駐留連接池(Database Resident Connection Pool,Oracle DRCP) 對 PHP 應用進一步擴展帶來了一種可能。
這個特性應該重點針對 PHP 應用的。PHP 不支持真正的多線程,非持久連接非常消耗 CPU 資源,擴展性也差;持久連接擴展性好了一點,但是又額外占用更多的內存資源(PHP 之父在幾年前的一個 Step-by-Step 優化演示的文章中很形象的說明了連接開銷對應用的影響)。
Oracle DRCP 的出現能更好的緩解上述兩個問題,其共享連接能跨 apache 與中間件節點,但共享的連接是基於數據庫用戶的,比如 Scott 用戶登錄到 DB 上的所有連接間共享。
Oracle 官方披露的測試數據是,在 4 CPU Intel Xeon MP 2.80GHz 機器上,2GB RAM, 32bit RHEL 4. 支撐到 14000 個鏈接的時候,CPU 使用率在 65% 左右。這個...還是太驚人了,根據我找到的另外一份測試結果,看來要大打折扣才能有參考性。