検索
ホームページ運用・保守Linuxの運用と保守Linux 上の uma アーキテクチャについて話しましょう (画像とテキストで詳しく説明)

この記事では、Linux の uma アーキテクチャに関する関連知識を提供します。お役に立てば幸いです。

Linux 上の uma アーキテクチャについて話しましょう (画像とテキストで詳しく説明)

次のケースは Ubuntu 16.04 に基づいており、他の Linux システムにも適用できます。私が使用したケース環境は次のとおりです。

マシン構成: 32 CPU、64GB メモリ

NUMA におけるストレージ階層の概念:

Linux 上の uma アーキテクチャについて話しましょう (画像とテキストで詳しく説明)

##1) プロセッサー層: 単一の物理コアはプロセッサー層と呼ばれます。 2) ローカル ノード層: ノード内のすべてのプロセッサに対して、このノードはローカル ノードと呼ばれます。 3)ホームノード層:ローカルノードに隣接するノードをホームノードと呼ぶ。 4) リモートノード層: ローカルノードや隣接ノードではないノードはリモートノードと呼ばれます。 CPU がノードの種類によってメモリにアクセスする速度は異なります。ローカル ノードへのアクセス速度が最も速く、リモート ノードへのアクセス速度が最も遅くなります。つまり、アクセス速度はノードの距離に関係します。距離が離れるほどアクセス速度が遅くなり、この距離をノード距離といいます。アプリケーションは、異なる CPU モジュール間の相互作用を最小限に抑えるように努める必要があり、アプリケーションを CPU モジュール内で固定できれば、アプリケーションのパフォーマンスは大幅に向上します。

** Kunpeng 920 プロセッサに基づく CPU チップの構成について説明します。 ** Kunpeng 920 プロセッサ システムオンチップの各スーパー コア クラスタには、6 つのコア クラスタ、2 つの I/O クラスタが含まれます。および 4 つの DDR コントローラー。各スーパー コア クラスターは CPU チップにパッケージ化されています。各チップには、最大 3200MT/s のデータ転送速度を持つ 4 つの 72 ビット (64 ビット データ + 8 ビット ECC) 高速 DDR4 チャネルが統合されており、単一チップで最大 512GB×4 DDR ストレージ スペースをサポートできます。 L3 キャッシュは、L3 キャッシュ TAG と L3 キャッシュ DATA の 2 つの部分に物理的に分割されています。 L3 キャッシュ TAG は各コア クラスターに統合されており、リスニング レイテンシーを短縮します。 L3 キャッシュ DATA はオンチップ バスに直接接続されています。 Hydra Root Agent (Hydra Home Agent、HHA) は、マルチチップ システムのキャッシュ一貫性プロトコルを処理するモジュールです。 POE_ICL はシステム構成のハードウェア アクセラレータであり、通常、パケット シーケンサ、メッセージ キュー、メッセージ配信として使用したり、特定のプロセッサ コアの特定のタスクを実装したりするために使用できます。さらに、各スーパー コア クラスターは、ARM の GICv4 仕様と互換性のある汎用割り込みコントローラー ディストリビューター (GICD) モジュールを使用して物理的に構成されています。シングルチップまたはマルチチップ システムに複数のスーパー コア クラスタがある場合、システム ソフトウェアから認識できる GICD は 1 つだけです。

Linux 上の uma アーキテクチャについて話しましょう (画像とテキストで詳しく説明)

umactl の使用

Linux には、手動チューニング コマンド umactl が 1 つ用意されています (デフォルトではインストールされません)。Ubuntu でのインストール コマンドは次のとおりです。

sudo apt install numactl -y

まず、man numactl または umactl --h を使用して、パラメーターの機能と出力内容を理解します。システムの NUMA ステータスを確認します。

numactl --hardware

を実行すると、次の結果が得られます。

