Fredhopper索引的QSERVER例如占用过多CPU


7

预览页面加载内1.7分钟,FH查询了6.084秒和QSERVER消耗超过%95 CPU。这是一个阻碍问题,导致整个系统变慢。有没有什么方法可以确定问题以及它不能变得更好的原因?

我对索引器和qserver实例都使用索引器。

我采取的行动并没有帮助;

  1. 将索引器的qserver内存从1500增加到6000; instance3_qserver_memory = 6000

  2. We started the procedure of reindexing。 我们停止了索引服务器,取了fredhopper的备份; bin/capture-import <INSTANCE> path/to/capture.zip

    我们复制所有文件在

    <BASE_DIRECTORY>\INDEXER>\data\xml\processed\batch; into <BASE_DIRECTORY>\<INDEXER>\data\fas-xml\<CATALOG01> .

    我们跑了 “reindexer” 用; bin/reindex indexer命令。

    并且还运行以下命令以更新配置的活动服务器 当前的索引和配置; bin\fresh-index-to-live indexer

  3. 我们观察到,项目被编入索引,被索引的 数量的项目正在倒计时。当没有剩余索引项目时,我使用以下命令重新启动索引器的qserver。

bin\deployment-agent-client --location localhost invoke <INDEXER> qserver stop bin\deployment-agent-client --location localhost invoke <INDEXER> qserver start

  • 无帮助。每次检查进程时,Dapp-name = qserver实例消耗太多的CPU高达350%。我观察了厨房,索引器实例日志,Fredhopper.log和qserver.log文件。我看到的是下面的(我怀疑他们会导致CPU使用率过量),
  • qserver.log文件 “HTTP-NIO-10180-EXEC-39” 守护PRIO = 10 TID = 0x0000xxxxxxx NID = 0x4e27可运行的[0x00007fb8909eaxxx] java.lang.Thread.State中:RUNNABLE 锁定拥有同步器: - < 0x00000007e1280xxx>(一个java.util.concurrent.ThreadPoolExecutor $工人)

    fredhopper.log 2016 -01-05 17:58:43,834 WARN [http-nio-10181- exec-32] SortFieldFilter.java:38 50180删除排序字段中的字段'pubtitle'。不支持在非实时属性上排序。请在树属性中包含此字段以对其进行排序。 || fredhopper @ hostname:fredhopper/data/installations/FAS tags/fas/fas-7.5.0。16/engine @ 107262 - url:http:// {url}

    由于它声明“不支持在非活动属性上排序”。 ,我去了业务经理,并检查了pubtitle属性是否存在。我确认它是活的。那么为什么它抛出这样的SortFieldFilter警告,不知道!

    编辑:我在qserver.log中给出的例外抛出了数千次;这个问题会导致CPU的过度使用吗?

    There is an entry regarding the exception;

    编辑2:我也检查了SIT的CPU使用情况,并观察其在CPU占用率方面表现类似于UAT的。换句话说,整体CPU利用率高达80%,qserver实例的CPU利用率约为250%。所以,有类似的行为,但SIT可以毫无问题地处理操作。最起码到现在。

      0

    我很困惑。即使没有剩下的工作要做,你是否继续使用CPU功率?那会很奇怪。 10 6月. 162016-06-10 13:35:52

    -1

    您是否分析过您的相关代码并确保没有内存泄漏的范围?

    也许你可以尝试在单独的服务器上复制环境 - 可能是Dev并尝试在那里复制场景。此外,您可以删除fredhopper服务器的所有可能的集成点,并尝试使用简单查询进行检查。

    我希望它可以帮助。

      0

    感谢Pankaj的回答。回答你的问题是肯定的。我在DEV和SIT上也有相同的设置。没有问题发生。因此,我怀疑它与代码有关。但在UAT中,我有这样的问题。你可以请我带一个教程解释如何删除所有可能的集成点到fredhopper服务器?我很不确定这实际上是什么意思。 06 1月. 162016-01-06 10:41:56

      0

    我只是想说,把你所有的代码注释掉给Fredhopper一个连接或查询,然后用非常简单的查询来尝试......然后开始用代码块来启动代码块来识别可能有问题的代码 06 1月. 162016-01-06 11:14:54

      0

    我明白了,但问题在于,其他环境中的相同逻辑和代码块可以正常工作。因此,让我保留这个选项作为最后一个。 06 1月. 162016-01-06 11:16:56