第11章 コンパイラーとツール
SystemTap がバージョン 1.8 に更新
SystemTap はトレースやプローブを行なうツールで、 ユーザーはオペレーティングシステム (特にカーネル) のアクティビティを詳細に調査し監視を行うことができます。 netstat、ps、top、iostat などのツールの出力と同様の情報を提供しますが、 SystemTap は収集した情報に対してより多くのフィルタリング機能や分析オプションを提供できるよう設計されています。
Red Hat Enterprise Linux 6.4 の systemtap パッケージがアップストリームバージョン 1.8 にアップグレードされ、 バグ修正や機能拡張が加えられています。
uprobe
ハンドラーおよびkprobe
ハンドラー (プロセス、カーネル、モジュール) の DWARF 変数にアクセスするための代替の言語構文は@var
構文になります。- SystemTap ではローカルの変数を難号化して tapset が含ませた C ヘッダーとの競合を避けるようになります。
- SystemTap のコンパイルサーバーおよびクライアントで IPv6 ネットワークに対応するようになります。
- SystemTap ランタイム (staprun) で
-T
タイムアウトオプションを受け取るようになります。 これにより、ウェイクアップが減少するため、スクリプトから低スループットの出力をポーリングできるようになります。 - SystemTap スクリプト変換ドライバー (
stap
) で以下のようなリソースを制限するオプションが提供できるようになります。--rlimit-as=NUM --rlimit-cpu=NUM --rlimit-nproc=NUM --rlimit-stack=NUM --rlimit-fsize=NUM
- SystemTap のモジュールがさらに小型化され、コンパイル速度がさらに上がりました。 モジュールのデバッグ情報がデフォルトでは表示されなくなります。
- バグ CVE-2012-0875 (不正な DWARF 巻き戻しデータを処理するとカーネルパニックを起こす) が修正されました。
lscpu ユーティリティと chcpu ユーティリティ
利用可能な CPU に関する詳細情報を表示する lscpu ユーティリティが更新され多くの新機能が搭載されています。 また、 新しいユーティリティとなる chcpu も加わり、 CPU 状態の変更 (オンラインとオフライン、 スタンバイとアクティブ、その他)、 CPU の無効化と有効化、 指定した CPU の設定などを行なえるようになります。
これらのユーティリティについては lscpu(1) と chcpu(8) の man ページを参照してください。