Skip Navigation
Show nav
Dev Center
  • Get Started
  • ドキュメント
  • Changelog
  • Search
  • Get Started
    • Node.js
    • Ruby on Rails
    • Ruby
    • Python
    • Java
    • PHP
    • Go
    • Scala
    • Clojure
    • .NET
  • ドキュメント
  • Changelog
  • More
    Additional Resources
    • Home
    • Elements
    • Products
    • Pricing
    • Careers
    • Help
    • Status
    • Events
    • Podcasts
    • Compliance Center
    Heroku Blog

    Heroku Blog

    Find out what's new with Heroku on our blog.

    Visit Blog
  • Log inorSign up
View categories

Categories

  • Heroku のアーキテクチャ
    • Dyno (アプリコンテナ)
      • Dyno Management
      • Dyno Concepts
      • Dyno Behavior
      • Dyno Reference
      • Dyno Troubleshooting
    • スタック (オペレーティングシステムイメージ)
    • ネットワーキングと DNS
    • プラットフォームポリシー
    • プラットフォームの原則
  • Developer Tools
    • コマンドライン
    • Heroku VS Code Extension
  • デプロイ
    • Git を使用したデプロイ
    • Docker によるデプロイ
    • デプロイ統合
  • 継続的デリバリーとインテグレーション
    • 継続的統合
  • 言語サポート
    • Node.js
      • Working with Node.js
      • Node.js Behavior in Heroku
      • Troubleshooting Node.js Apps
    • Ruby
      • Rails のサポート
      • Bundler の使用
      • Working with Ruby
      • Ruby Behavior in Heroku
      • Troubleshooting Ruby Apps
    • Python
      • Working with Python
      • Python でのバックグランドジョブ
      • Python Behavior in Heroku
      • Django の使用
    • Java
      • Java Behavior in Heroku
      • Working with Java
      • Maven の使用
      • Spring Boot の使用
      • Troubleshooting Java Apps
    • PHP
      • PHP Behavior in Heroku
      • Working with PHP
    • Go
      • Go の依存関係管理
    • Scala
    • Clojure
    • .NET
      • Working with .NET
  • データベースとデータ管理
    • Heroku Postgres
      • Postgres の基礎
      • Postgres スターターガイド
      • Postgres のパフォーマンス
      • Postgres のデータ転送と保持
      • Postgres の可用性
      • Postgres の特別なトピック
      • Migrating to Heroku Postgres
    • Heroku Data For Redis
    • Apache Kafka on Heroku
    • その他のデータストア
  • AI
    • Working with AI
    • Heroku Inference
      • Inference API
      • Quick Start Guides
      • AI Models
      • Inference Essentials
    • Vector Database
    • Model Context Protocol
  • モニタリングとメトリクス
    • ログ記録
  • アプリのパフォーマンス
  • アドオン
    • すべてのアドオン
  • 共同作業
  • セキュリティ
    • アプリのセキュリティ
    • ID と認証
      • シングルサインオン (SSO)
    • Private Space
      • インフラストラクチャネットワーキング
    • コンプライアンス
  • Heroku Enterprise
    • Enterprise Accounts
    • Enterprise Team
    • Heroku Connect (Salesforce 同期)
      • Heroku Connect の管理
      • Heroku Connect のリファレンス
      • Heroku Connect のトラブルシューティング
  • パターンとベストプラクティス
  • Heroku の拡張
    • Platform API
    • アプリの Webhook
    • Heroku Labs
    • アドオンのビルド
      • アドオン開発のタスク
      • アドオン API
      • アドオンのガイドラインと要件
    • CLI プラグインのビルド
    • 開発ビルドパック
    • Dev Center
  • アカウントと請求
  • トラブルシューティングとサポート
  • Salesforce とのインテグレーション
  • 言語サポート
  • Java
  • Troubleshooting Java Apps
  • JVM ランタイムメトリクス

JVM ランタイムメトリクス

日本語 — Switch to English

この記事の英語版に更新があります。ご覧の翻訳には含まれていない変更点があるかもしれません。

最終更新日 2022年11月28日(月)

Table of Contents

  • 一般的な情報
  • はじめに
  • 使用可能なメトリクス
  • パフォーマンス上の影響
  • JRuby との使用
  • メトリクス収集の無効化

JVM ランタイムメトリクス機能を使用すると、Java 仮想マシン (JVM) の内部で実行される任意のアプリについて、ヒープメモリとヒープ以外のメモリのほかガベージコレクションアクティビティを表示できます。これには、Java、Clojure、Gradle、Lein、Maven、Scala、JRuby で記述されたアプリが含まれます (ただし、これに限定されません)。

JVM ランタイムメトリクスは、eco​ dyno を除くすべての dyno で使用できます。

一般的な情報

言語固有のメトリクスに関する一般的な情報については、言語ランタイムメトリクスの親ドキュメント​を参照してください。

はじめに

「Enhanced Language Metrics」 (拡張言語メトリクス) 機能を有効にしたら (この手順)​に従います)、空のコミットを使用してアプリケーションを再デプロイします。

$ git commit --allow-empty -m "Enable Heroku Metrics"
$ git push heroku master

