Yitian platform full-stack application performance optimization and migration best practice
01 Yitian ECS のエコシステム全景
現在、Yitian ECS は充実したオープンソースエコシステムをサポートしています。開発者ツールについては、GCC、LLVM などのコンパイラ、および Java (OpenJDK、GraalVM)、Python などの言語に対応しています。OS/基盤ライブラリの面では、glibc、DPDK、jemalloc、OpenSSL などの基盤ライブラリに加え、Ubuntu などの OS をサポートしています。コンテナ/仮想化については、セキュアコンテナ、Kubernetes (K8s)、Docker、KVM などに対応しています。
上記の図に示すように、アプリケーションエコシステムの観点から Yitian ECS のサポート状況を見ると、オペレーティングシステムでは OpenAnolis Anolis OS のイノベーション LTS 版と、そのカスタマイズ版である Alibaba Cloud Linux をサポートしています。仮想化とコンテナでは Dragonfly Hypervisor、ACK、および Alibaba Cloud サンドボックスコンテナ kangaroo をサポートしています。ツールチェーンと言語では Alibaba Cloud Compiler (LLVM ベース)、Alibaba Dragonwell、Noslate Anode、APython に対応し、ミドルウェアとワークロードでは MySQL、Flink、TensorFlow、Spark などに対応しています。
Yitian ECS の利用にあたり、特に注目すべき 2 つのポイントがあります。1 つ目は、アプリケーションをどのようにスムーズに Yitian ECS へ移行できるかという点です。OS、コンパイラ、基盤ライブラリ、オープンソースコンポーネントの適合性をより高められるか、移行を支援するツールはあるか、移行後に優れたクラウドネイティブ管理ソフトウェアは利用できるか、複数アーキテクチャのソフトウェアバージョンをどう管理するかといった課題です。
2 つ目は、アプリケーションが Yitian ECS 上でどの程度のパフォーマンス向上を得られるか、そしてどのくらいの速度で実行できるかという点です。
Yitian ECS は、ソフトウェアスタックの基盤コンポーネントの最適化、セカンドパーティおよびサードパーティライブラリの最適化、汎用ワークロードの最適化を通じて、スタック全体のパフォーマンス最適化を実現しています。さらに、関連ツールとベストプラクティスを通じて、顧客シナリオに合わせたアプリケーションチューニングもサポートしています。
02 フルスタックアプリケーションパフォーマンス最適化の実践
上記の図に示すように、フルスタックアプリケーション最適化は主に Yitian ECS、オペレーティングシステム、コンパイラ/ランタイム、およびアプリケーションの各層を対象とします。フルスタック最適化の実現には、Outside in アプローチと Layered アプローチの 2 つの手法があります。
Outside in アプローチでは、Alibaba Cloud が実際のワークロードに基づいてベースラインを確立し、そのベースラインを基に反復的に最適化を行います。
階層別最適化では、Alibaba Cloud のオペレーティングシステムチーム、コンパイラチーム、ミドルウェアチーム、PaaS チームがそれぞれ Yitian 710 チップを中心に階層ごとの最適化を実施しています。たとえば、Yitian アーキテクチャの特性に合わせて、特定のオペレーティングシステムとコンパイラのバージョンを最適化するといった取り組みです。
現在、Alibaba Cloud が推奨する基盤ソフトウェアバージョンは Alibaba Cloud Linux (3)、Alibaba Cloud Compiler (13)、Alibaba Dragonwell (11) です。アプリケーションツールとしては KeenTune、EMT4J、Jifa、Perf(x) をサポートしています。
Alibaba Cloud Linux は Yitian ECS に向けて 4 つの特徴を備えています。
1 つ目は、初回から包括的なサポートを完了し、すぐに使える状態での提供、ワークオーダーサポート、および 10 年間のメンテナンスを実現している点です。
2 つ目は、独身の日 (Double 11) の大規模トラフィックというシナリオを経験し、Alibaba Cloud データベース、コンテナサービスをはじめとするクラウドプロダクトを効果的に支えてきた実績がある点です。
3 つ目は、Alibaba Cloud Linux を基盤として、ハードウェア、カーネル、コンパイラ、ランタイムに至るフルスタックのアプリケーション最適化を実施し、パフォーマンスを大幅に向上させている点です。
4 つ目は、OpenAnolis コミュニティおよび上流コミュニティへの段階的な公開を進めている点です。
次に、C/C++ コンパイラスイートである Alibaba Cloud Compiler について説明します。Alibaba Cloud Compiler は Yitian 710 チップ向けに包括的に最適化されています。SVE 命令のサポート強化、Yitian 710 チップに基づくマイクロアーキテクチャ最適化、そして Yitian 710 チップ上での C++20 の最新機能であるコルーチンやモジュールなどのサポートを実現しています。
さらに、Alibaba Cloud Compiler は Alibaba Cloud プロダクトを対象とし、クラウド上の顧客にサービスを提供します。X64 と AArch64 の両アーキテクチャを 1 組のコンパイラでサポートし、GCC 比で 15% から 40% 高速なビルドとコンパイル速度、そして GCC 比で 5% から 15% のパフォーマンス向上を実現する、より使いやすいコンパイル最適化を提供します。
Alibaba Dragonwell は 2019 年にオープンソース化されました。上記の図に示すように、Yitian チップ上でのバージョン間の反復最適化により、11.0.11.6 のスループットは SPECjbb2015 ベンチマークで 11.0.8.3 と比較して 58% 向上しています。マルチコア環境下でのパフォーマンスは、優れたスケーラビリティを確保しています。
次に、ワンクリックチューニングツール KeenTune について説明します。KeenTune は、クラウド上のさまざまなビジネスシナリオと仮想マシンの仕様を組み合わせて、最適なパフォーマンスチューニングを自動的に実現します。カーネルパラメータやアプリケーション設定などをワンクリックでフルスタックにチューニングできます。
上記の図に示すように、Yitian ECS の基盤ソフトウェアは 4 つの方向で最適化されています。ワークロードプロファイリング駆動の最適化、アーキテクチャ差異の最適化、コンパイル最適化、および同時実行性の最適化です。
・ワークロードプロファイリング駆動では、負荷特性に応じてラージコードページ、XPS、カーネルスケジューリング、ext4 fast commit などの技術を適用して最適化を行っています。
・アーキテクチャ差異の最適化には、TLBi、新命令セット、コードキャッシュ、レジスタなどの最適化が含まれます。新命令セットについては、同時マルチスレッドは現代の汎用ワークロードの典型的な特徴であり、LSE 命令はマルチコア環境での汎用ワークロードのパフォーマンスを効果的に向上させます。
・コンパイル最適化では、FDO/PGO、LTO などの従来のコンパイラ最適化技術を活用しています。
・同時実行性の最適化では、Alibaba Cloud が Java 仮想マシン領域で多数の Weak Memory 最適化を実施しており、CAS や Lock などのマルチスレッド最適化も行っています。
上記の図に示すように、Yitian ECS はデータベース、ビッグデータ、Web の各シナリオで 20% 以上のパフォーマンス向上を達成しています。C++ の RDS-MySQL シナリオでは 33% のパフォーマンス向上、Java の Flink シナリオでは 30% のパフォーマンス向上、Web-tooling/Node.js シナリオでは 43% のパフォーマンス向上、PHP の WordPress シナリオでは 20% のパフォーマンス向上を実現しました。
03 クロスアーキテクチャ移行
次に、クロスアーキテクチャ移行ソリューションのソフトウェアライフサイクル全体にわたるサポートについて説明します。現在、Alibaba Cloud のクロスアーキテクチャ移行ソリューションは、ソースコード、ビルド、テスト、本番環境、オンラインの全工程にわたるクロスアーキテクチャサポートをカバーしています。
ソースコード段階では、アーキテクチャの互換性と健全性をチェックするツールを利用できます。ビルド段階では、クロスアーキテクチャコンパイルをサポートし、最適化された基盤ライブラリ、オープンソースライブラリ、フレームワークの統合を支援します。テスト段階では、Alibaba Cloud が豊富な実践ケースを蓄積しており、ビルドの健全性チェックとソフトウェアバージョン依存関係の確認を支援します。本番段階では、本番パラメータの確認、ソフトウェアバージョンのチェック、およびオンライントラブルシューティングツールをサポートしています。
上記の図は、マルチ CPU アーキテクチャ対応の ACK 管理図です。1 つの ACK クラスターで x86 ノードプールと Arm ノードプールの両方を管理します。Alibaba Cloud のイメージリポジトリ ACR はマルチアーキテクチャイメージに完全対応しています。
ACK クラウドネイティブ環境では、CPU アーキテクチャの違いに応じて、現在の CPU アーキテクチャに適合するイメージを自動的に管理およびプルします。さらに、ユーザーサービスは x86 と Arm アーキテクチャ間でスムーズに移行し、トラフィックを設定できます。
まとめると、Yitian ECS は豊富なソフトウェアとツールをサポートし、包括的なドキュメントを提供しています。ユーザーはニーズに応じて異なる ECS インスタンス、OS、ツールチェーン、コンテナを選択できます。ツールやソリューションによるアプリケーション移行とトラブルシューティングをサポートしています。
現在、第 8 世代 ECS クラウドサーバー Arm インスタンス g8y が試用版として公開されています。関連ウェブサイトは以下の通りです。
https://www.aliyun.com/daily-act/ecs/ecs_yitian
04 重要リリース
次に、新しいソースコードスキャンツール Cross Platform Migration Scanner、Yitian ECS のすぐに使えるインテリジェント最適化ソリューション、および開発者コミュニティ向けの開発者ガイドを紹介します。
Cross Platform Migration Scanner は複数言語とクロスアーキテクチャの互換性チェックに対応しており、ソースコード段階でコードをスキャンして互換性問題を発見できます。
上記の図は ECS Booster のインテリジェント最適化ソリューションのアーキテクチャです。ECS Booster は Web、データベース、キャッシュ、ビデオ、AI などのシナリオに応じて最適化パラメータを自動設定し、すぐに使える状態で利用できます。
Yitian ECS の商用版は 11 月 15 日に正式にローンチされ、Yitian ECS の開発者ガイドも GitHub でオープンソースとして公開されます (オープンソースアドレス:https://github.com/aliyun/yitian-ecs-getting-started)。
開発者ガイドでは、コンテナ化の最適化結果をイメージ形式で公開し、ドキュメントを通じて異なるアーキテクチャ間の移行を支援します。さらに、Yitian ECS 開発者ガイドには、さまざまなパフォーマンス問題の解決に役立つ豊富な分析ツールが用意されています。
現在、Yitian ECS は充実したオープンソースエコシステムをサポートしています。開発者ツールについては、GCC、LLVM などのコンパイラ、および Java (OpenJDK、GraalVM)、Python などの言語に対応しています。OS/基盤ライブラリの面では、glibc、DPDK、jemalloc、OpenSSL などの基盤ライブラリに加え、Ubuntu などの OS をサポートしています。コンテナ/仮想化については、セキュアコンテナ、Kubernetes (K8s)、Docker、KVM などに対応しています。
上記の図に示すように、アプリケーションエコシステムの観点から Yitian ECS のサポート状況を見ると、オペレーティングシステムでは OpenAnolis Anolis OS のイノベーション LTS 版と、そのカスタマイズ版である Alibaba Cloud Linux をサポートしています。仮想化とコンテナでは Dragonfly Hypervisor、ACK、および Alibaba Cloud サンドボックスコンテナ kangaroo をサポートしています。ツールチェーンと言語では Alibaba Cloud Compiler (LLVM ベース)、Alibaba Dragonwell、Noslate Anode、APython に対応し、ミドルウェアとワークロードでは MySQL、Flink、TensorFlow、Spark などに対応しています。
Yitian ECS の利用にあたり、特に注目すべき 2 つのポイントがあります。1 つ目は、アプリケーションをどのようにスムーズに Yitian ECS へ移行できるかという点です。OS、コンパイラ、基盤ライブラリ、オープンソースコンポーネントの適合性をより高められるか、移行を支援するツールはあるか、移行後に優れたクラウドネイティブ管理ソフトウェアは利用できるか、複数アーキテクチャのソフトウェアバージョンをどう管理するかといった課題です。
2 つ目は、アプリケーションが Yitian ECS 上でどの程度のパフォーマンス向上を得られるか、そしてどのくらいの速度で実行できるかという点です。
Yitian ECS は、ソフトウェアスタックの基盤コンポーネントの最適化、セカンドパーティおよびサードパーティライブラリの最適化、汎用ワークロードの最適化を通じて、スタック全体のパフォーマンス最適化を実現しています。さらに、関連ツールとベストプラクティスを通じて、顧客シナリオに合わせたアプリケーションチューニングもサポートしています。
02 フルスタックアプリケーションパフォーマンス最適化の実践
上記の図に示すように、フルスタックアプリケーション最適化は主に Yitian ECS、オペレーティングシステム、コンパイラ/ランタイム、およびアプリケーションの各層を対象とします。フルスタック最適化の実現には、Outside in アプローチと Layered アプローチの 2 つの手法があります。
Outside in アプローチでは、Alibaba Cloud が実際のワークロードに基づいてベースラインを確立し、そのベースラインを基に反復的に最適化を行います。
階層別最適化では、Alibaba Cloud のオペレーティングシステムチーム、コンパイラチーム、ミドルウェアチーム、PaaS チームがそれぞれ Yitian 710 チップを中心に階層ごとの最適化を実施しています。たとえば、Yitian アーキテクチャの特性に合わせて、特定のオペレーティングシステムとコンパイラのバージョンを最適化するといった取り組みです。
現在、Alibaba Cloud が推奨する基盤ソフトウェアバージョンは Alibaba Cloud Linux (3)、Alibaba Cloud Compiler (13)、Alibaba Dragonwell (11) です。アプリケーションツールとしては KeenTune、EMT4J、Jifa、Perf(x) をサポートしています。
Alibaba Cloud Linux は Yitian ECS に向けて 4 つの特徴を備えています。
1 つ目は、初回から包括的なサポートを完了し、すぐに使える状態での提供、ワークオーダーサポート、および 10 年間のメンテナンスを実現している点です。
2 つ目は、独身の日 (Double 11) の大規模トラフィックというシナリオを経験し、Alibaba Cloud データベース、コンテナサービスをはじめとするクラウドプロダクトを効果的に支えてきた実績がある点です。
3 つ目は、Alibaba Cloud Linux を基盤として、ハードウェア、カーネル、コンパイラ、ランタイムに至るフルスタックのアプリケーション最適化を実施し、パフォーマンスを大幅に向上させている点です。
4 つ目は、OpenAnolis コミュニティおよび上流コミュニティへの段階的な公開を進めている点です。
次に、C/C++ コンパイラスイートである Alibaba Cloud Compiler について説明します。Alibaba Cloud Compiler は Yitian 710 チップ向けに包括的に最適化されています。SVE 命令のサポート強化、Yitian 710 チップに基づくマイクロアーキテクチャ最適化、そして Yitian 710 チップ上での C++20 の最新機能であるコルーチンやモジュールなどのサポートを実現しています。
さらに、Alibaba Cloud Compiler は Alibaba Cloud プロダクトを対象とし、クラウド上の顧客にサービスを提供します。X64 と AArch64 の両アーキテクチャを 1 組のコンパイラでサポートし、GCC 比で 15% から 40% 高速なビルドとコンパイル速度、そして GCC 比で 5% から 15% のパフォーマンス向上を実現する、より使いやすいコンパイル最適化を提供します。
Alibaba Dragonwell は 2019 年にオープンソース化されました。上記の図に示すように、Yitian チップ上でのバージョン間の反復最適化により、11.0.11.6 のスループットは SPECjbb2015 ベンチマークで 11.0.8.3 と比較して 58% 向上しています。マルチコア環境下でのパフォーマンスは、優れたスケーラビリティを確保しています。
次に、ワンクリックチューニングツール KeenTune について説明します。KeenTune は、クラウド上のさまざまなビジネスシナリオと仮想マシンの仕様を組み合わせて、最適なパフォーマンスチューニングを自動的に実現します。カーネルパラメータやアプリケーション設定などをワンクリックでフルスタックにチューニングできます。
上記の図に示すように、Yitian ECS の基盤ソフトウェアは 4 つの方向で最適化されています。ワークロードプロファイリング駆動の最適化、アーキテクチャ差異の最適化、コンパイル最適化、および同時実行性の最適化です。
・ワークロードプロファイリング駆動では、負荷特性に応じてラージコードページ、XPS、カーネルスケジューリング、ext4 fast commit などの技術を適用して最適化を行っています。
・アーキテクチャ差異の最適化には、TLBi、新命令セット、コードキャッシュ、レジスタなどの最適化が含まれます。新命令セットについては、同時マルチスレッドは現代の汎用ワークロードの典型的な特徴であり、LSE 命令はマルチコア環境での汎用ワークロードのパフォーマンスを効果的に向上させます。
・コンパイル最適化では、FDO/PGO、LTO などの従来のコンパイラ最適化技術を活用しています。
・同時実行性の最適化では、Alibaba Cloud が Java 仮想マシン領域で多数の Weak Memory 最適化を実施しており、CAS や Lock などのマルチスレッド最適化も行っています。
上記の図に示すように、Yitian ECS はデータベース、ビッグデータ、Web の各シナリオで 20% 以上のパフォーマンス向上を達成しています。C++ の RDS-MySQL シナリオでは 33% のパフォーマンス向上、Java の Flink シナリオでは 30% のパフォーマンス向上、Web-tooling/Node.js シナリオでは 43% のパフォーマンス向上、PHP の WordPress シナリオでは 20% のパフォーマンス向上を実現しました。
03 クロスアーキテクチャ移行
次に、クロスアーキテクチャ移行ソリューションのソフトウェアライフサイクル全体にわたるサポートについて説明します。現在、Alibaba Cloud のクロスアーキテクチャ移行ソリューションは、ソースコード、ビルド、テスト、本番環境、オンラインの全工程にわたるクロスアーキテクチャサポートをカバーしています。
ソースコード段階では、アーキテクチャの互換性と健全性をチェックするツールを利用できます。ビルド段階では、クロスアーキテクチャコンパイルをサポートし、最適化された基盤ライブラリ、オープンソースライブラリ、フレームワークの統合を支援します。テスト段階では、Alibaba Cloud が豊富な実践ケースを蓄積しており、ビルドの健全性チェックとソフトウェアバージョン依存関係の確認を支援します。本番段階では、本番パラメータの確認、ソフトウェアバージョンのチェック、およびオンライントラブルシューティングツールをサポートしています。
上記の図は、マルチ CPU アーキテクチャ対応の ACK 管理図です。1 つの ACK クラスターで x86 ノードプールと Arm ノードプールの両方を管理します。Alibaba Cloud のイメージリポジトリ ACR はマルチアーキテクチャイメージに完全対応しています。
ACK クラウドネイティブ環境では、CPU アーキテクチャの違いに応じて、現在の CPU アーキテクチャに適合するイメージを自動的に管理およびプルします。さらに、ユーザーサービスは x86 と Arm アーキテクチャ間でスムーズに移行し、トラフィックを設定できます。
まとめると、Yitian ECS は豊富なソフトウェアとツールをサポートし、包括的なドキュメントを提供しています。ユーザーはニーズに応じて異なる ECS インスタンス、OS、ツールチェーン、コンテナを選択できます。ツールやソリューションによるアプリケーション移行とトラブルシューティングをサポートしています。
現在、第 8 世代 ECS クラウドサーバー Arm インスタンス g8y が試用版として公開されています。関連ウェブサイトは以下の通りです。
https://www.aliyun.com/daily-act/ecs/ecs_yitian
04 重要リリース
次に、新しいソースコードスキャンツール Cross Platform Migration Scanner、Yitian ECS のすぐに使えるインテリジェント最適化ソリューション、および開発者コミュニティ向けの開発者ガイドを紹介します。
Cross Platform Migration Scanner は複数言語とクロスアーキテクチャの互換性チェックに対応しており、ソースコード段階でコードをスキャンして互換性問題を発見できます。
上記の図は ECS Booster のインテリジェント最適化ソリューションのアーキテクチャです。ECS Booster は Web、データベース、キャッシュ、ビデオ、AI などのシナリオに応じて最適化パラメータを自動設定し、すぐに使える状態で利用できます。
Yitian ECS の商用版は 11 月 15 日に正式にローンチされ、Yitian ECS の開発者ガイドも GitHub でオープンソースとして公開されます (オープンソースアドレス:https://github.com/aliyun/yitian-ecs-getting-started)。
開発者ガイドでは、コンテナ化の最適化結果をイメージ形式で公開し、ドキュメントを通じて異なるアーキテクチャ間の移行を支援します。さらに、Yitian ECS 開発者ガイドには、さまざまなパフォーマンス問題の解決に役立つ豊富な分析ツールが用意されています。
Related Articles
-
A detailed explanation of Hadoop core architecture HDFS
Knowledge Base Team
-
What Does IOT Mean
Knowledge Base Team
-
6 Optional Technologies for Data Storage
Knowledge Base Team
-
What Is Blockchain Technology
Knowledge Base Team
Explore More Special Offers
-
Short Message Service(SMS) & Mail Service
50,000 email package starts as low as USD 1.99, 120 short messages start at only USD 1.00
