restoreReclaimPages ties up pages until next tranlog
The command SystemRepository>>restoreReclaimPages generates a commit to
record its results. A few additional pages are used in recording that
commit record. But the pages reclaimed, together with the pages in
the commit record, do not become available to the system until the
stone disposes that commit record.
Unfortunately, the stone doesn't actually process commit records unless
actively replaying a tranlog or the system exits restore mode and is
brought on-line. So repeated use of restoreReclaimPages will tie up more
and more pages in the associated commit records until the next tranlog is
replayed. In systems that repeat restoreReclaimPages while waiting for
the next tranlog, you can actually run out of free pages when you might
be expecting to get some back.
Either limit the number of iterations of restoreReclaimPages used between
two tranlog restores, or use statmonitor/vsd to monitor the available
FreePages, and stop using restoreReclaimPages when the value becomes too low.