近期新部署了一臺資料庫服務器,作業系統為windowsNT12 ,oracle為11.2.4,硬體配置為CPU*24,記憶體*128G,網路為專線,部署完成后經過一段時間內部測驗,單個客戶端連接正常。隨后切換至生產環境,隨著客戶端連接增加,約每秒200個連接,此時客戶端open connect操作每次接近1秒,測驗各個客戶端tnsping服務器時間400~600毫秒,單個客戶端時<20毫秒。檢查了網路,實時網速100M是OK的,關閉防火墻,檢查tns,監聽,dns均未發現問題。為何延遲會這么厲害,一直沒找到原因。不得已,重新安裝服務器,改用linux+oracle,延遲問題解決。難道是windows+oracle效率不好?
uj5u.com熱心網友回復:
確實有這個方面的原因。除了 tnsping 之外,還做過其他方面的測驗嗎?
uj5u.com熱心網友回復:
先從網路開始測驗的,防火墻前置,改后置,同時監控服務器和資料庫負載情況,生產接入以后都沒有出現很高的負載,資料庫日志和前端日志分別顯示有連接超時的告警,懷疑是監聽或dns的配置的問題,反復修改配置,用hosts或直接用IP都嘗試了,生產連接一上來,延遲就開始大幅增加,直接ping的話延遲沒有影響。最終在生產部門的壓力下,放棄重來。uj5u.com熱心網友回復:
每秒200個連接的意思是:每秒200個短連接?這個太高了uj5u.com熱心網友回復:
看樓主后來的描述,貌似不是這個意思?
windows和linux很大的一個不同是:兩者對記憶體的使用很不一樣。但是感覺不是作業系統的問題,可能還有其他不同的因素主題帖沒有描述。
uj5u.com熱心網友回復:
確實是,客戶端采用的都是短連接的方式,我也向前端提過修改為連接池的方式,但涉及前端改造作業量的問題沒有采納,所以長連接的方案沒有測驗過。
uj5u.com熱心網友回復:
貼子描述里省略了很多驗證的中間程序,一開始是懷疑網路問題,防火墻,DNS服務器一一排除產生問題的可能性;隨后懷疑是短連接過多造成的堵塞,增加了最大連接數,調整超時設定,增加監聽埠,也沒有收到效果;第三步,根據現有的運行良好的另一套生產庫的設定,對新庫進行優化,也沒有起到作用;最后只好重新部署到linux系統,切換以后發現延遲現象大大改善。所以截止目前也沒有找出延遲高的原因。
uj5u.com熱心網友回復:
這個和最大連接數沒有關系,如果真沒辦法改用連接池,建議至少把默認的登錄審計關掉:noaudit session whenever successful;,否則不提共享池中的爭用,就光sys.aud$表上的爭用就會讓你的登錄變慢,但這無法解釋你換到linux情況變好了,當然遷到linux是正確的選擇。轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/36526.html
標籤:基礎和管理
上一篇:求助oracle創建表空間時遇到ora00972 : 識別符號過長
下一篇:ORACLE啟動錯誤
