回答:
mosquittoブローカーは、永続ストアの外部データベースへのオフロードをサポートしていません。dbファイルは、ブローカーがクラッシュまたはシャットダウンした場合のメモリー内データベースのバックアップにすぎません。
オフラインクライアント用にキューに入れられたメッセージの数が多い場合、または保持されたメッセージが大量にある場合、メモリが消費されます。
最善のpersistent_client_expiration
方法は、長時間ログオンしていないクライアントのキューに入れられたメッセージを削除するオプションを設定することです。このオプションの詳細はmosquitto.conf man ページにあります。
それ以外の場合は、永続データベースのプロセス外格納をサポートする別のブローカーを使用することを検討する必要があります。moscaのようなものは、mongoまたはredisをバッキングストアとして使用するように構成できます。