3

我有一个类似的问题虽然希望我已经缩小了一点。

我目前正在测试我的 Tridion 2011 安装的发布部分(Conent Manager 和 Content Delivery 在不同的服务器上)。当我尝试一次发布多个页面(在我的情况下为 1000 个)时,该过程dllhst3g.exe *32开始获取大量内存。这是可以理解的,因为有很多工作要做,但它永远不会回报。这导致内容管理器运行缓慢并最终崩溃。

dllhst3g.exe *32当进程有大约 3.6GB 的内存时(我认为这是因为它是 32 位进程),Tridion Content Manager 抛出了内存不足的异常。为了防止这些,我将SDL Tridion Content ManagerCOM+ 应用程序限制为每个进程任意 500Mb,在达到限制后 15 分钟被强制终止。这暂时停止了内存不足的异常,但如果在 15 分钟窗口内分配的服务器超过 8GB,我仍然存在性能问题和内存不足的可能性。更多关于这里

我已经排除了底层的 PageTemplate 代码,因为关联的页面模板没有关联的代码。这些页面是空白的。

在使用核心服务 API 时,这个问题似乎也更加突出。我正在使用的代码是

using (var client = new Tridion2011CoreService.CoreServiceClient())
{
    foreach (var id in ids) // ids is a collection of 500 page ids
    {
        // publishing to staging and live
        var targets = new string[] { "tcm:0-7-65538", "tcm:0-8-65538" };

        var publishInstructionData = new PublishInstructionData();
        publishInstructionData.ResolveInstruction = new ResolveInstructionData();
        publishInstructionData.RenderInstruction = new RenderInstructionData();

        var readOptions = new ReadOptions();

        client.Publish(new string[] { id }, publishInstructionData, targets, PublishPriority.Normal, readOptions);
    }
}

(我意识到我可以通过一次调用来发送所有 ID,但随后我遇到了消息限制错误,据我所知,多次调用和一次调用的结果实际上是相同的)

有任何想法吗?

(如果我错过了任何细节,请告诉我,我会相应地更新问题)

忘记加了。内容管理器安装在具有 4 个 CPU、8GB RAM 和 50GB 磁盘空间的虚拟化 Windows Server 2008 上。Content Delivery 安装在具有相同规格的单独服务器上。

4

2 回答 2

1

在联系 SDL 客户支持后,我被告知唯一的解决方案是在 dllhost 进程占用预定内存量时对其进行回收。

为在 Windows Server 2008 上运行的 SDL Tridion Content Manager 2011 执行此操作

  1. 打开组件服务(搜索它或Control Panel -> Administrative Tools
  2. 展开树Component Services -> Computers -> My Computer -> COM+ Applications
  3. 右键单击SDL Tridion Content Manager并选择属性
  4. 选择Pooling & Recycling选项卡
    • 设置Pool Size为 1
    • 设置Lifetime limit为 0
    • 设置Memory Limit为 524288 (512 MB) 或选择您自己的限制(我会选择小于 1GB 的值)
    • 设置Call Limit为 0
    • 设置Activation Limit为 0
  5. 如果可以,请重新启动系统。否则,重新启动所有 Tridion 服务(Control Panel -> Administrative Tools -> Services并重新启动以“Tridion”开头的所有内容)

也许“真正的”修复只是一个补丁......

于 2012-10-09T15:18:39.217 回答
0

尝试监视传输包根文件夹。这将在 SDL Tridion MMC 管理单元中设置。默认值为 CMS 服务器中的 C:\temp。请检查将在 Tridion 安装文件夹\Config 中的 cd_transport config xml 中设置的传输工作区文件夹。还要检查部署程序传入和工作文件夹。这些文件夹中积累的大量文件可能会导致性能下降,如果您错误地输出文件夹或文件,请尝试清理这些文件夹,以防止 Tridion 重试失败的事务。此外,如果您的部署程序作为网站 httpupload.asp 运行,请尝试验证部署程序的应用程序域回收设置,以确保您不会每隔几分钟重置 appdomain。

您还可以尝试查看发布项目的相关项目。如果您有很多版本或不需要的相关项目,您可以考虑自定义解决发布项目以避免具有特定架构等的不需要的组件。Nuno 提供了一个非常好的下面链接中的文章。感谢努诺.. http://nunolinhares.blogspot.nl/2011/10/tridion-publisher-and-custom-resolvers.html

于 2012-10-08T21:11:35.557 回答