2016-11-17 9 views
0

私は春バッチを使用してRabbit MQをモニタリングしています。私は1秒ごとにバッチを走らせてストレスストレスを与えようとしていました。これまでのところ滑らかに走っていますが、Used Perm Generation spaceは成長を続けています。バッチが開始されたときは、実行中の30 Hoursの後に今は30 MBでした。これは300 MBです。メモリを占有する最大の目的は、春バッチ、HSQLDBは​​時間の経過とともに成長しています

org.hsqldb.persist.RowStoreAVLMemory 28619232 
org.hsqldb.Database 96661000 

この2つのオブジェクトは、総メモリの32%を保持しています。

HSQLDBは、再起動する必要がないため、どのように5分以上経過しても情報が保持されないようにしてください。

+0

ジョブリポジトリ用の実際の外部データベースを使用します。 –

答えて

0

デフォルトのオールインメモリテーブルでHSQLDBを使用しています。すべてのデータはメモリに保持されます。このタイプのテーブルは非常に高速な操作を可能にし、データが一定の限界を超えて成長しないユースケースに最適です。

古い行を定期的に削除するタスクを追加できます。これは、新しい行が挿入された後のタイムスタンプに従って古い行を削除する、増加するテーブルで宣言されたTRIGGERです。

また、ディスク上のデータを主に保持するCACHEDテーブルを使用することもできます。 JDBC接続URLの末尾に;hsqldb.default_table_type=cachedを追加できます。この場合、URLはファイルベースのデータベースであり、メモリ内のデータベースではありません。

HSQLDBは​​、必要に応じて外部データベースと同じように動作できます。

関連する問題