Linux:

Linux:

簡単な例です。私はTCPソケットを使ってhttpリクエストを処理するプロセスを実行しています。 A)CPUがボトルネックを引き起こすものを計算する場合B)ネットワークにボトルネックを引き起こす可能性がある大容量ファイルを転送する場合、またはC)ディスクボトルネックを引き起こす半ランダムアクセスを使用する複雑なデータベースクエリです。

各ページ/API呼び出しを上記のタイプの1つ以上に分類し、各ページ/API呼び出しの数のバランスを取る必要がありますか?それとも、OSが代わりにするのでしょうか?必要なスレッド数をどのように決定しますか?

ハードウェアスレッド12と48に2つの数字を使用します(Intel Xeonにはそれだけの数字があります)。 CPU使用量が多い場合(8/32)スレッド2/3、ディスク使用量が多い場合はスレッド1個(またはディスク当たり使用量が多いスレッド1個)、残りの3/15は他の用途に使うつもりです。ネットワークのバランスをとりましょう。

12/48スレッドのみをサポートするハードウェアに12/48以上のスレッドが必要ですか? CPUがより遅い調整モードに入らないように、より少ない量を望んでいますか?スレッドをロードしてリソースのバランスを取る必要がある場合はどうすればよいですか?

ベストアンサー1

Linux:

Linuxカーネルには、これをうまく実装し、実行中のプロセスのリソースを管理するように設計された多くの機能/設定があります(CPUマネージャ、sysctl、またはcgroupsを介して)。この場合、これらの設定を調整し、スワップ調整(必要な場合)を調整します。お勧めです。デフォルトでは、デバイスに応じてデフォルトの動作モードを調整します。

特に、本番サーバーでは、変更を適用した後のベンチマーク、ストレステスト、および状況分析が必須です。カーネル設定を目的の用途に調整すると、パフォーマンスが大幅に向上する可能性があります。一方、これにはさまざまな設定をテストして完全に理解する必要があるため、管理者には非常に時間がかかることがあります。

Linuxは以下を使用します支店実行中のアプリケーション間のCPUリソースの負荷分散には、複数のレギュレータを使用できます。デプロイカーネルによっては、一部のレギュレータを使用できない場合があります(欠落しているか、非アップストリームレギュレータを追加するためにカーネルを再構築することがあります)。確認できます県知事は誰ですか変化この場合、さらに重要なことは、設定を調整してください

追加書類:読むガイドエマルジョン周波数スケーリング知事の選択パフォーマンスコントローラそしてCPU周波数

システム制御:

システムコマンド実行時にカーネルパラメータを確認および変更するツールで、設定ファイルを介して永久に調整できます/etc/sysctl.conf。 Sysctlを使用して多くのカーネル設定を変更できるため、これはこの回答の重要な部分です。コマンドsysctl -a、詳細情報は以下で確認できます。これそしてこの記事

カテゴリー:

カーネルは次の機能を提供します。このガイドでは、短い名前であるcgroupと呼ばれる制御グループ。 Cgroupを使用すると、システムで実行されているカスタムタスク(プロセス)グループに、CPU時間、システムメモリ、ネットワーク帯域幅、またはこれらのリソースの組み合わせなどのリソースを割り当てることができます。設定されたcgroupを監視し、特定のリソースへのcgroupアクセスを拒否し、実行中のシステムでcgroupを動的に再設定することもできます。 cgconfig(制御グループの設定)サービスは、起動時に事前定義されたcgroupを起動してリセットし、再起動後も維持されるように設定できます。

ソース、追加の読み取りそして質問この問題では。

メモリ:

これは、システムのRAM容量が制限されている場合に便利です。そうでない場合は、RAMを主に使用するようにスワップを無効にできます。交換システムを調整できますプロセスごとまたは交換設定。必要に応じて、プロセスごとにリソース(メモリ)を制限できます。限界値(他のリソースを制限するためにも使用されます)。

ディスク:

ディスクI / O設定(入力/出力スケジューラ)も変更されることがあります。群れサイズ。

代替:

次のようなその他のツールいいねCPU制限中央処理ユニットワークセットまたは限界値この問題の代替として使用することができます。

おすすめ記事