available: 4 nodes (0-3)
node 0 cpus: 0 1 2 3 4 5 6 7
node 0 size: 16047 MB
node 0 free: 3937 MB
node 1 cpus: 8 9 10 11 12 13 14 15
node 1 size: 16126 MB
node 1 free: 4554 MB
node 2 cpus: 16 17 18 19 20 21 22 23
node 2 size: 16126 MB
node 2 free: 8403 MB
node 3 cpus: 24 25 26 27 28 29 30 31
node 3 size: 16126 MB
node 3 free: 7774 MB
node distances:
node   0   1   2   3
  0:  10  20  20  20
  1:  20  10  20  20
  2:  20  20  10  20
  3:  20  20  20  10

Linux 上の uma アーキテクチャについて話しましょう (画像とテキストで詳しく説明)

この図とコマンドから得られた結果によると、 、このシステムには合計 4 つのノードがあり、それぞれに 8 つの CPU と 16G のメモリが搭載されていることがわかります。ここで注意する必要があるのは、CPU によって共有される L3 キャッシュも、対応する領域を独自に受け取ることになるということです。 umastat コマンドを使用して uma のステータスを確認できます。戻り値の内容:

uma_hit: このノードにメモリを割り当てる意図と、このノードからの最後の割り当て数です。

uma_miss: このノードにメモリを割り当てることが目的です。メモリが割り当てられ、最終的に他のノードから割り当てられた回数です。

uma_foreign: メモリがこのノードに割り当てられる回数です。他のノードに割り当てられますが、最終的にはこのノードから割り当てられます;

interleave_hit: インターリーブ戦略が使用され、このノードから割り当てられる回数は最終的にこのノードによって割り当てられる回数です。

local_node: このノード上のプロセスがこのノードに割り当てられた回数

other_node: 他のノードのプロセスがこのノードに割り当てられた回数

注: uma_miss の値が比較的高いことが判明した場合、配分戦略を調整する必要があることを意味します。たとえば、指定されたプロセスの関連付けが指定された CPU にバインドされるため、メモリ ヒット率が向上します。

root@ubuntu:~# numastat
                           node0           node1           node2           node3
numa_hit             19480355292     11164752760     12401311900     12980472384
numa_miss                5122680       122652623        88449951            7058
numa_foreign           122652643        88449935            7055         5122679
interleave_hit             12619           13942           14010           13924
local_node           19480308881     11164721296     12401264089     12980411641
other_node               5169091       122684087        88497762           67801

NUMA メモリ割り当て戦略

--localalloc または -l: プロセスがローカル ノードからのメモリ割り当てを要求することを指定します。 --membind=nodes または -m nodes: プロセスが指定されたノードからのみメモリ割り当てを要求できることを指定します。 --preferred=node: メモリを取得するための推奨ノードを指定します。取得に失敗した場合は、別のノードを試してください。 --interleave=nodes または -i nodes: プロセスがラウンド ロビン アルゴリズムを使用して、指定されたノードからメモリ割り当てをインターリーブ的に要求することを指定します。

 numactl --interleave=all mongod -f /etc/mongod.conf

因为NUMA默认的内存分配策略是优先在进程所在CPU的本地内存中分配,会导致CPU节点之间内存分配不均衡,当开启了swap,某个CPU节点的内存不足时,会导致swap产生,而不是从远程节点分配内存。这就是所谓的swap insanity 现象。或导致性能急剧下降。所以在运维层面,我们也需要关注NUMA架构下的内存使用情况(多个内存节点使用可能不均衡),并合理配置系统参数(内存回收策略/Swap使用倾向),尽量去避免使用到Swap。

Node->Socket->Core->Processor

随着多核技术的发展,将多个CPU封装在一起,这个封装被称为插槽Socket;Core是socket上独立的硬件单元;通过intel的超线程HT技术进一步提升CPU的处理能力,OS看到的逻辑上的核Processor数量。

Socket = Node

Socket是物理概念,指的是主板上CPU插槽;Node是逻辑概念,对应于Socket。

Core = 物理CPU

Core是物理概念,一个独立的硬件执行单元,对应于物理CPU;

Thread = 逻辑CPU = Processor

Thread是逻辑CPU,也就是Processo

lscpu的使用

显示格式:

  • Architecture:架构

  • CPU(s):逻辑cpu颗数

  • Thread(s) per core:每个核心线程,也就是指超线程

  • Core(s) per socket:每个cpu插槽核数/每颗物理cpu核数

  • CPU socket(s):cpu插槽数

  • L1d cache:级缓存(google了下,这具体表示表示cpu的L1数据缓存)

  • L1i cache:一级缓存(具体为L1指令缓存)

  • L2 cache:二级缓存

  • L3 cache:三级缓存

  • NUMA node0 CPU(s) :CPU上的逻辑核,也就是超线程

执行lscpu,结果部分如下:

root@ubuntu:~# lscpu
Architecture:          x86_64
CPU(s):                32
Thread(s) per core:    1
Core(s) per socket:    8
Socket(s):             4
L1d cache:             32K
L1i cache:             32K
L2 cache:              256K
L3 cache:              20480K
NUMA node0 CPU(s):     0-7
NUMA node1 CPU(s):     8-15
NUMA node2 CPU(s):     16-23
NUMA node3 CPU(s):     24-31

相关推荐:《Linux视频教程

以上がLinux 上の uma アーキテクチャについて話しましょう (画像とテキストで詳しく説明)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明
この記事は掘金で複製されています。侵害がある場合は、admin@php.cn までご連絡ください。
Linuxのメンテナンスモードの理解:必需品Linuxのメンテナンスモードの理解:必需品Apr 14, 2025 am 12:04 AM

Linuxメンテナンスモードは、起動時にinit =/bin/bashまたは単一パラメーターを追加することにより入力されます。 1.メンテナンスモードの入力:GRUBメニューを編集し、起動パラメーターを追加します。 2。ファイルシステムを読み取りおよび書き込みモードに再マウントします:Mount-Oremount、RW/。 3。ファイルシステムの修復:FSCK/dev/sda1などのFSCKコマンドを使用します。 4.データをバックアップし、データの損失を避けるために慎重に動作します。

DebianがHadoopデータ処理速度を改善する方法DebianがHadoopデータ処理速度を改善する方法Apr 13, 2025 am 11:54 AM

この記事では、DebianシステムのHadoopデータ処理効率を改善する方法について説明します。最適化戦略では、ハードウェアのアップグレード、オペレーティングシステムパラメーターの調整、Hadoop構成の変更、および効率的なアルゴリズムとツールの使用をカバーしています。 1.ハードウェアリソースの強化により、すべてのノードが一貫したハードウェア構成、特にCPU、メモリ、ネットワーク機器のパフォーマンスに注意を払うことが保証されます。高性能ハードウェアコンポーネントを選択することは、全体的な処理速度を改善するために不可欠です。 2。オペレーティングシステムチューニングファイル記述子とネットワーク接続:/etc/security/limits.confファイルを変更して、システムによって同時に開くことができるファイル記述子とネットワーク接続の上限を増やします。 JVMパラメーター調整:Hadoop-env.shファイルで調整します

Debian syslogを学ぶ方法Debian syslogを学ぶ方法Apr 13, 2025 am 11:51 AM

このガイドでは、Debian SystemsでSyslogの使用方法を学ぶように導きます。 Syslogは、ロギングシステムとアプリケーションログメッセージのLinuxシステムの重要なサービスです。管理者がシステムアクティビティを監視および分析して、問題を迅速に特定および解決するのに役立ちます。 1. syslogの基本的な知識Syslogのコア関数には以下が含まれます。複数のログ出力形式とターゲットの場所(ファイルやネットワークなど)をサポートします。リアルタイムのログ表示およびフィルタリング機能を提供します。 2。syslog(rsyslogを使用)をインストールして構成するDebianシステムは、デフォルトでrsyslogを使用します。次のコマンドでインストールできます:sudoaptupdatesud

