「TikTok」などを運営する字節跳動(バイトダンス)のLinuxカーネルエンジニアであるCong Wang氏は、Linuxカーネルのトップ開発者が集まる招待制のカンファレンスであるLinux Plumbers Conferenceで、ワークロードに合わせて最善の結果が得られるように、人工知能(AI)と機械学習を使ってLinuxカーネルをチューニングすることを提案した。
提供:Image Source/Getty Images
一般的な話で言えば、Linuxカーネルはほぼどのようなタスクにも問題なく使えるが、特定の作業で最大の効果を上げるには、微調整して最善の結果が得られるようなパラメーターを設定する必要がある。ただし、このアプローチには1つだけ小さな問題がある。それは、パラメーターの数が何千にも及ぶことだ。Linuxの専門家であっても、最適なパフォーマンスを得るためのチューニング作業には時間と手間がかかる。しかも、ワークロードが変われば、また別のパラメータ群に別のチューニングを施さなければならない。Wang氏は、「バイトダンスが持っているような大規模なデータセンターには何百もの異なるワークロードがあり、それらのLinuxカーネルのパラメーターを手動で調整することは、今やほとんど不可能になっている」と述べた。
「System Management Interface Tool」(SMIT)や「Sysctl」、「TuneD」などのツールはそうした作業の役に立つが、手動で行うカーネルチューニングの変更作業が簡単になるにすぎない。Red Hatの「BayOp」のように、機械学習を使ってネットワークアプリケーションの効率を最適化することに特化した「賢い」プログラムもあるが、これは汎用のAI/機械学習ツールではなく、特定の種類のチューニングにしか使えない。
バイトダンスは、最小限のエンジニアリングで、Linuxカーネルのパラメーターをチューニングするプロセス全体を自動化する初めての試みに取り組んでいる。具体的に言えば、バイトダンスがやろうとしているのは、Linuxのメモリー管理のチューニングだ。しかも同社によれば、ベイズ最適化などの機械学習アルゴリズムを使用した自動チューニングは、ほとんどの場合、Linuxカーネルエンジニアによる手動のチューニングに優るという。
同社はなぜこのような取り組みを行っているのだろうか。Wang氏が皮肉を込めて言ったように、このアイデアは 「Linuxカーネルエンジニアを廃業に追い込む」ためのものではない。その目的は、より良い意思決定のために過去のデータを生かしつつ(人間はこれを苦手としている)、「人間のエンジニアを、個々のワークロードごとにパフォーマンスをチューニングする作業から解放する」ことだという。そしてもう1つ重要なのが、現在の試行錯誤による方法よりも優れた解決策を見つけることだ。