その後、アプリケーションは JVM のメモリメトリクスのエクスポートを開始します。

使用可能なメトリクス

上記の手順が完了した後、これらのメトリクスが使用可能になるまでに数分かかることがあります。

Heap Memory Usage (ヒープメモリ使用量)

このグラフには、現在選択されているプロセスタイプのすべての dyno にわたる全体的なメモリ割り当て​と最大のヒープメモリ使用量が MB 単位でプロットされます。 選択された時間間隔のサマリー指標 (最新、平均、最大メモリなど) も表示されます。

jvmmetrics1

このグラフを使用する方法

ヒープメモリは、動的に割り当てられたメモリが存在する場所です。 ヒープメモリが予期せず増大している場合、一般的にメモリリークを示しています。 Heroku Java CLI​ などのツールを使用して、詳しく診断することができます。

ヒープ以外のメモリ使用量

このグラフには、現在選択されているプロセスタイプのすべての dyno にわたる全体的なメモリ割り当て​ (注: メモリ割り当ての時系列はこのスクリーンショットではオフに切り替えられています)、最大のヒープ以外のメモリ使用量、最大のバッファプール直接メモリ使用量、最大のバッファプールマップ済みメモリ使用量が MB 単位でプロットされます。 選択された時間間隔のサマリー指標 (最新、平均、最大メモリなど) も表示されます。

jvmmetrics2

バッファプールマップ済みと直接時系列は、選択された時間枠でそれらの種類のメモリ使用量がある場合にのみ表示されます。

このグラフを使用する方法

ヒープ以外のメモリ使用量のグラフは、メモリリークまたは Metaspace およびバッファプールの過剰な消費を特定するために使用できます。これらの種類の問題のデバッグについての詳細は、「Java アプリケーションでのメモリ問題のトラブルシューティング​」を参照してください。

Aggregate Time Spent in Garbage Collection (ガベージコレクションに費やされた合計時間)

このグラフには、各ロールアップ​中にガベージコレクションの実行に費やされた合計時間が、新しい世代と古い世代に分類されてプロットされます。凡例には、ロールアップでガベージコレクターの実行に費やされた時間の割合の内訳が表示されます。

jvmmetricsgc

Aggregate Garbage Collections (合計ガベージコレクション)

このグラフには、各ロールアップ​中にガベージコレクターが実行した合計回数が、新しい世代と古い世代に分類されてプロットされます。

jvmmetricsgc2

これらのグラフを使用する方法

ガベージコレクションのグラフは、GC とヒープの両方を調整するのに使用できます。多くのパフォーマンスの問題と同じように、ヒープサイズの選択は、バランスの問題です。ヒープが小さすぎると、プログラムでは GC の実行に時間がかかりすぎます。しかし、ヒープが非常に大きいと、それらの一時停止の期間が増加します。確かな経験則としては、完全な GC の後に GC グラフが示す占有率が 30% になるようヒープのサイズを設定することです。

パフォーマンス上の影響

言語固有のランタイムに関する指標では、dyno 上で実行する JVM からデータが収集されます。 JVM メトリクスの収集がアプリケーションのパフォーマンスに及ぼす全般的な影響は最小限です。テストでは、以下のことが観察されています。

  • ピークヒープ使用量が推定で 1MB 増加
  • 約 200 のクラスが追加でロードされ、Metaspace (オフヒープ) メモリの追加は 1MB 未満
  • 1 つの追加スレッド

JRuby との使用

この機能を JRuby と一緒に使用するには、次のように実行することによって heroku/jvm​ buildpack をアプリと一緒に含める必要があります。

$ heroku buildpacks:add -i 1 heroku/jvm

その後、アプリケーションを再デプロイします。

メトリクス収集の無効化

JVM メトリクスの収集を無効にするには、単純に 「Metrics Preferences」 (メトリクスの環境設定) パネルまたは次の CLI コマンドを使用して 「Enhanced Language Metrics」 (拡張言語メトリクス) トグルをオフに切り替えます。

$ heroku labs:disable "runtime-heroku-metrics" -a "my-app-name"

関連カテゴリー

  • Troubleshooting Java Apps

Information & Support

  • Getting Started
  • Documentation
  • Changelog
  • Compliance Center
  • Training & Education
  • Blog
  • Support Channels
  • Status

Language Reference

  • Node.js
  • Ruby
  • Java
  • PHP
  • Python
  • Go
  • Scala
  • Clojure
  • .NET

Other Resources

  • Careers
  • Elements
  • Products
  • Pricing
  • RSS
    • Dev Center Articles
    • Dev Center Changelog
    • Heroku Blog
    • Heroku News Blog
    • Heroku Engineering Blog
  • Twitter
    • Dev Center Articles
    • Dev Center Changelog
    • Heroku
    • Heroku Status
  • Github
  • LinkedIn
  • © 2025 Salesforce, Inc. All rights reserved. Various trademarks held by their respective owners. Salesforce Tower, 415 Mission Street, 3rd Floor, San Francisco, CA 94105, United States
  • heroku.com
  • Legal
  • Terms of Service
  • Privacy Information
  • Responsible Disclosure
  • Trust
  • Contact
  • Cookie Preferences
  • Your Privacy Choices