ウェブサイト検索

バイトダンスによると、AIを使ってLinuxカーネルを調整する


Linuxはほとんどの仕事でうまく機能しますが、素晴らしく機能させるためにはカーネルのチューニングが必要であり、それは決して簡単ではありません。ByteDanceはこれをより簡単にする提案をしています。

バージニア州リッチモンド: Linuxプランバーズ会議で、上級Linuxカーネル開発者の招待制の会議において、バイトダンスのLinuxカーネルエンジニアのCong Wangは、特定のワークロードに対して最大の結果を得るために、人工知能(AI)と機械学習(ML)を使用してLinuxカーネルを調整することを提案しました。

一般的に言えば、Linuxカーネルはほとんどのタスクに対して問題なく機能します。しかし、特定の仕事に対して最大限の効果を得るためには、最適な結果のためにパラメータを調整する必要があります。このアプローチには1つの小さな問題があります。それは、数千のパラメータが存在することです。Linuxの専門家でさえ、それらを最適なパフォーマンスのために調整することは長く、難しい作業です。そしてもちろん、異なるワークロードには異なるLinuxカーネルパラメータの調整が必要です。したがって、Wangが言ったように、「ByteDanceのような大規模データセンターでは、数百の異なるワークロードのためにLinuxカーネルパラメータを手動で調整することがほぼ不可能になっています。」

System Management Interface Tool(SMIT)、Sysctl、TuneDなどのツールが役立ちます。しかし、これらは手動でカーネルの調整をより簡単に行うことを可能にするだけです。また、特にネットワークアプリケーションの効率を最適化するために機械学習を使用する「スマート」プログラム、例えばRed HatのBayOpもありますが、これは汎用のAI/MLプログラムではなく、特定の種類のLinux調整のために設計されています。

バイトダンスが取り組んでいるのは、最小限の工数でLinuxカーネルパラメータチューニングプロセス全体を自動化する初の試みです。具体的には、バイトダンスはLinuxのメモリ管理のチューニングに取り組んでいます。バイトダンスは、ベイズ最適化などの機械学習アルゴリズムを使用することで、自動チューニングがほとんどのLinuxカーネルエンジニアを上回る可能性があることを発見しました。

なぜでしょう?王が皮肉を込めて言ったように、「Linuxカーネルエンジニアを無職にすることではありません。」いいえ、目標は「人間のエンジニアを、各作業負荷のパフォーマンスを調整することから解放することです。人間がしばしば苦労する履歴データを使ってより良い意思決定を行うことができるように。そして最後に、現在の試行錯誤やヒューリスティック手法を用いて見出す解決策よりも優れた解決策を見つけることです。」

どのように?オートチューニングシステムは、特定のワークロードとハードウェア構成に基づいてLinuxカーネルの内部設定を自動的に調整するように設計されています。この動的な調整により、特定のシナリオに対してカーネルを手動で調整するというLinuxコミュニティの長年の課題が解決され、最適なパフォーマンスが確保されます。これを実現するために、AI/MLフレームワークはベイズ最適化、遺伝的アルゴリズム、模擬アニーリング/進化アルゴリズムなどの複数のアルゴリズムを使用しています。

結果は?

  • 動的最適化:システムはカーネルのパフォーマンスを継続的に監視し、CPU周波数スケーリングやメモリ管理などの設定をリアルタイムで調整します。

  • 向上した効率:リソースの使用を最適化することで、自動調整システムは特に変動する負荷のある環境でLinuxシステムの効率を大幅に向上させます。

  • ユーザーフレンドリーなインターフェース:このシステムはユーザーフレンドリーなインターフェースを備えており、限られた技術的知識を持つ人でも強化されたカーネルパフォーマンスの恩恵を受けることができます。

  • カスタマイズ可能な設定:高度なユーザーは自動調整パラメータをカスタマイズし、システムを自分の特定のニーズに合わせることができます。

まだ初期段階ですが、ByteDanceはすでにいくつかの成功を収めています。例えば、メモリアクセスの監視と最適化のためのLinuxカーネルサブシステムであるDAMONをこのフレームワークとともに使用することで、MySQLアプリケーションの最適なスキームを見つけることができました。さまざまなDAMONスキームを実行し、そのパフォーマンスを比較することでこれを実現しました。結果、アプリケーションのメモリ使用量を30%削減できることがわかりました。大規模なアプリケーションにとって、それは本当に大きな節約です。

別のケースでは、ByteDanceは16のカーネルsysctlパラメータの調整を最適化することで、NGINXサーバーのHTTPネットワークレイテンシを最適化することができました。その最良のシナリオでは、ML調整がNGNIXのネットワーク性能を専門家の手動調整に対して12%向上させました。再度、これは大きな改善です。

バイトダンスはそのAI/MLアプローチがすべてのLinuxチューニング作業に有効であるとは主張していませんが、ワン氏は「制限はあるものの、カーネル機械学習は可能であるだけでなく、必要でもあると信じています。」と述べました。

私ですか?これがLinuxアプリケーションにとってゲームチェンジャーになる可能性があると思います。カーネルの最適化を簡素化することにより、Linuxはより多くのユーザーやアプリケーションにとってアクセスしやすく、効率的になります。特に、自動調整システムがほぼすべてのサーバー、クラウドコンピューティング、およびデータセンターアプリケーションのパフォーマンスを向上させると見ています。

関連記事: