0

私は4つのCPUを搭載したLinuxサーバーを持っています。私はmysqlをインストールしていて、バックグラウンドで24時間年中無休で実行されるCPU負荷の高いタスクを持っています。すべてのプロセスにCPUアフィニティを使用する利点はありますか?例えば:

1 CPU = background task/daemon
2 CPU = background task/daemon
3 CPU = background task/daemon
4 CPU = mysql

各バックグラウンドタスクは、常にCPUの最大80%を消費します。

更新:私のタスクはlxmlパーサー(python)です。

4

1 に答える 1

1

あなたのプロセスが何をしているのか見てみましょう。スケジューラーがタスクを別のコア/CPUに切り替え続ける場合は、タスクを特定のコア/ CPUにロックすることで、パフォーマンスが向上する可能性があります。利点は、2つのコア/CPU間で毎回高価なコンテキストスイッチを実行する必要がないことです。

これが発生していない場合は、スケジューラーがそれらをシャッフルする必要があると判断したときに、それらを特定のコアにロックする必要はないと思います。

より具体的な答えを探している場合は、Linuxカーネルが使用しているスケジューラーと、プロセスをスケジュールする方法を調査することをお勧めします。それらをどのようにスケジュールするかを理解したら、構成/フラグで遊んで、バックグラウンドの重いタスクすべてでうまく機能するようにすることが有益な場合があります。ただし、極端なことを行うと、プロセス/スレッドが不足したり、実行時間が極端に長くなったり、一般的にパフォーマンスが低下したりするという大きなリスクに直面することに注意してください。

于 2012-08-27T21:30:27.467 に答える