成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

讓我們一起了解Linux上Numa架構(gòu)

開發(fā) 架構(gòu)
隨著多核技術(shù)的發(fā)展,將多個CPU封裝在一起,這個封裝被稱為插槽Socket;Core是socket上獨(dú)立的硬件單元;通過intel的超線程HT技術(shù)進(jìn)一步提升CPU的處理能力,OS看到的邏輯上的核Processor數(shù)量。

[[411098]]

本文轉(zhuǎn)載自微信公眾號「運(yùn)維開發(fā)故事」,作者沒有文案的夏老師。轉(zhuǎn)載本文請聯(lián)系運(yùn)維開發(fā)故事公眾號。

準(zhǔn)備環(huán)境

以下案例基于 Ubuntu 16.04,同樣適用于其他的 Linux 系統(tǒng)。我使用的案例環(huán)境如下所示:

機(jī)器配置:32 CPU,64GB 內(nèi)存

在NUMA中儲存層次的概念:

1)處理器層:單個物理核,稱為處理器層。2)本地節(jié)點(diǎn)層:對于某個節(jié)點(diǎn)中的所有處理器,此節(jié)點(diǎn)稱為本地節(jié)點(diǎn)。3)home節(jié)點(diǎn)層:與本地節(jié)點(diǎn)相鄰的節(jié)點(diǎn)稱為home節(jié)點(diǎn)。4)遠(yuǎn)程節(jié)點(diǎn)層:非本地節(jié)點(diǎn)或鄰居節(jié)點(diǎn)的節(jié)點(diǎn),稱為遠(yuǎn)程節(jié)點(diǎn)。CPU訪問不同類型節(jié)點(diǎn)內(nèi)存的速度是不相同的,訪問本地節(jié)點(diǎn)的速度最快,訪問遠(yuǎn)端節(jié)點(diǎn)的速度最慢,即訪問速度與節(jié)點(diǎn)的距離有關(guān),距離越遠(yuǎn)訪問速度越慢,此距離稱作Node Distance。應(yīng)用程序要盡量的減少不同CPU模塊之間的交互,如果應(yīng)用程序能有方法固定在一個CPU模塊里,那么應(yīng)用的性能將會有很大的提升。

以鯤鵬920處理器講一下cpu芯片的的構(gòu)成:鯤鵬920處理器片上系統(tǒng)的每個超級內(nèi)核集群包含6個內(nèi)核集群、2個I/O集群和4個DDR控制器。每個超級內(nèi)核集群封裝成一個CPU晶片。每個晶片上集成了4個72位(64位數(shù)據(jù)加8位ECC)、數(shù)據(jù)傳輸率最高為3200MT/s的高速DDR4通道,單晶片可支持最多512GB×4的DDR存儲空間。L3 Cache在物理上被分為兩部分:L3 Cache TAG和L3 Cache DATA。L3 Cache TAG集成在每個內(nèi)核集群中,以降低監(jiān)聽延遲。L3 Cache DATA則直接連接片上總線。

Hydra根代理(Hydra Home Agent,HHA)是處理多芯片系統(tǒng)Cache一致性協(xié)議的模塊。POE_ICL是系統(tǒng)配置的硬件加速器,一般可以用作分組順序整理器、消息隊列、消息分發(fā)或者實(shí)現(xiàn)某個處理器內(nèi)核的特定任務(wù)等。此外,每個超級內(nèi)核集群在物理上還配置了一個通用中斷控制器分發(fā)器(GICD)模塊,兼容ARM的GICv4規(guī)范。當(dāng)單芯片或多芯片系統(tǒng)中有多個超級內(nèi)核集群時,只有一個GICD對系統(tǒng)軟件可見。

numactl的使用

Linux提供了一個一個手工調(diào)優(yōu)的命令numactl(默認(rèn)不安裝),在Ubuntu上的安裝命令如下:

  1. sudo apt install numactl -y 

首先你可以通過man numactl或者numactl --h了解參數(shù)的作用與輸出的內(nèi)容。查看系統(tǒng)的numa狀態(tài):

  1. numactl --hardware 

運(yùn)行得到如下的結(jié)果:

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

根據(jù)這個圖與命令得到的結(jié)果,可以看到,此系統(tǒng)共有4個node,各領(lǐng)取8個CPU和16G內(nèi)存。 這里還需要注意的就是CPU共享的L3 cache也是會自己領(lǐng)取相應(yīng)的空間。通過numastat命令可以查看numa狀態(tài),返回值內(nèi)容:

  • numa_hit:是打算在該節(jié)點(diǎn)上分配內(nèi)存,最后從這個節(jié)點(diǎn)分配的次數(shù);
  • numa_miss:是打算在該節(jié)點(diǎn)分配內(nèi)存,最后卻從其他節(jié)點(diǎn)分配的次數(shù);
  • numa_foreign:是打算在其他節(jié)點(diǎn)分配內(nèi)存,最后卻從這個節(jié)點(diǎn)分配的次數(shù);
  • interleave_hit :采用interleave策略最后從本節(jié)點(diǎn)分配的次數(shù)
  • local_node:該節(jié)點(diǎn)上的進(jìn)程在該節(jié)點(diǎn)上分配的次數(shù)
  • other_node:是其他節(jié)點(diǎn)進(jìn)程在該節(jié)點(diǎn)上分配的次數(shù)

注:如果發(fā)現(xiàn) numa_miss 數(shù)值比較高時,說明需要對分配策略進(jìn)行調(diào)整。例如將指定進(jìn)程關(guān)聯(lián)綁定到指定的CPU上,從而提高內(nèi)存命中率。

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

NUMA的內(nèi)存分配策略

