CentOS7の新機能、変更点についてメモ書きしています。RHEL7のオンラインマニュアルを参照し確認しています。
※目次をクリックすると目次の下部にコンテンツが表示されます。
- 1.デフォルトのファイルシステムはXFS
- 2.GCCツールチェーン
- 3.glibc
- 4.gdb(GNUデバッガー)
- 5.Performance Co-Pilot
- 6.SystemTap
- 7.Rubyバージョン
1)ファイルシステムの確認例
# df -T ファイルシス タイプ 1K-ブロック 使用 使用可 使用% マウント位置 /dev/mapper/cl-root xfs 8484864 914316 7570548 11% / devtmpfs devtmpfs 370572 0 370572 0% /dev tmpfs tmpfs 379256 0 379256 0% /dev/shm tmpfs tmpfs 379256 5156 374100 2% /run tmpfs tmpfs 379256 0 379256 0% /sys/fs/cgroup /dev/sda12 xfs 508588 160032 348556 32% /boot
2)XFSの概要
・XFSは、拡張性とパフォーマンス性が共に高いファイルシステムで、元々はSilicon Graphics, Incで設計されたファイルシステムだった。
・最大16エクサバイト(およそ1600万テラバイト)の巨大なファイルシステムや、最大8エクサバイトのファイル群、ディレクトリー構造(数千万のエントリー数)などに対応する目的で作成された。
・XFSはクラッシュからの迅速なリカバリーを容易にするメタデータジャーナリングに対応する。
・XFSファイルシステムはマウントされたアクティブな状態でのデフラグや拡張も可能。
3)ext4でのコマンドとXFSでのコマンドとの違い(左からext4、XFSのコマンド)
・ファイルシステムの作成
mkfs.ext4、mkfs.xfs
・ファイルシステムのマウント
mount、mount
・ファイルシステムのサイズを変更
resize2fs、xfs_growfs
※XFSファイルシステムのサイズは縮小できない。サイズを拡大する場合にのみ使用。
・ファイルシステムの準備を整える
e2fsck、xfs_repair
・ファイルシステムのラベルを変更
e2label、xfs_admin -L
・ディスク領域およびファイル使用量を報告
quota、quota
・ファイルシステムをデバッグ
debugfs、xfs_db
・ファイルシステムの重要なメタデータをファイルに保存
e2image、xfs_metadump
・CentOS7のGCCツールチェーンは、gcc-4.8.xリリースシリーズをベース。(CentOS6.7では、gcc-4.4.7)
CentOS6の同等のツールと比較すると、数多くの機能強化およびバグ修正が含まれている。
・binutils-2.23.52.xが含まれる。(CentOS6.7では、binutils-2.20.51.0.2)
●特徴
・C++11に準拠したアプリケーション構築の実験的サポート(C++11言語の完全サポートを含む)、および C11機能の部分的な実験的サポート。
・並列アプリケーションのプログラミングに対する改善されたサポート。
OpenMP v3.1、C++11の型およびアトミックなメモリーアクセスのためのGCCビルトインのサポート、Transactional Memory (Intel RTM/HLE組み込み、ビルトイン、およびコード生成を含む)の実験的サポートが含まれる。
・コードのパフォーマンスを改善する新たなLocal Register Allocator(LRA)。
・DWARF4がデフォルトのデバッグ形式として新たに使用。
※DWARF:広く使われているデバッグ用データフォーマットの規格
・リンク時最適化のサポート。
・強化された警告および診断機能。
・Fortran の各種新機能。
・ISO C11の実験的サポート。
・新しいLinuxのインターフェース
prlimit、prlimit64、fanotify_init、fanotify_mark、clock_adjtime、name_to_handle_at、open_by_handle_at、syncfs、setns、sendmmsg、process_vm_readv、process_vm_writev。
・新たなインターフェース
scandirat、scandirat64。
・ファイルディスクリプターのFD_SET、FD_CLR、FD_ISSET、poll、ppollなどのバージョンをチェックする機能が追加。
・netgroupデータベースのキャッシュがnscdデーモンでサポートされるようになる。
・Red Hat Developer Toolset v2.0のGDBに対応。
・gdbserverは標準入出力(STDIO)接続を新たにサポート。
例)
(gdb) target remote | ssh myhost gdbserver – hello
・仮想メソッドのテーブルを新規コマンドinfo vtblによって表示できる。
・新規コマンドinfo auto-load、set auto-load、show auto-loadによるファイルの自動読み込みの制御。
・set filename-display absoluteコマンドを使用したソースファイル名の絶対パスの表示。
・新規コマンド record btraceによる、ハードウェアサポートを利用した制御フロー(control flow)の記録。
・pcpのアーキテクチャはデータ収集をするデーモンとクライアントにわかれていて、クライアントはローカルホストだけでなく、リモートサーバへの接続ができるので、リモート環境や複数台からなる環境のパフォーマンス監視をおこなうことができる。
・pcpの軽量な分散アーキテクチャーは、pcpを複雑なシステムの一元的な分析に特に適したものとする。
・パフォーマンスの測定基準は、Python、Perl、C++ およびCインターフェースを使って追加することができる。
・分析ツールは、クライアントAPI(Python、C++、C)を直接使用でき、リッチなwebアプリケーションは、JSONインターフェースを使用して利用可能なすべてのパフォーマンスデータを探索できる。
・SystemTapは、実行しているLinuxカーネルで簡易情報を取得できるようにする革新的なツール。
・SystemTapは、パフォーマンスまたは機能(バグ)の問題に関する情報を取得するために使用する。
・開発者およびシステム管理者はSystemTapを使用すると、インストール機能を備えたカーネルなどのパッケージを作成しなくても、問題をデバッグして、プロファイルおよびパフォーマンスデータを取得することができる。
・SystemTapは、情報を収集するのに必要な機能(コマンドラインインターフェイスおよびスクリプト言語)を提供する。
・SystemTapが実際に実行するジョブは、特定の目的に合わせてユーザーが作成したスクリプトに依存している。現在は、一般的に利用できるSystemTapのサンプルスクリプトがたくさんある。
●RHEL7のSystemTapの概要
・RHEL7には、いくつかの新機能を提供するsystemtapバージョン2.4が含まれる。
・オプションとしての純粋なユーザースペースでのスクリプト実行、Javaプローブ、仮想マシンのプローブ、エラーメッセージの改善、および数多くのバグ修正と新機能が含まれる。
・dyninstバイナリー編集ライブラリーを使用し、純粋にユーザースペースレベルで一部のスクリプトを実行できるようになった。カーネルやルートの権限は一切使用されない。
stap –dyninstを使用して選択されるモードは、ユーザー自身のプロセスのみに影響を与えるタイプのプローブまたは操作のみを有効にする。
このモードは、C++例外をスローするプログラムとは互換性がないことに注意。
・プローブをJavaアプリケーションに挿入する新たな方法がbytemanツールとの併用によってサポートされる。
SystemTapプローブの新規のタイプであるjava(“com.app”).class(“class_name”).method(“name(signature)”).*は、システム全体でのトレースを実行せずに、アプリケーション内の個別メソッドの入り口および出口イベントのプローブを可能にする。
・サーバー上で実行されるlibvirtで管理されるKVMインスタンスのリモート実行が可能になった。これにより、専用のセキュアなvirtio-serialリンク全体での、コンパイルされたSystemTapスクリプトの仮想マシンゲストへのセキュアな転送が可能になる。
新規のゲスト側のデーモンは、スクリプトをロードし、それらの出力をホストに送り返す。この方法は、SSHよりも高速かつセキュアであり、ホストとゲスト間のIPレベルのネットワーク接続は不要になる。
# yum info ruby
Name : ruby
Arch : x86_64
Version : 1.8.7.374
Release : 4.el6_6
●CentOS7のRubyバージョン
# yum info ruby
名前 : ruby
アーキテクチャー : i686
バージョン : 2.0.0.598
リリース : 25.el7_1
●Ruby2.0.0の主な特徴
・大規模なツリーやファイルを持つアプリケーション用の、ロード時間を大幅に削減する新規のインタープリターYARV。
※YARV (Yet Another Ruby VM)
・笹田耕一が開発するRuby言語処理系。
・Rubyインタプリタの高速化を目指し、開発が進められ、現在はRuby(Matz’s Ruby Interpreter, MRI)に組み込まれている。
・新たな高速”遅延解放 (Lazy Sweep)”ガベージコレクター。
・文字列のエンコーディングをサポートするようになった。
・グリーンスレッドの代わりにネイティブスレッドをサポートするようになった。