Java で CPU メモリ使用量とディスク使用量を追跡する方法

この記事では、Java での CPU メモリとディスク使用率の追跡に役立つ初期のコマンド、ツール、およびテクニックについて説明します。





Java ツールは、Java バイトコードの構造とプロセスを監視します。Java プロファイラーは、すべてのシステム コマンドとプロセッサーの使用状況を追跡します。これにより、いつでも資金を呼び出すことができます。





標準プロファイラーは豊富な知識を提供しますが、その価値はデバッグの目的によって異なります。Stackify Retraceなどの一部のツールは、すべてのアプリケーションとサーバーのログを集約し、自動リクエスト ログを設定および追跡するのに適しています。ツール: Stackify のアプリケーション パフォーマンス管理、Retrace - 埋め込みロギングとコード プロファイリングを通じて、Java ユーザーがアプリケーション設計をよりよく理解できるようにします。実装された集中化された構造化されたログと一緒に、すべてのアプリケーションとサーバーの単一ポイントからすべてのアプリケーション ログにアクセスすることができます。





ここでは、コードを最適化するために Java でメモリと CPU を追跡する方法を示します。  





Java で CPU メモリとディスク使用量を監視する 5 つの方法





  1. CPU メモリ使用量とディスク使用量を追跡するための基本的な Linux コマンド





    a)無料 –m





    このコマンドは、使用可能なメモリと占有されているメモリを仮想マシンに転送します。





    b)トップ





    このコマンドは、CPU とメモリの使用量を表示するためのものです。





    キーボードで 1 を入力すると、top起動して、可能なすべての CPU とそれぞれの使用率を表示します。





    CPU0、CPU1、CPU2、CPU3 の合計 4 つの CPU があり、それらのすべての使用状況の統計があります。





    c) meminfocpuinfo





    メモリと仮想マシン プロセッサに関する詳細情報については、次のコマンドを使用してください。





    $ 猫 / proc / cpuinfo





    $ 猫 / proc / meminfo





    d) 特定のプロセスの CPU メモリとディスク使用量。





    $ ps -p [pid] -o% cpu,% mem, cmd





    CPU Java. .





    e) Java .





    $ps uH –p [pid]





    .





    CPU .





    , , . CPU.





    df –k  –>





    lsof -i :<port> –> ,





    lsof –i: tcp –> TCP





    netstat -plunt  –>









  2. ManagementFactory . MemoryMXBean. MemoryMXBean:





    MemoryMXBean memoryMXBean = ManagementFactory.getMemoryMXBean();
    
    System.out.println(String.format(“Initial memory: %.2f GB”, 
    
      (double)memoryMXBean.getHeapMemoryUsage().getInit() /1073741824));
    
    System.out.println(String.format(“Used heap memory: %.2f GB”, 
    
      (double)memoryMXBean.getHeapMemoryUsage().getUsed() /1073741824));
    
    System.out.println(String.format(“Max heap memory: %.2f GB”, 
    
      (double)memoryMXBean.getHeapMemoryUsage().getMax() /1073741824));
    
    System.out.println(String.format(“Committed memory: %.2f GB”, 
    
      (double)memoryMXBean.getHeapMemoryUsage().getCommitted() /1073741824));
          
          



    , , . :





    : Java





    : , Java





    : JVM. OutOfMemoryException ,





    : JVM





  3. (-Agentpath)





    java Windows, Linux masOS. -Agentpath - .





    :





    java –agentpath:/usr/profiler/lib/[agent].so  -jar application.jar





    , .





    JProfiler Yourkit .





  4. Java (-Javaagent)





    Java -javaagent , . Java :





    a) premain()  





    b) Pre-Main MANIFEST.MF JAR,





    c) JVM –javaagen





    java -javaagent:agent.jar -jar application.jar





    premain() main() , -javaagent -jar.





    , main() , agentmain() . Agent-Main MANIFEST.MF .





  5. (-Agentlib)





    -Agentlib - , JVM . :





    1) HPROF 





    2) JVM





    1) HPROF: 





    HPROF CPU, Java. . –agentlib:hprof –Xrunhprof HPROF.





    JVM , , java.hprof.txt. 





    java agentlib:hprof=heap=sites Hello.java





    HPROF , .





    javac -J-agentlib:hprof=heap=sites Hello.java





    2)





    –agentlib:jdwp . JVM





     java -agentlib:jdwp=transport=dt_socket,address=127.0.0.1:9001, server=y,suspend=y –jar application.jar 





    , IDE.





    Java でのデバッグ方法には、限定/リモートのコマンドを使用します。指定されたポートでレコードを監視するアプリケーションは、ステップ (ii) が完了するまで先に進みません。





    アプリケーションからのエントリのスクリーンショット:トランスポート dt_socket の監視 (アドレス: 9001)





    IDE のデバッグ モードでプロジェクトを初期化し、ホストとポートに暗号化をアタッチします。





    IDE を使用して、単一のサーバーでコードをデバッグします。








All Articles