4.12. コンパイラーおよび開発ツール
Go Toolset がバージョン 1.16.7 にリベース
Go Toolset がバージョン 1.16.7 にアップグレードされました。主な変更点は、以下のとおりです。
-
GO111MODULE
環境変数が、デフォルトでon
に設定されるようになりました。この設定を元に戻すには、GO111MODULE
をauto
に変更します。 - Go リンカーでは、使用するリソースが少なくなり、コードの堅牢性および保守性が向上します。これは、サポートされているすべてのアーキテクチャーおよびオペレーティングシステムに該当します。
-
新しい
embed
パッケージを使用すると、プログラムのコンパイル中に埋め込みファイルにアクセスできます。 -
io/ioutil
パッケージのすべての機能がio
パッケージおよびos
パッケージに移動しました。io/ioutil
を引き続き使用できますが、io
およびos
パッケージはより適切な定義を提供します。 - Delve デバッガーが 1.6.0 にリベースされ、Go 1.16.7 Toolset に対応するようになりました。
詳細は、Using Go Toolset を参照してください。
(BZ#1938071)
Rust Toolset がバージョン 1.54.0 にリベース
Rust Toolset が、バージョン 1.54.0 に更新されました。主な変更点は、以下のとおりです。
-
Rust 標準ライブラリーが
wasm32-unknown-unknown
ターゲットで利用できるようになりました。今回の機能拡張により、新たに安定化した組み込み関数を含む WebAssembly バイナリーを生成できます。 -
Rust には、アレイの
IntoIterator
実装が含まれるようになりました。今回の機能拡張により、IntoIterator
トレイトを使用して、配列を値ごとに反復し、配列をメソッドに渡すことができます。ただし、array.into_iter()
は、Rust の 2021 版まで値を参照ごとに繰り返します。 -
or
パターンの構文により、パターンのどこにでもネスト化できるようになりました。(例:Pattern(1)|Pattern(2)
ではなくPattern(1|2)
)。 - Unicode 識別子に、Unicode Standard Annex #31 で定義された有効な識別子文字がすべて含まれるようになりました。
- メソッドとトレイトの実装は安定化されました。
- 増分コンパイルはデフォルトで再度有効になります。
詳細は、Using Rust Toolset を参照してください。
(BZ#1945805)
LLVM Toolset がバージョン 12.0.1 にリベース
LLVM Toolset がバージョン 12.0.1 にアップグレードされました。主な変更点は、以下のとおりです。
-
新しいコンパイラーフラグ
-march=x86-64-v[234]
が追加されました。 -
Clang コンパイラーのコンパイラーフラグ
-fasynchronous-unwind-tables
が、Linux AArch64/PowerPC のデフォルトになりました。 - Clang コンパイラーは、C++20 可能性属性 [[likely]] および [[unlikely]] に対応するようになりました。
-
新しい関数属性
tune-cpu
が追加されました。これにより、マイクロアーキテクチャーの最適化はtarget-cpu
属性または TargetMachine CPU とは独立して適用できます。 -
セキュリティーを強化するために、新しいサニタイザー
-fsanitize=unsigned-shift-base
が整数サニタイザー-fsanitize=integer
に追加されました。 - PowerPC ターゲットでのコード生成が最適化されました。
- WebAssembly バックエンドが LLVM で有効にされるようになりました。今回の機能拡張により、LLVM および Clang で WebAssembly バイナリーを生成できます。
詳細は、LLVM Toolset の使用 を参照してください。
(BZ#1927937)
cmake がバージョン 3.20.2 にリベースされました。
Cmake が 3.18.2 から 3.20.2 にリベースされました。バージョン 3.20.2 以前を必要とするプロジェクトで CMake を使用するには、cmake_minimum_required(version 3.20.2) コマンドを使用します。
主な変更点は、以下のとおりです。
-
C++23 コンパイラーモードは、ターゲットプロパティー
CXX_STANDARD
、CUDA_STANDARD
、OBJCXX_STANDARD
、またはコンパイル機能のcxx_std_23
メタ機能を使用して指定できるようになりました。 - CUDA 言語サポートにより、NVIDIA CUDA コンパイラーをシンボリックリンクにすることができるようになりました。
-
Intel oneAPI NextGen LLVM コンパイラーが、
IntelLLVM
コンパイラー ID でサポートされるようになりました。 - Cmake は、Android NDK のツールチェーンファイルとマージすることで、Android のクロスコンパイルを容易にします。
-
cmake(1)
を実行してプロジェクトビルドシステムを生成すると、ハイフンで始まる不明なコマンドライン引数が拒否されるようになりました。
新機能および非推奨になった機能の詳細は、CMake Release Notes を参照してください。
(BZ#1957947)
新しい GCC Toolset 11
GCC Toolset 11 は最新バージョンの開発ツールを提供するコンパイラーツールセットです。このツールセットは、AppStream
リポジトリーにおいて、Software Collection の形式で、Application Streams として利用できます。
GCC Toolset 10 以降、以下のコンポーネントがリベースされています。
- GCC のバージョンを 11.2 に変更
- GDB: バージョン 10.2 へ
- Valgrind: バージョン 3.17.0 へ
- SystemTap: バージョン 4.5 へ
- binutils のバージョンを 2.36 に変更
- elfutils をバージョン 0.185 に更新
- dwz: バージョン 0.14 へ
- Annobin をバージョン 9.85 へ
コンポーネントの完全なリストについては、GCC Toolset 11 を参照してください。
GCC Toolset 11 をインストールするには、root で以下のコマンドを実行します。
# yum install gcc-toolset-11
GCC Toolset 11 のツールを実行するには、以下のコマンドを実行します。
$ scl enable gcc-toolset-11 tool
GCC Toolset バージョン 11 のツールバージョンが、このようなツールのシステムバージョンをオーバーライドするシェルセッションを実行するには、次のコマンドを実行します。
$ scl enable gcc-toolset-11 bash
詳細は、Using GCC Toolset を参照してください。
GCC Toolset 11 コンポーネントが、以下のコンテナーイメージ 2 つでも利用可能になりました。
-
GCC コンパイラー、GDB デバッガー、
make
自動化ツールを含むrhel8/gcc-toolset-11-toolchain
-
SystemTap や Valgrind などのパフォーマンス監視ツールを含む
rhel8/gcc-toolset-11-perftools
コンテナーイメージをプルするには、root で以下のコマンドを実行します。
# podman pull registry.redhat.io/<image_name>
GCC Toolset 11 コンテナーイメージのみがサポートされるようになりました。以前のバージョンの GCC Toolset コンテナーイメージが非推奨になりました。
(BZ#1953094)
.NET がバージョン 6.0 に更新されました。
Red Hat Enterprise Linux 8.5 には .NET バージョン 6.0 が同梱されています。以下は、主な改善点です。
- 64 ビット Arm (aarch64) に対応
- IBM Z および LinuxONE (s390x) に対応
詳細は、.NET 6.0 RPM パッケージリリースノート および .NET 6.0 コンテナーリリースノート を参照してください。
GCC Toolset 11: GCC がバージョン 11.2 にリベースされました。
GCC Toolset 11 では、GCC パッケージがバージョン 11.2 に更新されました。主なバグ修正と機能拡張は、以下のとおりです。
一般的な改善
- GCC は、DWARF バージョン 5 のデバッグフォーマットをデフォルトで使用するようになりました。
- 診断で表示される列番号は、デフォルトでは実際の列番号を表し、複数列の文字を尊重します。
- 直線コードベクターライザは、機能全体を考慮してベクターリングを行います。
- 同じ変数を比較する一連の条件式は、それぞれに比較式が含まれていれば、switch ステートメントに変換することができます。
プロシージャー間の最適化の改善:
-
fipa-modref
オプションで制御される新しい IPA-modref パスは、関数呼び出しの副作用を追跡し、ポイントツー分析の精度を向上させます。 -
fipa-icf
オプションで制御される同一コードのフォールディングパスが大幅に改善され、統一された関数の数が増え、コンパイル時のメモリー使用量が削減されました。
-
リンクタイム最適化の改善:
- リンク時のメモリー割り当てを改善し、ピークのメモリー使用量を削減しました。
-
IDE で新しい
GCC_EXTRA_DIAGNOSTIC_OUTPUT
環境変数を使用すると、ビルドフラグを調整することなく、機械的に読める修正のヒントを要求することができます。 -
-fanalyzer
オプションで実行されるスタティックアナライザーが大幅に改善され、多数のバグフィックスと機能強化が行われました。
言語固有の改善
C ファミリー
- C および C++ コンパイラーは、OpenMP 5.0 仕様の OpenMP コンストラクトおよびアロケータルーチンにおいて、非矩形のループネストをサポートしています。
属性:
-
新しい
no_stack_protector
属性は、スタック保護(-fstack-protector)
をかけてはいけない関数を示します。 -
改良された
malloc
属性は、アロケータとデアロケータの API ペアを識別するために使用することができます。
-
新しい
新しい警告:
-
-Wsizeof-array-div
(-Wall
オプションで有効) は、2 つのsizeof
演算子の除算について、最初の演算子が配列に適用され、除算値が配列要素のサイズと一致しない場合に警告を発します。 -
-Wstringop-overread
は、デフォルトで有効になっており、引数として渡された配列の最後を超えて読み取ろうとする文字列関数の呼び出しについて警告します。
-
警告の強化:
-
-Wfree-nonheap-object
は、動的メモリー割り当て関数から返されていないポインターを使用した割り当て解除関数の呼び出しのインスタンスをより多く検出します。 -
-Wmaybe-uninitialized
は、初期化されていないメモリーへのポインターや参照が、const
-qualified 引数を取る関数に渡すことを診断します。 -
-Wuninitialized
は、初期化されていない動的に割り当てられたメモリーからの読み取りを検出します。
-
C
-std=c2x
および-std=gnu2x
オプションにより、ISO C 規格の次期 C2X 改訂版の新機能がサポートされています。以下に例を示します。-
標準属性がサポートされています。
-
__has_c_attribute
プリプロセッサー演算子がサポートされています。 - ラベルは、宣言の前や複合ステートメントの最後に表示されることがあります。
-
C++
-
デフォルトのモードは
-std=gnu++17
に変更されます。 -
C++ライブラリーの
libstdc++
では、C++17 のサポートが改善されました。 C++20 の新機能がいくつか実装されています。なお、C++20 のサポートは実験的なものです。
各機能の詳細については、C++20 Language Features を参照してください。
- C++フロントエンドは、今後予定されている C++23 ドラフト機能の一部を実験的にサポートしています。
新しい警告:
-
-Wctad-maybe-unsupported
はデフォルトでは無効で、控除ガイドのない型でクラステンプレート引数の控除を行うことについて警告します。 -
-Wrange-loop-construct
は、-Wall
で有効になり、範囲ベースの for ループが不必要でリソース効率の悪いコピーを作成している場合に警告を発します。 -
-Wmismatched-new-delete
は-Wall
で有効になり、不一致な形式の new 演算子や他の不一致な割り当て関数から返されたポインターを持つ delete 演算子の呼び出しについて警告します。 -
-Wvexing-parse
はデフォルトで有効になっており、最も厄介な構文解析ルールを警告します。つまり、宣言が変数定義のように見えても、C++言語では関数宣言として解釈される必要がある場合です。
-
アーキテクチャー固有の改善
64 ビット ARM アーキテクチャー
-
Armv8-R アーキテクチャーは、
-march=armv8-r
オプションでサポートされています。 - GCC は、加算、減算、乗算、および複素数の累積と減算を行う演算を自動ベクトル化することができます。
AMD アーキテクチャーおよび Intel 64 ビットアーキテクチャー
- Sapphire Rapids、Alder Lake、および Rocket Lake のインテル製 CPU に対応しています。
-
Intel AVX-VNNI の新しい ISA 拡張サポートが追加されました。
-mavxvnni
コンパイラースイッチは、AVX-VNNI の組込みを制御します。 -
znver3 コアを搭載した AMD CPU は、新たな
-march=znver3
オプションによりサポートされます。 -
x86-64 psABI サプリメントで定義されている 3 つのマイクロアーキテクチャーレベルは、新しい
-march=x86-64-v2
、-march=x86-64-v3
、および-march=x86-64-v4
オプションでサポートされています。
(BZ#1946782)
GCC Toolset 11: dwz
が DWARF 5 に対応
GCC Toolset 11 では、dwz
ツールが DWARF Version 5 デバッグ形式に対応するようになりました。
(BZ#1948709)
GCC Toolset 11: GCC が AIA ユーザー割り込みをサポートしました。
GCC Toolset 11 では、GCC が Accelerator Interfacing Architecture(AIA) のユーザー割り込みをサポートするようになりました。
(BZ#1927516)
GCC Toolset 11: 汎用 SVE チューニングのデフォルトが改善されました。
GCC Toolset 11 では、64 ビットの ARM アーキテクチャーにおいて、一般的な SVE のチューニングのデフォルトが改善されました。
(BZ#1979715)
SystemTap がバージョン 4.5 にリベース
SystemTap パッケージがバージョン 4.5 に更新されました。主なバグ修正と機能拡張は、以下のとおりです。
-
32 ビット浮動小数点変数は自動的に倍精度変数に拡張され、その結果、
$context
変数として直接アクセスできます。 -
列挙
の値は$context
変数としてアクセスできます。 -
BPF uconversions tapset は拡張され、
user_long_error()
など、ユーザー空間の値にアクセスするためのより多くの tapset 関数が含まれています。 - 大規模なサーバーで安定した操作を提供するために、同時実行制御が大幅に改善されました。
詳細は、アップストリームの SystemTap 4.5 リリースノート を参照してください。
elfutils
がバージョン 0.185 にリベース
elfutils
パッケージがバージョン 0.185 に更新されました。主なバグ修正と機能拡張は、以下のとおりです。
-
eu-elflint
およびeu-readelf
ツールは、ELF セクションのSHF_GNU_RETAIN
およびSHT_X86_64_UNWIND
フラグを認識して表示するようになりました。 -
DEBUGINFOD_SONAME
マクロがdebuginfod.h
に追加されました。このマクロは、dlopen
関数とともに使用して、libdebuginfod.so
ライブラリーをアプリケーションから直接読み込むことができます。 -
新しい関数
debuginfod_set_verbose_fd
がdebuginfod-client
ライブラリーに追加されました。この関数は、詳細な出力を別のファイルにリダイレクトすることで、debuginfod_find_*
クエリー機能を強化します。 -
DEBUGINFOD_VERBOSE
環境変数を設定すると、debuginfod
クライアントが接続しているサーバーおよびこれらのサーバーの HTTP 応答に関する詳細情報が表示されるようになりました。 -
debuginfod
サーバーは、新しいスレッドビジーメトリックと、より詳細なエラーメトリックを提供します。これにより、debuginfod
サーバー上で実行されるプロセスの検査が容易になります。 -
libdw
ライブラリーは、DW_FORM_indirect
の場所値を透過的に処理し、dwarf_whatform
関数が属性の実際の FORM を返すようになりました。 -
ネットワークトラフィックを減らすために、
debuginfod-client
ライブラリーは負の結果をキャッシュに保存し、クライアントオブジェクトは既存の接続を再利用できます。
Valgrind がバージョン 3.17.0 にリベース
Valgrind パッケージがバージョン 3.17.0 に更新されました。主なバグ修正と機能拡張は、以下のとおりです。
- Valgrind は、DWARF バージョン 5 デバッグ形式を読み取ることができます。
-
Valgrind は、
debuginfod
サーバーへのデバッグクエリーをサポートします。 - ARMv8.2 プロセッサー命令は、部分的にサポートされます。
- POWER10 プロセッサーにおける Power ISA v.3.1 命令は、一部サポートされます。
- IBM z14 プロセッサー命令がサポートされます。
-
ほとんどの IBM z15 命令は、サポートされています。Valgrind ツールスイートは、IBM z15 プロセッサーの miscellaneous-instruction-extensions facility 3 と vector-enhancements facility 2 をサポートします。これにより、Valgrind は、GCC
-march=z15
でコンパイルしたプログラムを正しく実行し、パフォーマンスとデバッグのエクスペリエンスを向上させます。 -
--track-fds=yes
オプションは-q
(--quiet
) を尊重し、デフォルトで標準ファイル記述子のstdin
、stdout
、およびstderr
を無視します。標準のファイル記述子を追跡するには、--track-fds=all
オプションを使用します。 -
DHAT ツールには、
--mode=copy
および--mode=ad-hoc
の 2 つの新しい操作モードがあります。
Dyninst がバージョン 11.0.0 にリベース
Dyninst パッケージがバージョン 11.0.0 に更新されました。主なバグ修正と機能拡張は、以下のとおりです。
-
debuginfod
サーバーのサポートと、個別のdebuginfo
ファイル取得のサポート。 - プロシージャリンケージテーブル (PLT) スタブへの間接呼び出しの検出を改善しました。
- C++の名前のデマングルを改善しました。
- コードエミット時のメモリーリークを修正しました。
IBM POWER10 の GDB で DAWR 機能が改善
この機能拡張により、IBM POWER10 プロセッサーでは、新しいハードウェアウォッチポイント機能が GDB で有効になりました。たとえば、DAWR/DAWRX レジスターの新しいセットが追加されました。
(BZ#1854784)
GCC Toolset 11: GDB がバージョン 10.2 にリベースされました。
GCC Toolset 11 では、GDB パッケージがバージョン 10.2 に更新されました。主なバグ修正と機能拡張は、以下のとおりです。
新機能
- マルチスレッドシンボルの読み込みは、この機能をサポートするアーキテクチャーでデフォルトで有効になっています。この変更により、多くのシンボルを持つプログラムのパフォーマンスが向上します。
- テキスト形式のユーザーインターフェイス (TUI) ウィンドウは水平方向に配置できます。
- GDB は、複数のターゲット接続を同時にデバッグしますが、このサポートは実験的なものであり、制限があります。たとえば、各 inferior を異なるマシンで実行する別のリモートサーバーに接続するか、1 つの inferior を使用してローカルのネイティブプロセスまたは他のプロセスのデバッグを行うことができます。
新規コマンドおよび改善されたコマンド
-
新しい
tui new-layout name window weight [window weight…]
コマンドは、新しいテキストユーザーインターフェイス (TUI) レイアウトを作成します。また、レイアウト名と表示ウィンドウを指定することもできます。 -
alias [-a] [--] alias = command [default-args]
コマンドが改善され、新規エイリアスの作成時にデフォルトの引数を指定できます。 -
set exec-file-mismatch
コマンドおよびshow exec-file-mismatch
コマンドは、新しいexec-file-mismatch
オプションを設定して表示します。GDB が実行中のプロセスに割り当てると、このオプションは、GDB がロードされた現在の実行可能ファイルと、プロセスの開始に使用される実行ファイルとの間に不一致を検出すると、GDB が反応するかを制御します。
Python API
-
gdb.register_window_type
関数は、Python で新しい TUI ウィンドウを実装します。 -
動的タイプをクエリーできるようになりました。g
db.Type
クラスのインスタンスは、新しいブール値属性dynamic
を指定でき、gdb.Type.sizeof
属性には動的タイプの値None
を指定できます。Type.fields()
が動的タイプのフィールドを返す場合、そのbitpos
属性の値はNone
になります。 -
新しい
gdb.COMMAND_TUI
定数は、コマンドの TUI ヘルプクラスのメンバーとして Python コマンドを登録します。 -
新しい
gdb.PendingFrame.architecture()
メソッドは、保留中のフレームのアーキテクチャーを取得します。 -
新しい
gdb.Architecture.registers
メソッドは、gdb.RegisterDescriptorIterator
オブジェクトを返すgdb.RegisterDescriptor
Iterator オブジェクトを返します。このようなオブジェクトはレジスターの値を提供しませんが、アーキテクチャーで利用可能なレジスターを理解するのに役立ちます。 -
新しい
gdb.Architecture.register_groups
メソッドは、gdb.RegisterGroupIterator
オブジェクトを返すgdb.RegisterGroup
Iterator オブジェクトを返します。このようなオブジェクトは、どの登録グループがアーキテクチャーで利用可能なかを理解するのに役立ちます。
(BZ#1954332)
GCC Toolset 11: SystemTap がバージョン 4.5 にリベース
GCC Toolset 11 では、SystemTap パッケージがバージョン 4.5 に更新されました。主なバグ修正と機能拡張は、以下のとおりです。
-
32 ビット浮動小数点変数は自動的に倍精度変数に拡張され、その結果、
$context
変数として直接アクセスできるようになりました。 -
列挙
の値は$context
変数としてアクセスできるようになりました。 -
BPF uconversions tapset は拡張され、
user_long_error()
など、ユーザー空間の値にアクセスするためのより多くの tapset 関数が含まれるようになりました。 - 大規模なサーバーで安定した操作を提供するために、同時実行制御が大幅に改善されました。
詳細は、アップストリームの SystemTap 4.5 リリースノート を参照してください。
GCC Toolset 11: elfutils
がバージョン 0.185 にリベースされました。
GCC Toolset 11 では、elfutils
パッケージがバージョン 0.185 に更新されました。主なバグ修正と機能拡張は、以下のとおりです。
-
eu-elflint
およびeu-readelf
ツールは、ELF セクションのSHF_GNU_RETAIN
およびSHT_X86_64_UNWIND
フラグを認識して表示するようになりました。 -
DEBUGINFOD_SONAME
マクロがdebuginfod.h
に追加されました。このマクロは、dlopen
関数とともに使用して、libdebuginfod.so
ライブラリーをアプリケーションから直接読み込むことができます。 -
新しい関数
debuginfod_set_verbose_fd
がdebuginfod-client
ライブラリーに追加されました。この関数は、詳細な出力を別のファイルにリダイレクトすることで、debuginfod_find_*
クエリー機能を強化します。 -
DEBUGINFOD_VERBOSE
環境変数を設定すると、debuginfod
クライアントが接続しているサーバーおよびこれらのサーバーの HTTP 応答に関する詳細情報が表示されるようになりました。 -
debuginfod
サーバーは、新しいスレッドビジーメトリックと、より詳細なエラーメトリックを提供します。これにより、debuginfod
サーバー上で実行されるプロセスの検査が容易になります。 -
libdw
ライブラリーは、DW_FORM_indirect
の場所値を透過的に処理し、dwarf_whatform
関数が属性の実際の FORM を返すようになりました。 -
debuginfod-client
ライブラリーは負の結果をキャッシュに保存し、クライアントオブジェクトは既存の接続を再利用できるようになりました。これにより、ライブラリー利用時の不要なネットワークトラフィックを防ぐことができます。
GCC Toolset 11: Valgrind がバージョン 3.17.0 にリベースされました。
GCC Toolset 11 では、Valgrind パッケージがバージョン 3.17.0 に更新されました。主なバグ修正と機能拡張は、以下のとおりです。
- Valgrind は、DWARF バージョン 5 デバッグ形式を読み取ることができるようになりました。
-
Valgrind は、
debuginfod
サーバーへのデバッグクエリーをサポートするようになりました。 - Valgrind は、ARMv8.2 プロセッサー命令を部分的にサポートするようになりました。
- Valgrind は、IBM z14 プロセッサー命令をサポートするようになりました。
- Valgrind は、POWER10 プロセッサーの Power ISA v.3.1 命令を部分的にサポートするようになりました。
-
--track-fds=yes
オプションは-q
(--quiet
) を尊重し、デフォルトで標準ファイル記述子のstdin
、stdout
、およびstderr
を無視するようになりました。標準のファイル記述子を追跡するには、--track-fds=all
オプションを使用します。 -
DHAT ツールは、
--mode=copy
および--mode=ad-hoc
の 2 つの新しい操作モードを持つようになりました。
GCC Toolset 11: Dyninst がバージョン 11.0.0 にリベースされました。
GCC Toolset 11 では、Dyninst パッケージがバージョン 11.0.0 に更新されました。主なバグ修正と機能拡張は、以下のとおりです。
-
debuginfod
サーバーのサポートと、個別のdebuginfo
ファイル取得のサポート。 - プロシージャリンケージテーブル (PLT) スタブへの間接呼び出しの検出を改善しました。
- C++の名前のデマングルを改善しました。
- コードエミット時のメモリーリークを修正しました。
Fujitsu A64FX の PAPI ライブラリーサポートを追加
Fujitsu A64FX の PAPI ライブラリーのサポートが追加されました。この機能を使用すると、開発者はハードウェアの統計を収集できます。
(BZ#1908126)
PCP
パッケージが 5.3.1 にリベース
PCP (Performance Co-Pilot) パッケージがバージョン 5.3.1 にリベースされました。このリリースには、バグ修正、機能拡張、および新機能が含まれます。主な変更点は、以下のとおりです。
-
スケーラビリティーが向上します。数百ものホストのパフォーマンスメトリックの集中ロギング (
pmlogger
ファーム) およびパフォーマンスルールによる自動監視 (pmie
ファーム) がサポートされるようになりました。 -
pmproxy
サービスおよびlibpcp_web
API ライブラリーのメモリーリークを解決し、インストルメンテーションと新しいメトリックをpmproxy
に追加しました。 -
過去のソケット統計情報用の新しい
pcp-ss
ツール。 -
pcp-htop
ツールーの改善 - 有線の PCP プロトコルに拡張機能が追加され、より高い解像度のタイムスタンプをサポートされるようになりました。
grafana
パッケージがバージョン 7.5.9 にリベース
grafana
パッケージがバージョン 7.5.9 にリベースされました。主な変更点は、以下のとおりです。
- 新規時系列パネル (ベータ)
- 新規パイチャートパネル (ベータ)
- Loki のアラートサポート
- 複数の新しいクエリー変換
詳細は What's New in Grafana v7.4 および What's New in Grafana v7.5 を参照してください。
grafana-pcp
パッケージが 3.1.0 にリベース
grafana-pcp
パッケージがバージョン 3.1.0 にリベースされました。主な変更点は、以下のとおりです。
- Performance Co-Pilot(PCP)Vector Checklist ダッシュボードは、新しい時系列パネルを使用し、グラフに単位を表示し、更新されたヘルプテキストが含まれます。
-
PCP Vector Host Overview および PCP Checklist ダッシュボードに
pmproxy
URL およびhostspec
変数を追加します。 - すべてのダッシュボードでデータソースの選択を表示します。
- 含まれているすべてのダッシュボードを読み取り専用としてマークします。
- Grafana 8 との互換性の追加
grafana-container
がバージョン 7.5.9 にリベース
rhel8/grafana
コンテナーイメージは Grafana を提供します。主な変更点は、以下のとおりです。
-
grafana
パッケージがバージョン 7.5.9 に更新されました。 -
grafana-pcp
パッケージがバージョン 3.1.0 に更新されました。 -
コンテナーが、コンテナーの起動時にカスタム Grafana プラグインをインストールするために
GF_INSTALL_PLUGINS
環境変数をサポートするようになりました。
リベースは、Red Hat コンテナーレジストリーの rhel8/grafana
イメージを更新します。
このコンテナーイメージをプルするには、以下のコマンドを実行します。
# podman pull registry.redhat.io/rhel8/grafana
pcp-container
がバージョン 5.3.1 にリベース
rhel8/pcp
コンテナーイメージは、Performance Co-Pilot を提供します。pcp-container
パッケージがバージョン 5.3.1 にアップグレードされました。主な変更点は、以下のとおりです。
-
pcp
パッケージが、バージョン 5.3.1 に更新されました。
リベースは、Red Hat コンテナーレジストリーの rhel8/pcp
イメージを更新します。
このコンテナーイメージをプルするには、以下のコマンドを実行します。
# podman pull registry.redhat.io/rhel8/pcp
新しい pcp-ss
PCP ユーティリティーが利用可能に
pcp-ss
PCP ユーティリティーは、pmdasockets(1)
PMDA が収集したソケット統計を報告します。このコマンドは、多くの ss
コマンドラインオプションとレポート形式と互換性があります。また、ライブモードのローカルまたはリモート監視と、以前に記録された PCP アーカイブからの過去の再生の利点も提供します。
PCP で電力消費メトリックが利用可能に
新しい pmda-denki
Performance Metrics Domain Agent (PMDA) は、消費電力に関連するメトリックを報告します。具体的には以下の項目が報告されます。
- 最近のインテル製 CPU で利用可能な RAPL(Running Average Power Limit) 測定値に基づく消費メトリック
- バッテリーを搭載したシステムで利用可能な、バッテリー放電に基づく消費メトリック
(BZ#1629455)