March 05, 2005

Solaris 10

特徴として
Linuxバイナリが動作する
Atok12 が利用できる。

Sum Microsytems は5年以上 LX Runを開発してきた。
LX RunはLinux のカーネルとシステム・コールIDのマッピング・エミュレーションを実行するもの。LinuxとSolarisはシステムコールIDが違うため、エミュレーションが必要だった。

Solaris 10ではLSB (Linux Standard Base ) カーネル準拠とした。
このため、x86互換環境上では、 Solaris とLinux のシステムコール
がどちらとも動作する。


Solaris 9では、ネットワーク処理性能でLinuxサーバーに劣ることがあった。

デフォルトのTCP/IPスタック層が、大規模なネットワーク上で膨大なパケットを処理できるように最適化されており、オーバーヘッドが生じていたため。


Solaris10では、パケット量の少ないHTTP主体の小さなネットワークにも対応できるように設定してある

この改良により、HTTPを使うWebサービスの処理性能も上がる。
アプリケーション・サーバーとして使った場合、TCP/IPスタック層以外を変更しなくても処理性能を45%伸ばせたという。


具体的には、SOLARIS 9 では、SMP構成の場合、パケットが到着するごとにCPUの状態をメモリーに待避し、処理を次のCPUに回していた。Solaris10 ではキャッシュを保存して「一連のパケット」に対して1cpu で対応するようにした。
ある1ポートへの一連の処理を1CPUで処理することで、性能が向上したという。


パケット処理と並んで、スレッド処理も改善した。従来はスレッドの集団をライトウエイト・プロセス1つに対応させることで性能向上を図っていたが、実際には、このようなスレッドの使い方をするアプリケーションが少なく、対応付けのオーバヘッドが大きくなっていた。
そこで1対1の処理に変更している。

libc とスレッド・ライブラリも改善したとのこと。

シングルスレッド、マルチタスクで毎回スイッチング
していたのだが、Solaris10から
マルチスレッドのみ
で処理するようになった。

| | Comments (0) | TrackBack (0)