2.6カーネルでは、企業アプリケーションに好都合な改善が数多くなされています。2.4と2.6カーネルを様々な面から比較します。とりあげるのは2.6カーネルで機能強化された主な点、およびテスト方法とその結果です。結論として、2.6はWebページ処理に関しては2.4よりもずっと早く、しかも信頼性も充分、ということが判りました。Centerのスタッフ・ソフトウェア・エンジニアです。2001年にコンピューター・サイエンスの修士としてニューメキシコ州の州立大学を卒業後、この3年間Linuxに取り組んでおり、現在はLinuxカーネル検証とLinux信頼性計測を行っています。(LTC)におけるWeb処理テストの目的は、Linuxカーネルの欠陥を見つけ出すことでした。重視した点は、Webサーバー/アプリケーション・サーバーを使った現実的な企業ユーザー環境に近い作業負荷とすること、またLinuxカーネルの安定性、拡張性、Webサーバー/アプリケーション・サーバーとの互換性についても重視しました。Webサーバーやアプリケーション・サーバーの欠陥を特定することが主目的ではありません。テストの概要2種類のWeb処理テストWeb処理用のサーバーには主に2種類あります。Webサーバーとアプリケーション・サーバーです。ここでは両方を合わせてWeb処理と呼ぶことにします。WebサーバーはHTTPプロトコルでの要求を処理し、Webブラウザで見えるページを提供するものです。アプリケーション・サーバーは一般的なサーバーで、クライアント・アプリケーションに対してビジネス・ロジックを提供します。プロトコルにはHTTPを含む場合も多いですが、他にも各種プロトコルを使用します。アプリケーション・サーバーにはWebサーバーよりも複雑で強力な機能、例えばセッション管理、負荷分散、メッセージング、処理管理、セキュリティ等々などがあります。ある意味では、アプリケーション・サーバーはWebサーバーを包含するものです。Linuxカーネルのテスト環境として、様々なWebサーバーや、アプリケーション・サーバーを選びました。Server、それにJbossなどです。大部分はオープンソース・プロジェクトで、無料でダウンロードできるものです(これらのサーバーについてさらに詳しくは参考文献のリンクを見てください)。カーネル2.4と2.6の違いをテストする2.5/2.6カーネルに対するテストではWebサーバーとアプリケーション・サーバーをテスト負荷として使いましたが、2.4カーネルに対するテストよりもずっと念入りなものです。(WPT)が主なものでした。Web処理のテストはカーネルの主要変更があった時や、ソフトウェア検証のために適宜要求された場合に行われます。2.5/2.6のカーネル・テストでは、より堅固で完全なテスト計画を立てました(参考文献のリンクに2.5のテスト計画とSourceForgeの実行計画があります)。テストの範囲と基準、テスト方法や時間配分などもきちんと決まっています。Webサーバーとアプリケーション・サーバーのテストは統合テストやフォーカス・テスト、擬似ユーザー・テストなどのテスト・ツールとして広く使われています。含め、いくつかのWebクライアントのテスト・ツールも使用して、異なるユーザー環境を擬似的に実現するようにしました。入手可能で最新のカーネルを使い、すべてのサーバー・ツール、クライアント・ツールを定期的に実行しましたが、持続時間を24時間から96時間まで変化させています。テスト用のハードウェアをインテル・ベースの、単一プロセッサーのシステムに限定しないようにしました。PowerPC®システムを使ってもテストを行いました。カーネル関連の欠陥はLinuxカーネルのバグ追跡システムで公開されています。上に戻る2.6カーネルでの主な機能強化点Web処理は企業の世界で重要な役割を持っています。2.6カーネルでは重要な改善や変更がなされており、企業アプリケーションに好都合なものとなっています。新しいハードウェアのサポート、ソフトウェアのサポート、内部カーネルの改善などによって2.6カーネルはより拡張が容易になり、かつ安定になっています。2.6カーネルは、複数のCPU、大量のメモリにまたがる重負荷の下でも、2.4カーネルよりもはるかに高性能を発揮します。2.6のキー・フィーチャーのうち、企業アプリケーションに好都合なものを挙げると新しいハードウェアのサポートLinuxは広範囲なハードウェア・プラットフォームをサポートしています。Opteron、それに埋め込みプロセッサーなどの新しいアーキテクチャーもサポートしています。ハイパー・スレッディングハイパー・スレッディングはインテルによる革新的技術ですが、2.6がサポートするハードウェア機能強化の中で中心的なものです。(SMT、同時マルチ・スレッディング技術)を使って仮想プロセッサーを複数生成することができます。一つのプロセッサーで複数のアプリケーション・スレッドが実行できるのです。これを最大限利用するにはアプリケーションもマルチスレッドになっている必要があります。ハイパー・スレッディングはWebサーバーやアプリケーション・サーバーにとって非常に有利です。多くのトランザクションを処理でき、サーバー反応時間が早くなり、より大きな作業負荷、より多くのユーザー要求を処理できるようになるのです。Xeonプロセッサーがハイパー・スレッディングのハードウェアを内蔵しています。2.6カーネルに追加された主なフィーチャーの一つで、システム・パフォーマンスを改善するものです。SMP、対称マルチプロセシング)の伝統的モデルでは、各プロセッサーが平等にメモリやI/Oにアクセスしますが、プロセッサー・バスのコンテンション・レートが高くなるとパフォーマンスのボトルネックになります。NUMAアーキテクチャーでは、プロセッサー・バスの負荷を増加することなくプロセッサー速度が向上するのです。NUMAシステムでは各プロセッサーはメモリのある部分の近くにあり、他からは離れているようになっています。プロセッサーはノードと呼ばれる小さな区画に配置されます。各ノードは独自のプロセッサーとメモリを持ち、各ノードはお互いに通信することができます。プロセッサーにとってはローカル・ノードにアクセスする方が、他のノードをアクセスするよりも高速です。ノード間の通信を最小にすることでシステム・パフォーマンスが向上するのです。NUMAハードウェアをサポートするために、Linuxカーネルではいくつかの領域で機能向上を図っています。一例はスケジューラーやマルチパスI/Oであり、ユーザー・レベルのAPIは、使用できるプロセッサーとメモリ資源の割り当てがユーザーに理解できるようになっています。内部カーネルAPIはカーネル・サブシステムがNUMAトポロジーを理解できるようになっています。NECのAzusaやIBMのx440それにIBMのNUMA-QなどがNUMAマシンの一例です。デバイス・サポートの拡張2.6カーネルではサポートされるデバイスの種類がさらに増えました。2.6カーネルでは主な数字の制限を255から4095に拡張し、タイプ毎に百万以上のサブタイプを許すようになりました。これでハイエンドの企業システムでも充分にサポートできるはずです。(NPTL)を採用しています。この新しいライブラリは1:1モデルに基づいたもので、完全にPOSIXに準拠しています。XeonシステムでNPTLを使っても、(常に50スレッドまで実行している状態で)100,000スレッドの生成・破棄が2.3秒でできたということです。カーネルはNPTLによってSMP環境下のマルチ・スレッド・アプリケーションのパフォーマンスを大幅に向上することができます。これは特にJava®のような極度にマルチ・スレッドの企業レベル・アプリケーションや、Webサーバー、アプリケーション・サーバーのアプリケーションで価値のあるものです。2.6カーネルのスレッド改善のもう一つは、割り付けられるPIDが32,000から10億にまで増加したことです。スレッドの変更で重負荷システムでのアプリケーション起動パフォーマンスが向上します。2.4カーネルでは許容されるPIDが低いので、アプリケーションが要求するPIDが高くなるとパフォーマンスが低下することがありました。2.5のカーネル・ツリーに正式に採用されました。O(1)スケジューラーによってLinuxがよりスケーラブルなものになります。大きなSMPで、大量プロセスのスループットを改善することで、全体的なパフォーマンスも改善されます。O(1)は大量のタスクやCPUに柔軟に対応でき、タスクがCPU間で投げ回されるのを避けるために、非常に強い親和性を持っています。O(1)スケジューラーにより、CPUにまたがる負荷の分散やNUMA対応の負荷分散もできるようになります。I/Oの改善ブロックI/Oレイヤー2.6カーネルのブロックI/Oレイヤーは書き直され、カーネルのスケーラビリティーとパフォーマンスが改善されています。2.4のグローバルI/Oリクエスト・ロックは無くなりました。2.6カーネルのブロックI/Oバッファー(kiobuf)ではPAGE_SIZEよりも大きなI/Oリクエストができます。見られる問題の大部分はバッファー・ヘッドとkiobufを使用することで起きていますが、この問題は新しいレイヤーで対応されています。I/Oスケジューラーは完全に書き換えられました。SCSIのサポートに関しても重要な改善がなされています。非同期I/O非同期I/Oは2.6カーネルで新規のものです。これによってWebサーバーやデータベースなどの企業アプリケーションを、ネットワーク接続の複雑な内部プール機構に頼らず拡大できるようになります。その他の改善こうした機能強化に加えて、特筆に値する大きな変更や新しいフィーチャーもいくつかあります。(AFS)などを含めて新しいファイルシステムをサポートするようになりました。(IPSec)がサポートされ、IPv6のサポートも改善されています。(IPComp)により、よりセキュリティの高いネットワークで、より高品質の通信が行えるようになります。2.6カーネルで提供される機能強化のすべてが企業アプリケーションに適用できるわけではありません。強化された機能の中には、それを使うために特定のハードウェアやソフトウェアが必要とされるものもあります。ここで挙げた機能強化項目の大部分は一般的にカーネルを改善するものであり、企業でLinuxを使う上での障害を取り除くものと言えます。上に戻るテスト基盤ここでは、どのようにWeb処理のテストを行ったか、使用したハードウェア環境、Webサーバー/アプリケーション・サーバーやWebテスト・ツール、典型的なテスト・シナリオでのテスト方針などについて説明します。ここでの説明は2.6カーネルを対象にしたものです。2.6カーネルのテストに使用したWeb処理用サーバーは4台あります。ServerとJboss)です。Apacheは市場で一番使われているWebサーバーです。Survey)によると、インターネット上の64%以上のWebサイトがApacheを使っています。Apacheはオープンソース・プロジェクトです。オープンソースのサーブレット・コンテナで、Apacheライセンスの下で使用できるJSP環境を持つものです。Jakarta-TomcatにはWebサーバーが組み込まれており、生産環境で他のWebサーバーと組み合わせて使うこともできます。Serverは企業レベルのアプリケーション・サーバーで、大きく変化するeビジネス・アプリケーションに対応したものです。Serverは大部分のオペレーティング・システムにまたがって高パフォーマンスを発揮し、非常にスケーラブルな処理エンジンです。伝統的なUNIXから、同等パフォーマンスで低価格なLinuxに移行するWebSphereのアプリケーションが次第に増えてきています。Serverもオープンソースで、完全にJ2EEで装備されたアプリケーション・サーバーです。オープンソースのEJBコンテナとして始まったJbossは現在、企業での使用に耐えるアプリケーション・サーバーになることを狙っています。Webテスト・ツールネット上には非常にたくさんのWebテスト・ツールやベンチマークがあります。2.6カーネルテスト環境でWebクライアントのストレスを近似するために私たちが主に使用したのは、次の4つのオープンソース・ツールです(参考文献にさらに情報があります)。HttperfはWebサーバーのパフォーマンスを測るためのツールです。タイムアウト制限などを制御できます。HammerheadはWebサーバーをテストするために設計されたストレス・テスト・ツールです。HammerheadはIPエイリアスから複数の接続を開始でき、任意の時間に、擬似的に大量(256以上)のユーザーになることができます。PagePokerはPerlパッケージで、Webサーバーのテスト・フィーチャーを持ったブラウザ・エージェントを定義するものです。PagePokerには3つのスクリプトがあり、複数クライアント、ストレス・テスト、ベンチマーキングといった使用方法により、使い分けることができます。(WPT)はIBMが開発したWebテスト・ツールです。Web処理のテストで説明した以前のツールに加えて、IBMにはTrade3と呼ばれるツールがあります。これはWebSphereのエンド・ツー・エンドのベンチマークとパフォーマンス・サンプル・アプリケーションです。Trade3ベンチマークはオンライン株取引アプリケーションをモデルにしており、WebSphereのパフォーマンス要素やフィーチャーに影響する現実的な作業負荷を提供するものです。テスト方針ここでのWeb処理のテストは、システムを全体として見るシナリオとなるように工夫しました。テストの継続時間は、最初が24時間です。2回目の実行では96時間に増やし、3回目、4回目はそれぞれ7日と14日にしました。xSeriesとpSeries®サーバーまで含めて実行しました。カーネルのストレス・レベルを記録するために、システム・ユーティリティのモニタリング・ツールを使用しました。図1は異なるWebサーバーやアプリケーション・サーバーに対して、テスト・ツールをどのように使用したかを示したものです。異なったテスト・ツールを使い、異なるユーザー環境を擬似的に再現するようにしています。WebSphere製品でベンチマーク・ツールのTrade3を使ったストレス・テスト環境で、擬似的なオンラインの株取引環境を再現するものです。ストレス・テスト環境上に戻るテスト結果の要約次の節はWeb処理テストの結果をまとめたもので、2.4/2.6カーネルを使った典型的なシナリオに基づいたものです。xSeriesシステム上で行った典型的なApache/WPTテストでは、2.6カーネルが処理品質に影響なく劇的にパフォーマンスが向上していることを示しています。1.9.4考察同じシステムの同じ設定で2つのテストを行いました。違いはカーネルのバージョンのみです。擬似的なWebクライアントとして自動Webテスト・ツールWPTを使用しました。2.6カーネルを使った場合、同じ時間内では、Apacheサーバーは2.4カーネルを使った場合に比べて6倍のWebページを処理しました。2.6カーネルによる平均ページ処理時間は、2.4カーネルの処理時間の1/5にすぎません。24時間継続の実行2回の間、接続失敗、サーバー早期終了、リクエスト・ライト失敗、タイムアウトを含めて、接続失敗は一度もありませんでした。サーバーのスケーラビリティーもパフォーマンスも、2.6カーネルの方が2.4カーネルよりも高いことをお見せしました。同じシステムで同じ作業負荷の場合、Apacheサーバーのシステム利用効率は2.6.0-test5カーネルを使った場合の方が、2.4.18カーネルを使った場合よりも高く、6倍のWebページ数を処理しています。2.6カーネルで行われたフィーチャー追加や各種の変更がスケーラビリティとパフォーマンスの向上に寄与していること、その結果、企業レベルのアプリケーションに耐えられるだけ成熟したものになったことがデータで実証されたと言えます。systemに報告されています。HammerheadはWebサーバーのストレス・テスト・ツールです。Simulatorなど、既存のIBMツールが持っている機能と重複するため、使われなくなっています。WebSphereベースでエンド・ツー・エンドのベンチマークとパフォーマンス用のサンプル・アプリケーションです。ServerそれにJbossです。Linuxに偏ってはいますが)。2003年1月)はLTCのメンバー数人が行ったテストについて説明しており、ディスクおよびブロックI/O、SMPスケーラビリティ等を含め、多様な作業負荷をとりあげています。2003年12月)では2.4カーネルに対して念入りに行った信頼性テストの結果をとりあげています。developerWorksのLinuxゾーンにはLinux開発者のための資料がさらにたくさん用意されています。sectionにはLinuxに関連する、幅広い内容の本が用意されています。サイン・イン必須フィールドは(*)で示されます。サインインしたままにしてください。ご使用条件に同意したことになります。サインインすると、お客様のプロフィールが作成されます。会社名を非表示とする選択を行わない限り、プロフィール内の情報(名前、国/地域や会社名)は公開され、投稿するコンテンツと一緒に表示されますが、いつでもこれらの情報を更新できます。送信されたすべての情報は安全です。サインインするとプロフィールが作成されますので、その際にディスプレイ・ネームを選択する必要があります。投稿するコンテンツと一緒に表示されます。コミュニティーでユニークである必要があります。プライバシー上の理由でお客様の電子メール・アドレスは使用しないでください。必須フィールドは(*)で示されます。ご使用条件に同意したことになります。送信されたすべての情報は安全です。(Brasil)Español。