ツール:

ツール:

Linux はマルチユーザー / 同時プロセス向けに構築されていることは知っていますが、企業レベルでは、その多くは、ごく少数のクライアントにのみサービスを提供する内部サービスをサポートする単一の (ただし大規模な) アプリケーションに使用されています。

このようなユースケースでは、シナリオを最適化するためにシステムまたはカーネル (具体的には Red Hat Linux、Fedora、CentOS) をどのように調整すればよいでしょうか? 遅延を最小限に抑え、コンテキストスイッチを減らし、ローカル ディスク I/O をほとんど発生させないようにします。

セッションの長さは永続的である可能性があり (クライアントの数が少数であるため)、データ サイズの交換は小さいが非常に頻繁で、1 秒あたり 1k から 2k のメッセージ、サイズは 40 から 100 バイトです。

答え1

パフォーマンスチューニングは科学であると同時に黒魔術でもあります。それに関する完全な本が書かれており、その中にはベンダードキュメント

まず適切なモニタリングから始め、負荷を追加し、ベースラインを取得し、その後で調整を開始し、調整によって意図した結果が得られたかどうかを確認します。
最適な結果が得られるまで、これを繰り返します。

主要な RHEL または CentOS リリースについては言及されていませんが、それらにはすべて、たとえばデーモンによる自動チューニングも含まれています。 から定義済みのパフォーマンス プロファイルを選択し 、 を使用してアクティブ化tunedできます。tuned-adm listtune-adm profile <profile-name>

あなたのユースケースではRHEL 7プロファイルlatency-performanceあなたにとって有益かもしれないもののように思えます:

latency-performanceレイテンシの低減に重点を置いたサーバー プロファイルです。このプロファイルは、C ステートのチューニングと透過的巨大ページの TLB 効率の向上の恩恵を受ける、レイテンシの影響を受けやすいワークロードに推奨されます。このプロファイルは、およびを設定することで、電力節約よりもパフォーマンスを優先しますintel_pstatemax_perf_pct=100透過的巨大ページを有効にし、を使用してcpupowerパフォーマンス cpufreq ガバナーを設定し、cpu_dma_latencyの値を要求します1

より一般的なLinuxチューニングブランダン・グレッグシステムのどの部分にどのツールを使用するかを示す視覚的な図をいくつか作成しており、非常に便利なチートシートになっています。

ツール:

パフォーマンスの観測可能性

sar監視に使用するオプション:

<code>sar</code> オプション

そして密接に関連しているのが、

Linux ベンチマークツール

観察結果をチューニングに変換します。

チューニングツール

関連情報