IBM Support

動的ポリシーによる Lotus Domino サーバーのパフォーマンス・ハングアップの問題

Troubleshooting


Problem

「ポリシー割り当て」の動的グループポリシーに、グループを使用せずにユーザーを明示的にリストすると、特定の条件でパフォーマンスもしくはハングアップの問題が発生することがあります。

1 つ以上の動的ポリシーにリストされたユーザーの合計バイト数が 64k バイトを超えると、ユーザーのリストを構築するときにエラーが発生します。これにより、エラーで失敗した時点からユーザーリストの再構築を再び試みるループが生成されます。その結果、セマフォリソースの状態によってパフォーマンスの問題が発生し、やがてサーバーが使用できなくなります。動的ポリシーのルーチンはユーザーがサーバーに接続したときにトリガーされるため、この問題はサーバー負荷に関連しています。ユーザーが多いほど、サーバーでの問題が増加します。
 

Symptom

Lotus Domino サーバーのパフォーマンスが低下し、ハングアップしたように見える可能性があります。ユーザーは、応答時間の遅延に遭遇し、サーバーを使用できなくなります。

Cause


セマフォタイムアウトのデバッグを有効にすると (debug_show_timeout=1 / debug_capture_timeout)、次のセマフォがログに記録されます。

ti="0081787D-C1257905" sq="00000BF3" THREAD [0198:0063-0670] WAITING FOR READ LOCK ON
FRWSEM 0x0F7F (@02581790) (R=0,W=1,WRITER=0198:06A4,1STREADER=0000:0000) FOR 30000 ms


ポリシーのデバッグを有効にすると (debug_policy=3)、次のエラーが表示されます。

GetIntersectedNamesList> Returning error: エントリを追加するとテキストリストが 64K を超えてしまいます。エントリを追加できません。

問題発生時に NSD に収集された呼び出し関数スタックは、次の通りです。

############################################################
### thread 15/146: [ nserver: 1b00: 13d0]
### FP=0x389fdae8, PC=0x7793504a, SP=0x389fdae8
### stkbase=0x38a00000, total stksize=4194304, used stksize=9496
############################################################
[ 1] 0x7793504a ntdll.ZwWaitForSingleObject+10 (0,0,0,0)
[ 2] 0x777ec730 kernel32.WaitForSingleObjectEx+160 (10ec,1b9e7c2,0,10ec)
@[ 3] 0x007fcbb4 nnotes.WaitOnNativeSemaphoreCounted+100 (0,9b,0,2bc6074)
@[ 4] 0x007fdd56 nnotes.OSLockReadFRWSem+918 (389fdf44,1b872c0,8a61f878,7d69f6)
@[ 5] 0x01b86b77 nnotes.CPolicy::GetIntersectedNamesList+135 (0,0,1E200000000,389fddf8)
@[ 6] 0x01b86887 nnotes.CPolicy::PoliciesExist+459 (7a0,7d69f6,1a200001,7fb30c)
@[ 7] 0x01b962ba nnotes.NAMEPoliciesExist2+282 (0,7d69f6,d06d234,d1fdb9)
@[ 8] 0x01ccd57b nnotes.GetProfileAndMailHashes+675 (B000000000001,389fe5b8,389ff110,89f2d27c)
@[ 9] 0x01ccccc2 nnotes.NetGetClientDynProfile+854 (0,0,0,0)
@[10] 0x026ce839 nnotes.GetProfileInfo+193 (389fea80,0,389fef38,389ff110)
@[11] 0x026caa73 nnotes.LookupABPIandKeys+2167 (18,3367f40,7,7f65b6)
@[12] 0x026ca1da nnotes.FindABPIandKeys+454 (0,0,2DA000000000000,2da)
@[13] 0x026c9bb6 nnotes.CheckABPublicInfo+722 (6c347b20,7d0000,389ff288,389ff2a4)
@[14] 0x026ff0b5 nnotes.LookupABPI+1165 (0,0,389ff850,0)
@[15] 0x02700193 nnotes.Parse_DistName+347 (389ff900,7f0019,8d000002,1001cf4a)
@[16] 0x026fa05d nnotes.AuthServerDialog+2157 (389ff900,389ff8ac,389ff9f0,1cba4c3)
@[17] 0x026eb7d2 nnotes.AuthStateMachine+418 (389ff900,4870002a,0,1cb874c)
@[18] 0x026ae7ea nnotes.AUTHProcessNetbfr+318 (4870002a,4870002a,389ffb60,7fc4ce)
@[19] 0x10044827 nserverl.DbServer+2995 (8fb702ad,dbe8002b,389ffd0c,50)
@[20] 0x10065190 nserverl.WorkThreadTask+2324 (8fb70009,0,1b00,d010df4)
@[21] 0x10001b21 nserverl.Scheduler+969 (0,0,0,0)
@[22] 0x007d654e nnotes.ThreadWrapper+330 (0,0,0,0)
[23] 0x777e466d kernel32.BaseThreadInitThunk+13 (0,0,0,0)
[24] 0x779181d1 ntdll.RtlUserThreadStart+33 (0,0,0,0)

Resolving The Problem


この問題は、問題報告番号 PMIA9DNLR7 として Lotus Quality Engineering に報告され、IBM Domino 9.0.1 Fix Pack 3 (FP3) および 10.0 で修正されました。なお、IBM Domino 8.5.x での修正予定はありません。
修正されたりリースでは、動的ポリシーにリストされたユーザーの合計バイト数の 64KB 制限が 4GB に拡張されています。

回避策は、ユーザーを明示的に動的グループポリシーにリストしないことです。代わりにグループを作成し、ポリシー割り当てではそのグループ名だけを使用してください。

また、どのような種類のポリシーを適用する場合でも、ユーザーを明示的に指定するのではなくグループを指定することを強く推奨します。


関連文書
(英文)「Domino server performance issue or hang with dynamic policies」(Technote #1569853)

Document information

More support for: IBM Domino

Component: Performance / Hang

Software version: 8.5, 9.0, 9.0.1

Operating system(s): AIX, Windows

Reference #: 1617971

Modified date: 26 December 2018