--localalloc或者-l:規(guī)定進(jìn)程從本地節(jié)點(diǎn)上請求分配內(nèi)存。--membind=nodes或者-m nodes:規(guī)定進(jìn)程只能從指定的nodes上請求分配內(nèi)存。--preferred=node:指定一個推薦的node來獲取內(nèi)存,如果獲取失敗,則嘗試別的node。--interleave=nodes或者-i nodes:規(guī)定進(jìn)程從指定的nodes上,以round robin算法交織地請求內(nèi)存分配。

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

因為NUMA默認(rèn)的內(nèi)存分配策略是優(yōu)先在進(jìn)程所在CPU的本地內(nèi)存中分配,會導(dǎo)致CPU節(jié)點(diǎn)之間內(nèi)存分配不均衡,當(dāng)開啟了swap,某個CPU節(jié)點(diǎn)的內(nèi)存不足時,會導(dǎo)致swap產(chǎn)生,而不是從遠(yuǎn)程節(jié)點(diǎn)分配內(nèi)存。這就是所謂的swap insanity 現(xiàn)象。或?qū)е滦阅芗眲∠陆怠K栽谶\(yùn)維層面,我們也需要關(guān)注NUMA架構(gòu)下的內(nèi)存使用情況(多個內(nèi)存節(jié)點(diǎn)使用可能不均衡),并合理配置系統(tǒng)參數(shù)(內(nèi)存回收策略/Swap使用傾向),盡量去避免使用到Swap。

Node->Socket->Core->Processor

隨著多核技術(shù)的發(fā)展,將多個CPU封裝在一起,這個封裝被稱為插槽Socket;Core是socket上獨(dú)立的硬件單元;通過intel的超線程HT技術(shù)進(jìn)一步提升CPU的處理能力,OS看到的邏輯上的核Processor數(shù)量。

Socket = Node

Socket是物理概念,指的是主板上CPU插槽;Node是邏輯概念,對應(yīng)于Socket。

Core = 物理CPU

Core是物理概念,一個獨(dú)立的硬件執(zhí)行單元,對應(yīng)于物理CPU;

Thread = 邏輯CPU = Processor

Thread是邏輯CPU,也就是Processo

lscpu的使用

顯示格式:

  • Architecture:架構(gòu)
  • CPU(s):邏輯cpu顆數(shù)
  • Thread(s) per core:每個核心線程,也就是指超線程
  • Core(s) per socket:每個cpu插槽核數(shù)/每顆物理cpu核數(shù)
  • CPU socket(s):cpu插槽數(shù)
  • L1d cache:級緩存(google了下,這具體表示表示cpu的L1數(shù)據(jù)緩存)
  • L1i cache:一級緩存(具體為L1指令緩存)
  • L2 cache:二級緩存
  • L3 cache:三級緩存
  • NUMA node0 CPU(s) :CPU上的邏輯核,也就是超線程

執(zhí)行l(wèi)scpu,結(jié)果部分如下:

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

 

責(zé)任編輯:武曉燕 來源: 運(yùn)維開發(fā)故事
相關(guān)推薦

2021-11-29 07:24:08

ACID事務(wù)大數(shù)據(jù)

2024-05-28 00:00:03

Java垃圾收集機(jī)制

2021-07-27 18:03:59

iOSSwift調(diào)度器

2022-05-07 07:43:07

Redis存儲系統(tǒng)數(shù)據(jù)庫

2021-10-27 07:15:37

SpringAOP編程(

2022-03-31 18:59:43

數(shù)據(jù)庫InnoDBMySQL

2021-08-27 07:06:10

IOJava抽象

2021-12-29 08:27:05

ByteBuffer磁盤服務(wù)器

2022-03-08 17:52:58

TCP格式IP

2023-06-30 08:27:20

2021-11-26 07:00:05

反轉(zhuǎn)整數(shù)數(shù)字

2021-07-15 07:23:28

Singlefligh設(shè)計

2022-02-14 10:16:22

Axios接口HTTP

2022-02-14 07:03:31

網(wǎng)站安全MFA

2016-09-06 10:39:30

Dell Techno

2022-06-26 09:40:55

Django框架服務(wù)

2023-08-14 08:38:26

反射reflect結(jié)構(gòu)體

2009-11-13 14:52:24

ADO.NET XML

2022-07-10 23:15:46

Go語言內(nèi)存

2023-08-02 08:35:54

文件操作數(shù)據(jù)源
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號

主站蜘蛛池模板: 99reav| 二区三区av | 99热热热 | 国产亚洲精品一区二区三区 | 91天堂| 欧美在线观看一区 | 日韩国产在线观看 | 欧美一区二区三区,视频 | 中国一级大黄大片 | 欧美日韩精品专区 | 日本在线中文 | 欧美理论 | 久热久 | 久久久国产精品入口麻豆 | 国产精品一区二区久久精品爱微奶 | 亚洲成人自拍网 | 久久av网站 | 91干b| 不卡的av一区 | 婷婷精品 | 四虎永久免费影院 | 理论片午午伦夜理片影院 | 欧美一区二区三区在线播放 | 亚洲综合在线一区二区 | 亚洲成网 | 91精品国产综合久久久亚洲 | 成人精品免费视频 | av网站在线免费观看 | a级黄色毛片免费播放视频 国产精品视频在线观看 | 免费久久99精品国产婷婷六月 | 成人免费视屏 | 国产在线高清 | 亚洲视频欧美视频 | 中文字幕一区二区三区在线视频 | 中文字幕a√ | av在线免费看网址 | 久久国产精品久久久久久 | 国产精品我不卡 | 欧美一区二区免费视频 | 99久久免费精品视频 | 亚洲男女激情 |