私はプログラムとメモリスワッピングが発生しているという強い疑いを持っています。私はそれが事実であると信じている理由は、プログラムが時折ハングするという事実です。ロギングを開始したとき、プログラムが異なる場所にぶら下がり始め、さまざまな方法が実行されるため、事態はさらに混乱しました。
現時点では、プログラム専用の2GBの32ビットIBM Javaを使用していますので、私はそのメモリにぴったりです。 x64への変更は可能ですが、それ以前:
質問1:実行時にプログラムによるメモリスワッピングを検出できますか?または、どのようにすれば、少なくとも、myslefにスワッピングが発生しているというヒント(ロギングを介して)を与えることができますか?
今のところ、私はメモリ使用量ログを入手できませんが、xmxが2GIGであれば、それはちょうどRAMであり、メモリスワップが発生すると、十分なメモリがないと思われますか?
質問2:私は今考えているように、ガベージコレングの開始を記録できますか?実行時に検出できますか?
EDIT:前記プログラムは、大量のデータをデータベースからエクスポートします。
EDIT2: givem JVMのメモリスワップをプログラムで禁止することはできますか?Java - 実行時のメモリスワップの検出
答えて
実行時にメモリスワップをプログラムで検出できますか?
スワップがどれだけ使用されているか、スワップパーティションに書き込まれている量をOSで監視することができます。あなたはこれをどうyulu OSに依存するのですか?
メモリスワップが発生すると、十分なメモリがないように見えますか?
メモリが十分な場合、スワッピングは発生しません。注意:スワッピングが発生しなくても、より多くのメモリが役に立たない場合もあります。ほとんどの場合、アプリケーションメモリ以外のものが必要です。ディスクキャッシュも重要です。
ガベージコレンナリングの開始をログに記録できますか?
他のプロセスで実行することはできますが、ストップワールドアクションが実行されている間は何も実行できません。 x64のに
の変更は可能ですが、その前に:
のJava 5.0は、32ビットが最善であるかもしれ私が言っていた最後のバージョンでした。それは10年前のことでした。
プログラムは、データベースから大量のデータをエクスポートします。
1 GBは最近のコーヒー杯のコストよりも低いです。数十GBでも気にする必要はありません。数百GBのGBが大きくなっており、数TBの場合は面白い問題があります。私のクライアントの中には3 TBのマシンがあり、非常に大量のデータを持っています。 100 TB。
私は、私の最も古い娘に何年も使われていなかった古いコンピュータを与え、彼女は私の8歳の娘にそれを与えました。それは24 GBのメモリを持ち、主にYouTubeのビデオを見るために使っています。
givem JVMのメモリスワップをプログラムで禁止することはできますか?
JNIを使用してメモリにロックすることはできますが、マシンがヒープスペースをスワップすると、マシンは死に至ることがあります。
- 1. Java実行時実行
- 2. 実行時のJavaアノテーションとコード実行
- 3. 実行時のYii検証?
- 4. Javaリフレクション実行時のパフォーマンス
- 5. javaアップデートプロパティファイルの実行時間
- 6. のJava - 同時実行:LinkedBlockingQueue、
- 7. フロイドのサイクル検出の実行時の複雑さ
- 8. 同時実行の問題を検出するためのツール
- 9. 生産と開発の検出実行時の対応
- 10. Javaクラスを使用して実行時にOSを検出する方法は?
- 11. 実行時にルビーバイナリのコンパイルレイアウトを検出する
- 12. NSISから既に実行中のJavaアプリケーションを検出する
- 13. java(Android)の2行の衝突検出
- 14. 実行時のJava未知の子タイプ
- 15. 実行時のScala/Javaアプリケーションのリモートプロビジョニング
- 16. Javaプログラムの複数の実行時間
- 17. Javaコードの実行時間の問題
- 18. 複数のJavaエージェントの同時実行
- 19. Java PL/SQL '即時実行'
- 20. Javaパッケージ実行時エラー
- 21. 同時実行Java 8
- 22. 実行時のJavaの実行時の基底クラスのランタイム判定
- 23. xUnit検出の検出と実行中のテスト
- 24. ランダム化バイナリ検索の実行時間
- 25. javaのBouncyCastleProvider長時間実行
- 26. Javaメソッドの実行時間が高い
- 27. JavaでのCPU実行時間
- 28. JBERET Javaバッチプログラム実行時のZOSエラー
- 29. Javaでのスレッド実行時間
- 30. Javaの同時実行性とタスク
OSのもので、Javaのものではありません – the8472
/proc/swapsはそのような情報を記録します。ファイルを監視することによって、スワップ動作を検出することができます。つまり、OSはアプリケーションではなくメモリスワップを決定します。 – JQian
スワッピングとガベージコレクションは全く異なる2つのことであることをご理解いただきたいと思います。物理メモリが不足すると、オペレーティングシステムがスワップするため、64ビットJVMに切り替えても実際の物理メモリは変更されません。 64ビットJVMはより多くのメモリを使用できるため、物理メモリが不足する可能性もあります。 – Holger