2017-05-26 114 views
0

我正在配置DAS 3.1.0 + APIM 2.0.0和Oracle數據庫11g(關係數據庫)。WSO2 DAS - oracleDB 11g的高CPU使用率

當我啓用DAS分析統計信息與API管理器集成時,除了DAS顯着提高機器與數據庫的CPU消耗級別的部分之外,幾乎一切都正常工作。

我注意到他始終運行此查詢:

MERGE INTO API_REQ_USER_BROW_SUMMARY dest USING(SELECT :1 api, :2 
version, :3 apiPublisher, :4 tenantDomain, :5 total_request_count, :6 
year, :7 month, :8 day, :9 requestTime, :10 os, :11 browser FROM dual) 
src ON(dest.api=src.api AND dest.version=src.version AND 
dest.apiPublisher=src.apiPublisher AND dest.year=src.year AND 
dest.month=src.month AND dest.day=src.day AND dest.os=src.os AND 
dest.browser=src.browser AND dest.tenantDomain=src.tenantDomain)WHEN NOT 
MATCHED THEN INSERT(api, version, apiPublisher, tenantDomain, 
total_request_count, year, month, day, requestTime, os, browser) 
VALUES(src.api, src.version, src.apiPublisher, src.tenantDomain, 
src.total_request_count, src.year, src.month, src.day, src.requestTime, 
src.os, src.browser) WHEN MATCHED THEN UPDATE SET 
dest.total_request_count=src.total_request_count, 
dest.requestTime=src.requestTime 

我想知道是否有優化使得其上的數據DASE不是那麼毆打機器的CPU造成的方式性能下降。

請問,有誰還有這個困難,你能幫我嗎?

回答

2

上述查詢中發生的情況是,如果數據庫中沒有具有相同主鍵值的記錄,或者某些記錄具有相同的主鍵,那麼我們更新現有記錄,則記錄將插入到數據庫中。

表「API_REQ_USER_BROW_SUMMARY」有兩列「OS」和「瀏覽器」,它們是該表的主鍵的一部分。據觀察,當NULL值插入「OS」和「瀏覽器」時,分析服務器和數據庫將掛起。

你可以做什麼,(你可能需要關閉分析服務器以及後面的步驟之前重新啓動數據庫服務器)

  1. 轉到{Analytics_server} /庫/部署/服務器/ carbonapps然後打開org_wso2_carbon_analytics_apim -1.0.0.car作爲zip文件。
  2. 前往文件夾APIM_USER_AGENT_STATS_1.0.0
  3. 開放APIM_USER_AGENT_STATS.xml
  4. 在腳本(標籤)之前結束,你會看到一個sparkSql查詢像下面。

INSERT INTO TABLE APIUserBrowserData SELECT api,version,apiPublisher,tenantDomain,total_request_count,year,month,day,requestTime,os,browser FROM API_REQUEST_USER_BROWSER_SUMMARY_FINAL;

  • 替換爲以下該行。
  • INSERT INTO TABLE APIUserBrowserData SELECT api,version,apiPublisher,tenantDomain,total_request_count,year,month,day,requestTime, if(os is null, "UNKNOWN",os), if(browser is null, "UNKNOWN", browser) FROM API_REQUEST_USER_BROWSER_SUMMARY_FINAL;

    這將防止星火插入NULL值 「OS」 和 「瀏覽器」 列進表 「API_REQ_USER_BROW_SUMMARY」。 進行上述更改後,請檢查CPU消耗是否較高。

    +0

    謝謝,Gimantha Bandara!它工作得很好。現在來自數據庫機器的CPU是正常的。你能告訴我這個改變是否有副作用?如果有某種你看不見的數據,或者有一些我必須拋棄的分析? – artCampos