Tuning OPP in EBS Oracle EBS 11i&R12

優化指標

EBS中OPP(Output Post Processor)的優化,主要能夠由下面3個方面來入手:java

  • Threads
  • Processes
  • Jvm memory argument

Threads & Processes

Threads和Processes的設置能夠在併發管理器定義的頁面中看到,以下:
圖片描述
其中,2表明service threads的數量,max_threads參數控制request threads的數量。能夠根據須要增長max_threads的值(max_threads能夠說是定義OPP吞吐量的一個重要參數)。sql

Jvm memory argument

Jvm memory argument能夠使用apps用戶登陸數據庫,運行下面sql獲得:數據庫

sqlSELECT service_id, service_handle, developer_parameters
  FROM fnd_cp_services
 WHERE service_id = (SELECT manager_type
                       FROM fnd_concurrent_queues
                      WHERE concurrent_queue_name = 'FNDCPOPP');

      SERVICE_ID SERVICE_HANDLE DEVELOPER_PARAMETERS
---------------- -------------- --------------------------------------------------------------------------------
            1080 FNDOPP         J:oracle.apps.fnd.cp.gsf.GSMServiceController:-mx512m

優化原則

Threads VS Processes

每一個OPP process都須要在OS中啓動單獨的java進程。因此在調優過程當中,建議先增長Threads的數量,Threads的數量受每一個process能夠使用的內存限制,在已有的threads還不夠用時,就須要增長process的數量了。併發

每一個OPP的process都會佔用單獨的內存,因此在增長process個數的時候,OS空閒內存就是要考慮的一個因素。oracle

Increase jvm memory

在OPP服務進程中出現outofmemory錯誤時,就須要增長jvm內存參數了,可以使用下面sql來調整OPP的jvm memory參數。調整以後須要重啓OPP生效。app

sqlUPDATE fnd_cp_services
   SET developer_parameters =
                       'J:oracle.apps.fnd.cp.gsf.GSMServiceController:-mx1024m'
 WHERE service_id = (SELECT manager_type
                       FROM fnd_concurrent_queues
                      WHERE concurrent_queue_name = 'FNDCPOPP');

系統總體性能考慮

EBS中,OPP主要用來處理XML Publisher生成報表的請求,在11i和R12版本中,OPP使用32位java,因此單個OPP process最多隻能使用4G內存(而Oracle建議的值爲2G),因此從處理能力方面來看,單個OPP進程是受到很大限制的。在運行比較大的報表,出現outofmemory錯誤時,單純增長process和threads已經不能很好解決問題,須要從報表的性能上去考慮。在處理比較小的報表請求時,較大的process和threads參數能夠增長系統的吞吐量。jvm

相關文章
相關標籤/搜索