私はカーネル開発に不慣れで、スケジュールされた新しいカーネルパッチについて理解しようとしています:ttyタスクグループごとに自動化されています。
誰かがそれが何をしているのかを簡単に説明できますか?
私はカーネル開発に不慣れで、スケジュールされた新しいカーネルパッチについて理解しようとしています:ttyタスクグループごとに自動化されています。
誰かがそれが何をしているのかを簡単に説明できますか?
パッチの私の印象(それに関するほとんどの記事は詳細に光っていますが)は、CPUの比率を自動的により均等にバランスさせることができるということでした。
Linux CFS Completely Fair Schedulerは、しばらくの間、グループバランシングの動作をしていました。これが意味するのは、ユーザーAが500のタスクを開始し、ユーザーBが1つだけを開始する場合、公平性はタスクではなくユーザー間でバランスを取る必要があるということです。
そのためには、すべてのユーザーAのジョブを1つのグループに、すべてのユーザーBのジョブを別のグループに配置する必要があります。CPUはそれらの間で均等に共有されます。ユーザーAは、反社会的であるという理由だけで容量を増やすことはできません。より多くのタスクを実行します。
ただし、公平性は、ユーザーID(動的)またはコントロールグループ(比較的苦痛な静的セットアップ方法)のいずれかに基づいていました。
このパッチが行うように見えるのは、TTYに基づいてグループにジョブを自動的に割り当てることです。このようにして、グループへの分離は自動機能(コントロールグループの設定なし)になり、ユーザーIDよりも細かく実行されます(通常のデスクトップでは、ほとんどのジョブを実行するユーザーが1人だけであるため、少なくとも自動管理のもの)。
したがって、Linusが座って次のカーネルをコンパイルすると、大規模な並列ビルドプロセスのすべてのタスクが1つのグループにまとめられ、LinusはVLCを起動して、ビッグバン理論の最新エピソードを見ることができます(彼はこの番組を見ていて、ボックスにさまざまなソフトウェアが入っているかどうかもわかりません。私が知っている限り、彼は完全に別のグループでWindows MediaPlayerをWindows7)で実行できます。
その後、CPUは2つのグループ間で比較的均等に共有され、LinusはSheldonが画面上をぎくしゃくと動くのを見る必要がなくなります。
もちろん、カーネルのビルドは遅くなりますが、それが彼が私たちのために実行している重要なタスクであるとは限りません。彼の正気度が維持されていることを意味するなら、少し待つことができます:-)
私が読んだ(そして見た)ことから、これはデスクトップアプリケーションの応答性を大幅に改善します。全体的な容量は増えませんが、特定のシナリオでは大幅に改善されます。
もちろん、使用状況プロファイルがTTYごとに1つのタスク(または単一のTTY内のすべてのタスク)である場合、それはおそらくそれほど役に立ちません。ただし、一部のシナリオを改善し、他のシナリオをあまり劣化させない場合は、勝者になります。そして、それが他のものを劣化させたとしても、それは設定可能な振る舞いなので、おそらくそれでもカーネルに忍び込みます。
興味深いことに、このパッチ候補が「主流メディア」になった今、木工品から出てきた人々が、あなたや他のいくつかのマイナーな調整を変更して同じことを行うことができると述べています。.bashrc
これは基本的に、前述のコントロールグループの周りに「自動化された」ツールをラップします。
Linusは、シェルに依存しないことを望んでいるため、このユーザーランドソリューションをすでに拒否しています。これは、ユーザーが行う必要のあることではありません。
これは、すべてのユーザーとすべてのシェルに対して実行したいことであり、自動的に実行されるようにします。古いディストリビューションなどをお持ちのユーザーも含め、1か所で簡単に行えます。そして、カーネルで簡単に確認できる他のすべてのヒューリスティックに対してそれを行います。そして、ユーザーが気付くことなく魔法のようにそれを行います。
突然、bashrcで遊ぶのはそれほど素晴らしいことではなくなったようですよね?
それがポイントです。カーネルの変更をプッシュすることができ、すべてが「正常に機能」します。カーネルにすでにある機能を実際に役立つようにすることができます。
正常に機能するはずのユーザーレベルの構成は煩わしいものです。私たちはもっとうまくやることができます。
別の言い方をすれば、何かを行うためのより良い方法を見つけた場合、「ユーザーがそれを望むなら、この<ここでの技術的なこと>を行うことができる」と言うべきではありません。それが本当に何かをするためのより良い方法であるならば、私たちはただそれをするべきです。ユーザー設定を要求することは機能ではありません。
さて、ユーザーにcgroupの使用を許可すべきではないと言っているのではありません。もちろん、手動で行うこともできます。しかし、自分たちでもっと簡単にできるようなばかげたことをユーザーに要求するべきではありません。
みんなに「これをやるべきだ」とか「私たちはあなたのためにこれをやるべきだ」と言うか、どちらかを選ぶなら、私は毎回2番目のものを取ります。私たちはそれがなされるべきであることを知っています。なぜ私たちは他の誰かに私たちのためにそれをするように言う必要がありますか?
私はその感情に同意する必要があります-パフォーマンスを向上させるために特別なことをしなければならないことをユーザーに伝えることが許可された場合は、ではなくユーザーに使用させることができ"nice make -j64"
ます"make -j64"
。