XPages 2 个应用程序在同一服务器上,1 个运行,1 个不运行



上周我们有一个业务关键的XPage应用程序,它突然开始严重爬行,以至于我不得不每天重新启动服务器,甚至有些页面需要30秒才能打开。

服务器有12GB RAM和2个cpu,我正在等待另外2个添加,看看这是否有帮助。

数据库中有大约100,000个文档,在任何一个视图中显示的文档不超过50,000个。将相同的数据库设置为具有更少文档的训练应用程序,在相同的服务器上始终响应,即使主副本正在爬行。

在这个应用程序中有许多视图面板-我读到这些非常慢。我应该把它们去掉,换成重复控制吗?

在包含角色的文档上也有Readers字段,和authors字段,因为它是一个工作流应用程序。

我在周末从后端删除了一些不必要的视图,以帮助加快速度,但收效甚微。

有什么主意可以让我检查一下是什么导致了如此巨大的性能下降吗?它在上周才真正变得不可用,但据我所知,除了我删除了一些旧视图外,设计中没有任何变化。

尝试获取有关服务器和应用程序状态的更多信息。

硬件故障诊断总结如下:http://www-10.lotus.com/ldd/dominowiki.nsf/dx/Domino_Server_performance_troubleshooting_best_practices

根据您的经验-两个应用程序中只有一个变慢了,这是代码问题。最好的方法是分析代码:http://www.openntf.org/main.nsf/blog.xsp?permaLink=NHEF-84X8MU

要深入了解,您可以开始查找信号量锁:http://www-01.ibm.com/support/docview.wss?uid=swg21094630,或者查看javadumps: http://lazynotesguy.net/blog/2013/10/04/peeking-inside-jvms-heap-part-2-usage/和NSDs http://www-10.lotus.com/ldd/dominowiki.nsf/dx/Using_NSD_A_Practical_Guide/$file/HND202%20-%20LAB.pdf和垃圾收集器在Domino 8.5.3 64 Bit中HTTPJVMMaxHeapSize的最佳设置。

这个演示文稿很好地概述了Domino故障排除(以及web上的许多其他故障排除)。

好了,我们通过做一些事情解决了性能问题。我将按照改进的顺序列出我们所做的更改,从那些不太明显的简单调整开始。

  1. 整理Domino驱动器-它显示为32%的碎片,我认为我是一个赢家,但在整理之后它真的没有更好。尽管IBM文档说即使是1%的碎片也会导致性能问题。

  2. 检查应用程序中的所有主代码,并在可以用applicationScope变量替换它们时进行一些不必要的查找。例如,在搜索页面上,其中一个下拉选项通过对数据库中的所有文档执行@Unique查找来获得它的选择。将其更改为关键字,并将其放在应用程序范围中。

  3. 删除了对数据库的多重检查。

  4. DB有103,000个文档,其中70,000个是很小的文档,上面大约有5个字段。它们不需要被FTIndex索引,因此我们将它们移到一个单独的数据库中,并在需要这些文档时将数据源指向该数据库。FTIndex从500mb提升到200mb =更快的索引和搜索速度,但应用程序的整体性能仍然很差。

  5. 大的一个-我终于有时间检查应用程序属性,高级选项卡。我设置了以下选项:优化文档表映射(运行copystyle compact)不要覆盖空闲空间不支持专门的响应层次结构使用LZ1压缩(运行copystyle compact,带有更改现有附件的选项-ZU)不要允许标题监控将$UpdatedBy和$Revisions中的条目限制为10个(根据domino文档)

也不允许使用存储表单。

现在我不知道这些选项中的哪一个是最大的收益,并不是所有的将适用于你自己的应用程序,但这样做后,应用程序飞!它运行起来就像里面根本没有文档一样,视图加载速度超快,文档打开速度超快,每个人都很高兴。

直到http线程被锁定-这是我即将发布的另一个问题,所以如果你知道发生了什么,请看看:-)

感谢所有建议尝试的人。

相关内容

最新更新