Linux は、開発者やエンジニアにその動作を「調整」する方法を提供し、オープンソース カーネルがリソースを管理する方法を調整できる数千の個別パラメータを提供します。このタイプのチューニングでは、カーネルを再コンパイルせずにパフォーマンスをより迅速に向上させることができますが、最も熟練した FOSS プログラマにとっても依然として困難な作業です。
カーネルのチューニングは非常に困難な作業であるため、人間の開発者の代わりに人工知能を使用してこの作業を処理する試みがあります。中国のテクノロジー企業ByteDanceは最近、Linuxカーネル自動チューニングのテスト結果を発表した。これは人工知能ベースのソリューションで、人間の技術者が履歴データを分析することでより適切なチューニングの決定を行えるようにするもので、人間が通常困難と感じる作業である。
チューニングを通じて最適な Linux パフォーマンスを実現するには、Linux 専門家による広範な実験が必要な時間のかかるプロセスです。ワークロードが異なれば、カーネル パラメーターのセットごとに異なるチューニング方法が必要になります。 ByteDanceの開発者Cong Wang氏は、同社が使用しているような大規模なデータセンターでは、「数百」の異なるワークロードに合わせてLinuxカーネルを手動で調整することはほぼ不可能だと述べた。
カーネルのチューニングを簡素化するように設計されたツールは存在しますが、それらは特定の種類の最適化を提供します。 ByteDance のアプローチは、カーネル チューニング領域における初の自動化ソリューション、つまり最小限のエンジニアリング投資ですべての Linux チューニング パラメータをカバーできるテクノロジを立ち上げることを目的としています。
Wang 氏のチームは、Linux のメモリ管理システムの最適化に特別な注意を払っています。同社は、ベイジアン最適化などの機械学習アルゴリズムを採用することで、自動パラメーター調整が、ほとんどの Linux カーネル エンジニアが通常達成するよりも優れた結果を達成できることを発見しました。
ByteDance の自動チューニング ツールは、特定のワークロードとハードウェア構成に基づいて Linux の内部設定を自動的に調整するように設計されています。コアは動的に調整されるため、あらゆる状況で最適なパフォーマンスが保証され、コンピューティング インスタンスごとにコアを手動で調整するという長年のニーズが解決されます。
ほとんどの場合、Wang 氏らの人工知能ベースの自動調整は効果があるようでした。 ByteDance によると、機械学習アルゴリズムはコアのパフォーマンスをリアルタイムで監視することでシステムを動的に最適化し、リソース使用量を最適化することで効率を向上させることができます。 AI システムにはユーザーフレンドリーなインターフェイスも備えており、技術的な知識が限られているユーザーでも、より使いやすいコアの恩恵を受けることができます。同時に、上級ユーザーは自動調整パラメータをカスタマイズできます。
ByteDance は、機械学習アルゴリズムにより、アプリケーションのメモリ使用量を 30% 削減したり、NGINX サーバー上の HTTP ネットワーク遅延を最適化したりすることができ、その結果、手動調整よりもネットワーク パフォーマンスが 12% 向上すると主張しています。クラウド コンピューティングとデータ センターのシナリオでは、これらの改善により、大幅なコスト削減と最適化されたパフォーマンスが実現します。開発者は、機械学習によるカーネル自動チューニングがあらゆるケースで機能するわけではないことを認めていますが、その必要性はますます高まると予想しています。
詳細については、ドキュメントを参照してください。
https://lpc.events/event/17/contributions/1520/attachments/1152/2582/Linux%20Kernel%20Autotuning.pdf