如果使用基于文件的数据存储库作为消息的持久性存储库,则可以监视磁盘使用情况并在必要时压缩磁盘。
可构建基于文件的消息存储库,以便将消息存储在与保存它的物理目的地对应的目录中。在每个物理目的地的目录中,大多数消息都存储在一个由大小可变的记录组成的文件中。 (为减少文件碎片,大小超过可配置阈值的消息将存储在单独的文件中。)
由于各种大小的消息先持久化,然后从记录文件中删除,因此可能会在文件中形成漏洞,从而使得文件中的空闲记录无法再次使用。
为管理未使用的空闲记录,命令实用程序包含用于监视每个物理目的地的磁盘利用率的子命令,以及在磁盘利用率降低时用于回收空闲磁盘空间的子命令。
imqcmd metrics dst -t q -n myQueue -m dsk -u admin
此命令将产生类似如下内容的输出:
-------------------------------------- Reserved Used Utilization Ratio -------------------------------------- 806400 804096 99 1793024 1793024 100 2544640 2518272 98 |
子命令输出中的各列具有以下含义:
表 6–2 物理目的地磁盘占用度量
度量 |
描述 |
---|---|
保留的 |
所有记录使用的磁盘空间(以字节为单位),其中包括保存活动消息的记录以及等待再次使用的空闲记录。 |
已用的 |
保存活动消息的记录使用的磁盘空间(以字节为单位)。 |
利用率 |
磁盘利用模式取决于使用特定物理目的地的消息发送应用程序的特征。根据流入和流出物理目的地的消息的相对数量,以及消息的相对大小,保留的磁盘空间可能会随时间而增加。
如果消息生产率大于消息使用率,则通常应该重新使用空闲记录,且应提高利用率。但是,如果消息生产率等于或小于消息使用率,则应降低利用率。
通常,应尽量使保留的磁盘空间保持一个稳定的量,并使磁盘利用率保持较高水平。一般规则是:如果系统达到稳定状态(其中保留的磁盘空间量较为稳定),且磁盘利用率较高(大于 75%),则不必回收未使用的磁盘空间。 如果系统达到稳定状态,而利用率较低(低于 50%),则可压缩磁盘以回收空闲记录占用的磁盘空间。
可以使用 compact dst 子命令压缩数据存储库。 下面是 compact dst 子命令的语法:
compact dst [-t destType -n destName]
此子命令为指定类型和名称的物理目的地压缩基于文件的数据存储库。如果未指定目的地类型和名称,则会压缩所有目的地。 压缩之前必须先暂停物理目的地。
如果保留的磁盘空间随时间持续增加,请通过设置目的地内存限制属性和限制行为来重新配置目的地的内存管理(请参见表 15–1)。