0

我在 XPage (XAgent) 中使用 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

服务器是带有 UP1 的 Domino 8.5.3 视图 (lookupREST) 是 FTIndexed 并且有 15 个非计算列。我已经尝试设置计数(返回的行数)。

  • 设置 count 为 10,数据在 60ms 内返回(平均来自 20 个请求)
  • 将 count 设置为 100,数据在 2s 内返回(平均来自 20 个请求)(!)
  • 设置count为1000,2s内返回数据(平均20次请求)
  • 将计数设置为 3000,数据在 5.5 秒内返回(平均来自 20 个请求)(!)

结果:返回 10 很快,100 很慢,1000 很慢,3000 很慢..

我希望它更快。我应该期望比这更快的响应吗?我已经用其他 xpage、表单、页面等测试了整体服务器 http 性能,我觉得它很好。

我还使用 viewJsonService 进行了测试。我觉得比较慢。使用 3000 作为计数平均约 10 秒。

那么,问题是我应该期望比这更快的响应时间吗?这种缓慢的性能可能是什么原因?还是按预期执行?

任何信息/提示将不胜感激微笑

问候, 皮特·克杰伦

4

1 回答 1

1

您需要先将其与服务器的基线进行比较。由于您使用的是视图,因此您可以使用

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

这为您提供了原始服务器性能(您需要调整服务器设置以一次获得超过 1000 个)。如果结果相差不大,则观察您的服务器 I/O (DiskQueue) 以确定瓶颈

于 2012-11-16T02:58:45.080 回答