2012-11-14 24 views
0

我用了一個XPage(XAgent)的REST服務控制和我遇到性能下降..REST服務 - 表現不佳的問題

代碼:

<?xml version="1.0" encoding="UTF-8"?> 
<xp:view xmlns:xp="http://www.ibm.com/xsp/core" 
    xmlns:xe="http://www.ibm.com/xsp/coreex"> 
    <xe:restService id="byNameFirst" pathInfo="Read"> 
     <xe:this.service> 
      <xe:viewItemFileService var="entry" defaultColumns="true" 
       count="3000"> 
       <xe:this.viewName><![CDATA[#{javascript:context.getUrl().getParameter("view")}]]></xe:this.viewName> 
      </xe:viewItemFileService> 
     </xe:this.service> 
    </xe:restService> 
</xp:view> 

的XAgent將使用稱爲: server/dbpath/xRestService.xsp/Read?view = lookupREST

服務器是Domino 8.5.3和UP1 視圖(lookupREST)是FTIndexed,有15個非計算列。 我已經嘗試設置計數(返回的行數)。

  • 設置數爲10,數據(來自20個請求平均)
  • 設置數爲100返回在60ms的,返回數據在2秒(平均從20個請求)(!)
  • 設置計數1000,返回數據在2秒(平均20名的請求)
  • 設置數爲3000,數據(來自20個請求平均)返回在5.5s

結果(!):返回10快,100很慢,1000慢,3000非常慢。

我當時希望速度更快。我應該期待比這更快的迴應嗎? 我測試了其他xpages,表單,網頁等整體服務器的HTTP性能,我覺得它很好。

我也使用viewJsonService進行了測試。我覺得它更慢。使用3000作爲計數平均值約10秒。

因此,問題是我應該期望比這更快的響應時間?這可能導致這種性能下降的原因是什麼? 或者這是否按預期執行?

任何信息/提示,將不勝感激的微笑

問候, 皮特Kjeilen

+0

Petter - 您是否計時顯示頁面上顯示的速度 - 或服務器的響應速度?使用Firebug或Chrome開發工具,您可以看到響應時間和下載時間 - 它們如何關聯?知道這可以幫助識別問題 – MarkyRoden

+0

您也可以嘗試使用Domino數據服務http://www-10.lotus.com/ldd/ddwiki.nsf/xpDocViewer.xsp?lookupName=Domino+Data+Service#action=openDocument&res_title= Viewfolder_entries_GET_dds10&content = pdcontent。如果您只想從視圖中獲取JSON輸出,則速度可能會更快。 –

+0

@MarkyRoden - 是的,這已經使用螢火蟲進行測試。等待時間平均約5.5秒。 (使用3000作爲計數)連接約30ms和接收約280ms。 – user1674918

回答

1

您需要先比較,與服務器的基準線。由於您使用的觀點,你可以使用

http://yourserver/yourdb.nsf/viewName?ReadViewEntries&OutputFormat=JSON&Count=1000 

這給你的原始服務器性能(你需要調整服務器設置,以獲得超過1000多一次)。如果結果不是太不同,那麼請注意您的服務器I/O(DiskQueue)以確定瓶頸

+0

@Stephan - 是的,我已經嘗試了您的方法,並且它更快。 3000文檔在3秒內返回(大約一半的時間..) 但是,我也需要在服務器端進行排序和過濾的能力。 只是爲了獲取數據,這是一個很好的解決方案。 – user1674918

+0

似乎像Notes.jar是瓶頸 - > http://www.mindoo.com/web/blog.nsf/dx/31.03.2010220936KLERN4.htm – user1674918

+0

排序是可用的,因爲是過濾到一定程度。檢查URL命令doku – stwissel