これに似た問題がありますが、うまくいけば少し絞り込めます。
現在、Tridion 2011 インストールの公開部分をテストしています (コンテンツ マネージャーとコンテンツ配信は別のサーバー上にあります)。一度に多くのページ (私の場合は 1000 ページ) を公開しようとすると、プロセスdllhst3g.exe *32
が大量のメモリを取得し始めます。やらなければならない仕事がたくさんあるので、これは理解できますが、決して元には戻せません。これにより、コンテンツ マネージャーの実行が遅くなり、最終的にクラッシュします。
dllhst3g.exe *32
プロセスに約 3.6GB のメモリがあるときに、Tridion Content Manager によってスローされるメモリ例外が発生していました (これは、32 ビット プロセスが原因であると思います)。これらを防ぐために、SDL Tridion Content Manager
COM+ アプリケーションをプロセスごとに任意の 500Mb に制限し、制限に達してから 15 分後に強制終了させました。これにより、メモリ不足の例外は今のところ停止していますが、パフォーマンスの問題が残っており、サーバーに 8 GB を超える容量が 15 分間のウィンドウで割り当てられている場合、メモリが不足する可能性があります。詳細はこちら
関連するページ テンプレートにはコードが関連付けられていないため、基になる PageTemplate コードを除外しました。これらのページは空白です。
この問題は、Core Service 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);
}
}
(1 回の呼び出しですべての ID を送信して公開できることはわかっていますが、メッセージ制限エラーが発生し、複数の呼び出しと単一の呼び出しの結果が事実上同じであることを認識している限り)
何か案は?
(詳細を見逃している場合はお知らせください。それに応じて質問を更新します)
追加するのを忘れました。Content Manager は、4 つの CPU、8GB の RAM、および 50GB のディスク容量を備えた仮想化された Windows Server 2008 にインストールされます。Content Delivery は、同じ仕様の別のサーバーにインストールされます。