※当サイトの記事には、広告・プロモーションが含まれます。

JavaのコマンドでJVM関連の情報を取得するにはjcmdコマンドが推奨らしいのだが...

www.linuxfoundation.org

⇧ 学習することがまた増えるんかね...

「OpenTofu」誕生の経緯とかは、

zenn.dev

Didn't HashiCorp adopt BUSL to deter vendors who were using Terraform but not contributing back?
訳)HashiCorpがBUSLを採用したのは、Terraformを使っていながら貢献しないベンダーを抑止するためではなかったのか?

HashiCorp社がライセンス変更した背景にはOSSにフリーライドするベンダーの存在がありました。オープンソースコミュニティに貢献せず自らの商業目的のためだけにOSSを利用することはオープンソースの精神に反するからだとブログに記載していました。

TerraformからforkされたOpenTofuが利用可能になりました

⇧ 上記サイト様がまとめてくださってます。

最終的に行き着く先は、お金の問題になってくるってことですかね...。

www.publickey1.jp

⇧「RHELRed Hat Enterprise Linux)」でも似たようなこと言ってましたね...。

JavaのコマンドでJVM関連の情報を取得するにはjcmdコマンドが推奨らしいのだが...

何やら、

cco.hatenablog.jp

jcmd は Oracle 社のドキュメントでは推奨ツールとして扱われており、jps や jmap, jstat のような既存ツールは "Experimental" とされています。このため、既存ツールから jcmd への移行が進められる可能性があります。例えば Experimental であった jhat は Java 9 から削除されます。

jcmd と既存ツールの対応 - unnamed

⇧ とのことらしい。

上記サイト様では一次情報については記載してくれていないので、情報の真意は定かではないのですが、Oracleの公式のドキュメントによりますと、

docs.oracle.com

The jcmd utility is used to send diagnostic command requests to the JVM, where these requests are useful for controlling Java Flight Recordings, troubleshoot, and diagnose JVM and Java Applications. It must be used on the same machine where the JVM is running, and have the same effective user and group identifiers that were used to launch the JVM.

https://docs.oracle.com/javase/8/docs/technotes/guides/troubleshoot/tooldescr006.html

⇧ とのことで、詳しくは「jcmd」コマンドのドキュメントを参照して、とのこと。

で、「jcmd」コマンドのドキュメントのページを参照してみたけど、

docs.oracle.com

Description

The jcmd utility is used to send diagnostic command requests to the JVM. It must be used on the same machine on which the JVM is running, and have the same effective user and group identifiers that were used to launch the JVM.

https://docs.oracle.com/javase/8/docs/technotes/tools/windows/jcmd.html

⇧ 特に、「jcmd」コマンドの使用を推奨するような記載は見当たらない...

で、更にググったところ、

docs.oracle.com

注:

この項で説明するコマンド行ユーティリティのいくつかは、試験的なものです。jstackjinfo、およびjmapユーティリティが、試験的なユーティリティの例です。jcmdJDK 8の新しいJDKプロファイリング・ユーティリティです。以前のjstackjinfoおよびjmapユーティリティのかわりに最新の診断ツールjcmdの使用をお薦めします。

https://docs.oracle.com/javase/jp/8/docs/technotes/guides/troubleshoot/tooldescr001.html

⇧ 見つかりました、う~む、ドキュメントの情報が見つけ辛い...

ただ、「jstat」については触れられていないのだが、「jstat」のドキュメントで「jstat」についても『試験的なもの』って説明があったような気がするので、上記の説明で「jstat」も当てはまるってことを察しろということなんかね...

相変わらず、安定の不親切さ、と言うか、「jstat」のドキュメントを事前に参照して無かったら、永久に分からんやんけ...流石はOracleさん...

ドキュメントで『試験的なユーティリティの例』として紹介されているもの以外についての参照リンクを載せたりしておいたりとかできないもんなのかね?

とは言え、jstatのほうが取得できる情報の説明がある。と言うか、jcmdで取得できる情報が分からん...

推奨としてる割には、「jcmd」のドキュメントが役に立たな過ぎるんだが...

「jstat」のドキュメントを見ると、

docs.oracle.com

⇧ 例えば、「-gc option」オプションを指定した場合に取得できる情報の項目の全量として、

No. 項目 内容
1 S0C Survivor領域0の現在の容量(KB)。
2 S1C Survivor領域1の現在の容量(KB)。
3 S0U Survivor領域0の使用率(KB)。
4 S1U Survivor領域1の使用率(KB)。
5 EC Eden領域の現在の容量(KB)。
6 EU Eden領域の使用率(KB)。
7 OC Old領域の現在の容量(KB)。
8 OU Old領域の使用率(KB)。
9 MC メタスペースの容量(KB)。
10 MU メタスペースの使用率(KB)。
11 CCSC 圧縮されたクラス領域の容量(KB)。
12 CCSU 使用されている圧縮されたクラス領域(KB)。
13 YGC Young世代のガベージ・コレクション・イベントの数。
14 YGCT Young世代のガベージ・コレクション時間。
15 FGC フルGCイベントの数。
16 FGCT フル・ガベージ・コレクションの時間。
17 GCT ガベージ・コレクションの総時間。

⇧ って説明を入れてくれてるのだけど、「jcmd」で取得できる項目の全量が「jcmd」のドキュメントを見ても見当たらない...

探し方が下手くそ過ぎるとは思うんだけど、もうちょっと知りたい情報に辿り着きやすくして欲しい気はする...

毎度モヤモヤ感が半端ない...

今回はこのへんで。