DebianでHadoopバージョンを選択する方法DebianでHadoopバージョンを選択する方法Apr 13, 2025 am 11:48 AM

Debianシステムに適したHadoopバージョンを選択する場合、次の重要な要因を考慮する必要があります。1。安定性と長期的なサポート:安定性とセキュリティを追求するユーザーにとって、Debian11(Bullseye)などのDebianの安定したバージョンを選択することをお勧めします。このバージョンは完全にテストされており、最大5年のサポートサイクルがあり、システムの安定した動作を確保できます。 2。パッケージの更新速度:最新のHadoop機能と機能を使用する必要がある場合は、DebianのUnstableバージョン(SID)を検討できます。ただし、不安定なバージョンには互換性の問題と安定性のリスクがあることに注意する必要があります。 3。コミュニティのサポートとリソース:Debianには、豊富なドキュメントを提供できるコミュニティサポートが大きくなり、

debianのtigervnc共有ファイルメソッドdebianのtigervnc共有ファイルメソッドApr 13, 2025 am 11:45 AM

この記事では、Tigervncを使用してDebian Systemsでファイルを共有する方法について説明します。最初にtigervncサーバーをインストールしてから構成する必要があります。 1. TigerVNCサーバーをインストールし、端末を開きます。ソフトウェアパッケージリストの更新リスト:sudoaptupdate tigervnc server:sudoaptinstaltaltigervnc-standalone-servertigervnc-common2。tigervncサーバーを構成するVNCサーバーパスワードを設定します。

Debian Mail Serverファイアウォールの構成のヒントDebian Mail Serverファイアウォールの構成のヒントApr 13, 2025 am 11:42 AM

Debian Mail Serverのファイアウォールの構成は、サーバーのセキュリティを確保するための重要なステップです。以下は、iPtablesやFirewalldの使用を含む、一般的に使用されるファイアウォール構成方法です。 iPtablesを使用してファイアウォールを構成してIPTablesをインストールします(まだインストールされていない場合):sudoapt-getupdatesudoapt-getinstalliptablesview現在のiptablesルール:sudoiptables-l configuration

Debian Mail Server SSL証明書のインストール方法Debian Mail Server SSL証明書のインストール方法Apr 13, 2025 am 11:39 AM

Debian Mail ServerにSSL証明書をインストールする手順は次のとおりです。1。最初にOpenSSL Toolkitをインストールすると、OpenSSLツールキットがシステムに既にインストールされていることを確認してください。インストールされていない場合は、次のコマンドを使用してインストールできます。sudoapt-getUpdatesudoapt-getInstalopenssl2。秘密キーと証明書のリクエストを生成次に、OpenSSLを使用して2048ビットRSA秘密キーと証明書リクエスト(CSR)を生成します:Openss

Debian Mail Server仮想ホスト構成方法Debian Mail Server仮想ホスト構成方法Apr 13, 2025 am 11:36 AM

Debianシステムでのメールサーバーの仮想ホストの構成には、通常、Apache Httpserverではなく、Apache Httpserverではなく、Mail Serverソフトウェア(Postfix、Eximなど)のインストールと構成が含まれます。以下は、メールサーバーの構成のための基本的な手順です仮想ホスト:ポストフィックスメールサーバー更新システムパッケージ:sudoaptupdatesudoaptupgradeポストフィックス:sudoapt

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

SublimeText3 Linux 新バージョン

SublimeText3 Linux 新バージョン

SublimeText3 Linux 最新バージョン

EditPlus 中国語クラック版

EditPlus 中国語クラック版

サイズが小さく、構文の強調表示、コード プロンプト機能はサポートされていません

PhpStorm Mac バージョン

PhpStorm Mac バージョン

最新(2018.2.1)のプロフェッショナル向けPHP統合開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター