Solaris 10 の概要

システムパフォーマンスの機能拡張

Solaris 10 8/07 リリースでは、次のシステムパフォーマンス機能と拡張機能が追加されました。

SPARC: UltraSPARC T2 PCI Express Interface Unit パフォーマンスカウンタデータ

UltraSPARC T2 システムの PCI Express Interface Units (PIU) には、busstat でダンプ可能な組み込みのパフォーマンスカウンタが備わっています。busstat -l コマンドの出力には、このようなシステムの次のようなデバイスが表示されます。

「#」はインスタンスの番号です。

この組み込みパフォーマンスカウンタの使用は、主に Sun のフィールドサービス担当者を対象としています。

Hashed Cache Index モードのサポート

Hashed Cache Index モードは、UltraSPARC T2 プロセッサで利用できる新しいハードウェア機能です。ハードウェアは、さらに多くのアドレスビットを使って L2 キャッシュインデックスを計算します。その結果、大規模ページ用のページカラーが増えます。

最適なパフォーマンスを実現するには、Solaris カーネルによって、キャッシュを共有するすべてのスレッドで使用されるページカラーの数をできるだけ多くする必要があります。Solaris 仮想メモリーサブシステムは、この新しいハードウェア機能に対応するように拡張されました。適切なカラー計算により、UltraSPARC T2 システム上のアプリケーションプログラムのパフォーマンスとスループットの整合性が改善されます。

複数レベル CMT スケジューリング最適化

複数レベル Chip Multi-Threaded (CMT) スケジューリング最適化機能は、プラットフォームに依存しない機構を Solaris カーネルに提供します。この機構によって、最新の、そして、今後より市場が大きくなると見込まれている CMT プロセッサアーキテクチャー (Niagara II を含む) で動作する、複数の CPU 間のハードウェア共有関係に関連する、さまざまなパフォーマンスを検出し、それを最適化することが可能になります。

この機能はまた、複数レベル CMT 負荷分散ポリシーによって、カーネルのスレッドスケジューラまたはディスパッチャーの機能を向上させます。これは、さまざまなマルチスレッド、マルチコア、およびマルチソケットのプロセッサベースシステムにとって有益です。

この機能の詳細については、OpenSolaris のパフォーマンスコミュニティーの Web サイト http://www.opensolaris.org/os/community/performance を参照してください。

プロセス数のスケーラビリティー

プロセス数のスケーラビリティー機能により、Solaris OS のプロセス数のスケーラビリティーが向上します。現在では、すべての UltraSPARC システムが最大 8192 個のコンテキストをサポートします。プロセスの数が 8192 個を超えると、カーネルがコンテキストを横取りし、プロセスの実行を維持します。プロセスからコンテキストを横取りする動作には、次のタスクが含まれます。

この手順は負荷が大きく、プロセスの数が 8K を超えると、状態はさらに悪化します。プロセス数のスケーラビリティー機能では、コンテキストの管理を徹底的に設計し直します。コンテキストを全体ではなく MMU ごとに管理することにより、TLB のフラッシュが効率的に行えるようになり、コンテキスト管理のスケーラビリティーが著しく向上します。

また、プロセス数のスケーラビリティー機能によって、8K を超えるアクティブなプロセスの作業負荷や、プロセスの作成と破棄を頻繁に実行することで生じる作業負荷に対するスループットも向上します。そのため、CPU を数多く備えたシステムで使用する場合に、もっとも効果的です。

共有メモリーに対する MPSS の拡張

共有メモリーに対する複数ページサイズサポート (MPSS) に、共有メモリーをマップする大規模ページのサポートが追加され、共有メモリーの大規模ページを使用するための out-of-box (OOB) ポリシーが提供されます。MPSS サポートは、/dev/zerommap(1) か MAP_ANON フラグによって作成される共有メモリー、および System V 共有メモリーを対象としています。この機能は、これらの共有メモリーセグメントのページサイズを変更する memcntl(2) のサポートも追加します。

MPSS サポートは、mmap(1)、/dev/zerommap (MAP_PRIVATE) によって作成されるメモリーの大規模ページを使用できるようにも拡張されています。