問題タブ [jvm-arguments]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
debugging - 「server=y」のデバッグに jvm 引数を使用するのはなぜですか?
引数を渡すときに Java コードを使用してデバッグしているときに、server=y という引数が 1 つあります。なぜそれを使用するのですか? 誰か詳細を教えてください???
以下の引数を使用しました - -Xdebug -Xrunjdwp:transport=dt_socket,address=4010,server=y,suspend=y
jvm-arguments - Berkeley DB JE を実行するための最適な Java オプションは何ですか?
BDB JE に約 5 億 200 万行を挿入するマシンがあります。キーと値の例は次のとおりです。
すべてのキーと値はほぼ同じ長さです。JVM は、次のパラメーターで開始されます。
それでも、約 50,000,000 行に達すると、JVM は「強制終了」されます (「強制終了」というメッセージが表示されますが、どのように/誰によって強制終了されたのかわかりません)。ガベージコレクションを実行しようとすると、十分なメモリなどを解放できないと思います。しかし、その量の -Xmx があれば、問題はないと思います。
deferredWrites を使用しており、ログ ファイルのサイズは 100MB に設定されています。DPL から Base API に切り替えても違いはありませんでした。
JDK 6.0 と SUSE x86_64 を 12GB の RAM で使用しています。残りの RAM を必要とする他のプロセスがあるため、この挿入タスクに実際に 9GB 以上を割り当てることはできません。
JVM:
この問題を解決するためのヒントをいただければ幸いです。
java - New Relic が大量の tomcat メモリを消費するのはなぜですか?
最近、New Relic を使用して tomcat 7.0.6 サーバーでホストされている実稼働 Web アプリケーションを監視し始めましたが、この tomcat のメモリ フットプリントが継続的に増加し、1 週間以内にすべてのサーバー (AWS High-Memory Double Extra Large Instance) を使い果たすことがわかりました。 ) メモリが応答しなくなった場合、元に戻す唯一の方法は、再起動することです。Tomcat の起動中に Xms および Xmx 引数を提供しますが、数時間以内に Tomcat プロセスのメモリ使用量が Xmx 値を超え、すべてのサーバー メモリがなくなるまで増加し続けます。プロセスコマンドは次のとおりです。
理想的には、このプロセスが 8 GB を超えるメモリを使用しないことを期待しますが、数時間以内に 10 GB を超え、数日以内に 20 GB を超え、このサーバー上の他のすべてが影響を受けます (メモリ使用量を確認するには「top」を使用します)。 . これはどのように可能ですか?
java - -Xmxの設定が高すぎると、使用可能なRAMがある場合でも、JVMが失敗することがあるのはなぜですか?
基本的に、一部のコンピューターでは、JVMオプション-Xmx(最大ヒープサイズ)を設定すると、システムに十分なRAMがある場合でも、JVMの初期化に失敗することがあります。
したがって、たとえば、4GBのマシンでは、-Xmx1024mが失敗しますが、-Xmx800mは機能します。1GBのマシンでも2GBのマシンでも理解できましたが、4GBのマシンでは、特にWindowsやLinuxなどがRAMをスワップアウトできることを考えると、なぜこれが失敗するのでしょうか。
最大ヒープサイズを減らすようにというスレッドや質問をたくさん見ましたが、なぜ失敗するのかを説明することはできません。これが私が本当に探しているものです。
また、特定のサイズまで必要なだけメモリを消費するとはどういう意味ですか?
java - 3GB キャッシュを備えた 4GB JVM の適切な JVM/GC チューニング
Web アプリケーション用に JVM を構成するための適切な設定を探しています。古い/若い/パーマの世代について読んだことがありますが、この構成でこれらのパラメーターを使用するのはうまくいきません。
4GBのうち、約3GBがキャッシュ( EhCacheを使ったアプリカティブキャッシュ)に使われているので、それを考慮して最適な設定を探しています。参考までに、キャッシュはアプリケーションの存続期間中は静的です (ディスクからロードされ、期限切れになることはありません) が、頻繁に使用されます。
私はすでにアプリケーションのプロファイリングを行い、DB クエリ、アプリケーションのアーキテクチャ、キャッシュ サイズなどに関する最適化を実行しました。ここで JVM 構成のアドバイスを探しています。ガベージ コレクターの99% のスループットを測定したところ、フル GC の実行時に 6 ~ 8 秒の一時停止がありました (約 1/2 時間に 1 回)。
現在の JVM パラメータは次のとおりです。
これらのパラメーターは、かなり前に記述されているため、完全にオフになっている可能性があります... アプリケーションがそれほど大きくなる前に。
Java 1.5 64 ビットを使用しています。
改善の可能性はありますか?
編集:マシンには4つのコアがあります。
hadoop - GenericOptionsParser の -D オプションで複数のジェネリック引数を設定できますか?
GenericOptionsParser を介して複数の構成パラメーターを Hadoop ジョブに渡したいと考えています。
「-D abc=xyz」を使用すると、1 つの引数を渡すことができ、構成オブジェクトから同じ引数を取得できますが、複数の引数を渡すことはできません。
複数の引数を渡すことは可能ですか?もしそうなら、どのように?
java - java getInputArguments() は、システム プロパティ値にスペースが含まれている場合、不適切な結果を返します。
主な方法を考えてみましょう:
プログラムの実行結果:
少なくとも、これは Mac 上の Oracle/Sun の jvm 6 での動作です) & win での動作です (他の場所ではテストしていません)。
システムプロパティにスペースが含まれている場合に信頼できる入力引数を取得する方法を知っている人はいますか?
java - Xmx引数をEclipseからantスクリプトに渡す
Eclipse を実行する Ant スクリプトに-Xms
and引数を渡そうとしています。-Xmx
しかし、常に取得することはできません:
Antスクリプトを実行するためのEclipseランタイム引数への簡単なポインタはありますか?
jvm - output.cfgファイルが生成される-XX:+ PrintCFGToFile jvmオプションを使用しますか?
JDK 6のfastdebugビルドをインストールし、次のコマンドを実行しました。
java -XX:+PrintCFGToFile Test
しかし、印刷された情報を含むファイルが見つかりませんでした... LinuxとWindowsの両方の運用システムで試しましたが、成功しませんでした。諦めた後、ソース(OpenJDK 7ソース、Ubuntu)からJDKをビルドしましたが、成功しませんでした。同じように、印刷"VM option '+PrintCFGToFile'"
されますが、クラスが実行されたディレクトリにも、JDKbinディレクトリにもファイルが作成されませんでした。ファイルシステムの.cfg"、何も見つかりません...ソースを確認しましたが、ファイルの名前は実際には" output.cfg "のようです(間違っていない場合はCFGPrinterです)。
どうしたの?追加のオプションを指定する必要がありますか?制御フローグラフ情報を含むこのファイルをどこでどのように取得しますか?
java - JVM が現在使用している GC アルゴリズムを確認する方法はありますか
私は Java 5 を使用しており、カスタム サーバー アプリケーションには GC チューニングが必要です。ピーク時に 15 ~ 20 秒の一時停止が発生することがあります。次のようなJVM引数を持つサーバークラスマシンでJava 5を実行しています-server -d64
JVM が現在使用している GC アルゴリズムを確認する方法はありますか?
http://docs.oracle.com/javase/1.5.0/docs/guide/vm/gc-ergonomics.html
サーバー VM を実行しているサーバー クラスのマシンでは、ガベージ コレクター (GC) が以前のシリアル コレクター ( -XX:+UseSerialGC
) からパラレル コレクター ( -XX:+UseParallelGC
) に変更されました。-XX:+UseSerialGC
java コマンドのコマンド行オプションを使用して、このデフォルトをオーバーライドできます。
1) 私が知りたいのは、それが本当に起こっていることですか?
私の次の質問は、コマンドライン引数に次を追加したことです
2) GC ログのロギングを除いて、実行中の JVM のパフォーマンスまたは動作に影響がありますか?