2017-09-26 17 views
-1

私はFlywayを使用して300にデプロイします。データベース。私がやったのはflywayコマンドを持つcmdファイルです - 300行のデータベースのそれぞれに1行ずつ。FlyWayがJVMメモリ設定を取得しない

このように:
flyway -configFile = -url = migrate。

cmdファイルにはこのような行が300あり、実行がシーケンシャルなときにはうまくいきます。明らかに時間がかかります。私はパラレルでそれを実行したい場合は

私はそうのようなコマンドの先頭に「スタート」を追加する必要があります:

開始-configFile = < confファイルパス> -url = < DBのURLをフライウェイ>マイグレーション

このアプローチで直面している問題は、約100台のDBでマイグレーションした後、Microsoft-Windows-Resource-Exhaustion-DetectorがLow Virtual Memory状態を検出したことです。今私はJVMのメモリを設定する方法を知っていて、さまざまなオプションを試してみましたが、何の違いもないと思います。私はFlyWayがJVM設定を完全に無視していると思う。

私は、Flywayが実行されているWindowsサーバー(6ビット)上に16GBの物理メモリを持っています。 並列実行が発生したとき - タスクマネージャーでチェックしたところ、使用量が3GBを超えていません。 JREのバージョンは64ビットです。 _Java_Optionsを設定しました。 JavaコントロールパネルでJVMメモリを設定しようとしましたが、何も動作しないようです。

ありがとうございます

答えて

0

実行する移行の数を並行して制限する必要があります。あなたの説明から、あまりにも多くのRAMを使用している300を実行しようとしているようです。並行して10回試し、そこから作業してください。

LinuxベースのアプローチについてはBest strategy to run multiple flyway migration in parallelを参照してください。 git bashを使ってWindows用gitをインストールすると、これを試すためのLinuxツールを入手する便利な方法です。

+0

FlyWayインストールには、\ jre \ lib \ amd64 \ jvm.cfgというファイルがあります。そのファイルで - 私は以下を追加しました:-Xms64m -Xmx64m -Xss8m -XX:-UseParallelGC。今、私は30スレッドをparalledで実行していると、実行の開始前に9 GBの空きメモリがあります。何が間違っているのですか? 20スレッドが成功する。残りの10の場合、私はこのエラーが発生します。VMの初期化中にエラーが発生しました オブジェクトヒープに十分なスペースを確保できませんでした。 – Mihir

+0

ここからわかりません。多分あなたの並行レート制限は20です。 –

関連する問題