Solaris 2.6 では、データベースと Web に重点を置いて性能を改善しました。NFS サーバーとタイムシェアリングシステムの性能は、Solaris 2.5.1 からの高いレベルを維持しています。
データベースエンジンは主に仮想記憶 (VM) と入出力スループットの 2 つの点で処理能力が強化されています。
VM では、データベースエンジンが使用する共用メモリー領域で従来より大きなページサイズを使うことによりオーバーヘッドの減少に成功しています。このメモリー領域でデフォルトのシステムページサイズを使う代わりに、4M バイトという大きなページサイズを使用します。これによって、プロセスが使用するページのために各プロセスに添付される記述を管理するときに必要となるシステム内部の作業量が減少します。従来の記述共有メカニズムとこのページサイズを組み合わせることで、多くの業界標準のテストで約 12 % の性能向上が確認されています。
低レベルルーチンを変更して、大きなページリストを入出力処理するときに発生するオーバーヘッドを最小限に抑えた結果、I/O スループットが飛躍的に向上しました。この変更により、システムが使用する仮想アドレスをデバイスドライバが必要とする物理アドレスに変換して I/O 要求を処理するときに発生するオーバーヘッドも減少しました。これらの改良の結果、物理デバイスに対する入出力の負荷を大幅に軽減しています。
最近の Informix TPC-C ベンチマークテストの結果、次に示すスループットの向上が確認されています。
$134/tpmC で 15,461 tpmC を記録
ユーザー数は、13,000
使用システムは、14 個の 250 Mhz CPU と 5G バイトのメモリーを搭載した SMCC E4000
上記のベンチマークは、これまで記録されたもので最高の Informix TPC-C です。また、ミッドレンジクラスのシステムでは、最高のコスト性能を示しています。
TPC-C は、Transaction Performance Processing Council (TPC) の後援で行われるベンチマークテストです。このベンチマークでは、倉庫配送システムのシミュレーションを行います。9 個のテーブルに格納されたデータに対して、あらかじめ決められた方法で 5 つのトランザクションを実行します。評価単位は tpmC です。tpmC は、TPC-C ベンチマークでの 1 分間当たりのトランザクション数 (transactions per minute) という意味です。
ユーザーの多くが、メモリー上にバッファリングすることなく、直接ディスクにデータを書き込みたいと考えています。Solaris 2.6 では、ディスクへの直接入出力によってこれを実現しました。バルク入出力操作では、サイズの大きなバッファーを使って物理メモリーより大きなファイルを転送します。バルク入出力操作の例として、人工衛星から大量のデータをファイルにダウンロードする場合があります。
直接入出力されるデータはプロセスのアドレス空間に読み書きされるので、オペレーティングシステムのページキャッシング機構にオーバーヘッドがかかりません。
詳細については、directio(3C) のマニュアルページを参照してください。
低レベルの入出力サポート用ルーチンが改良されました。この変更により、ファイルシステム (raw デバイス) を中継しないでディスクデバイスと入出力を行うときのスループットが大幅に向上しました (raw デバイスはデータベースファイルへのアクセスによく使用されます)。SPARCstorage Array 用のドライバは、スループット向上のために書き直されました。
これまでネットワークのスループットは、長期間接続が保持されることを前提に改善されてきました。この結果、Solaris は NFS サーバーで業界随一の性能を誇ってきました。一方、Web サーバーの場合は、短い接続時間と少ない消費帯域幅という、まったく異なるパラダイムに基づいています。Solaris 2.6 からは、この面で大きく性能が向上しました。この性能アップグレードの内容と同じものが、Solaris Internet Server Supplement (SISS) パッケージとして Solaris 2.5.1 用にリリースされています。
ソケットインタフェース層、TCP/IP プロトコル、STREAMS フレームワークなどの点で、Web サーバーの性能が改善されました。ソケットインタフェース層はファイルシステム (sockfs) として再設計された結果、ソケットライブラリや STREAMS ソケットモジュールでソケットコードを重複して作成する必要がなくなりました。これによって、Web で一般的な短時間の接続でも性能が大幅に向上しました。TCP/IP では、多数の接続をさらに効率よく処理できるようになったほか、接続およびソケットの開閉をマルチスレッド化することによって一層の性能向上が図られています。また、STREAMS フレームワークの構造が再構築されて、TCP/IP ソケットの開閉効率も向上しています。
Standard Performance Evaluation Corporation (SPEC) は、Web サーバーの性能を比較するための標準ベンチマークである SPECweb96 をリリースしました。このベンチマークでは、HTTP GET 要求の処理効率を測定して比較結果を提供します。SPEC は、小規模の個人的な Web サーバーからインターネット上で最も人気のあるサーバーに至るまでのサーバーログを分析して、作業負荷の基準値を算出しています。SPEC SFS ベンチマークの枠組みに基づいて構築されている SPECweb96 では、単体または複数のクライアントシステムから HTTP プロトコル要求を発生させて試験することができます。Solaris 2.6 に関する最新の SPECweb96 情報や SPECweb96 ベンチマークの詳細については、http://www.specbench.org を参照してください。
カーネルソケットの実装によって、SunOSTM 4.x ソケットおよび BSD ソケットとの互換性が高まり、ソケットの性能が向上しています。
TCP の拡張されたウィンドウは、RFC1323 に説明されている機能を提供します。TCP の拡張されたウィンドウでは、ATM などの帯域幅の広いネットワークや衛星リンクなどの遅延の大きいネットワークで、未処理のままにしておけるデータ量を 65,535 から 1G バイトまで拡大することにより性能が向上しています。
Zero Copy TCP/ハードウェアチェックサム機能を使って、特定の条件下で TCP のスループットを増大させることができます。これを実現するために、データのコピーを回避すると共に、ネットワークインタフェースにハードウェアチェックサムロジックがある場合、そのロジックを利用します。現時点で、ハードウェアチェックサムロジックを組み込んでいるネットワークインタフェースカードは、SunATM 622 だけです。
詳細については、『Transport Interfaces Programming Guide』を参照してください。