日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

Intel Optane PMEM 概览

發(fā)布時間:2023/11/27 生活经验 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Intel Optane PMEM 概览 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

文章目錄

    • 前言
    • 基本架構(gòu)
    • 編程模型
    • PMDK
      • 接口架構(gòu)
      • 接口概覽
      • pmdk 安裝
      • 開發(fā)文檔匯總
    • PMEM性能
      • 官方性能
      • 實測性能


前言

隨著以PCM 為存儲單元的3D XPoint 非易失存儲介質(zhì) 不斷精進的工藝,以及 上層硬件協(xié)議棧的飛速發(fā)展,為非易失內(nèi)存這樣硬件的出現(xiàn)提供了技術(shù)工藝基礎(chǔ)。
關(guān)于3D XPoint 介質(zhì) 和 NAND 介質(zhì) 之間的底層差異,可以參考從NMOS 和 PCM 底層存儲單元 來看NAND和3D XPoint的本質(zhì)區(qū)別

全新英特爾? 傲騰TM 持久型內(nèi)存重新定義了傳統(tǒng)的架構(gòu),以合 理的價格提供大型持久型內(nèi)存層級。英特爾? 傲騰TM 級持久型 內(nèi)存(結(jié)合第二代智能英特爾? 至強? 可擴展處理器)在內(nèi)存 密集型工作負載、虛擬機密度和快速存儲容量方面具有突破 性的性能水平,通過比以往更快的分析、云服務(wù)和下一代通 信服務(wù),可加速 IT 轉(zhuǎn)型以支持數(shù)據(jù)時代的需求。

基本架構(gòu)

PMEM 所處 intel構(gòu)建的 存儲架構(gòu)體系的位置 以及 它的性能量級 如下:

總的來說 PMEM處于DDR 內(nèi)存性能之下,能夠提供持久化能力 且 性能和 DDR 在一個量級,遠低于NAND SSD。

基本特點如下:

  • 容量更大 ,更經(jīng)濟實惠
    能夠提供128G,256G,512G 的容量,且和DDR4總線兼容。它能夠插在內(nèi)存條的插槽之上。

  • 字節(jié)可尋址
    可以直接加載訪問,其實是以256B 為基本讀寫單元大小。

  • 高性能存儲
    底層3d xpoint 保證了性能和非易失性

  • 支持兩種操作模式
    內(nèi)存模式和 APP Direct模式。
    內(nèi)存模式下:

    即PMEM和內(nèi)存作用一樣,由MMU直接管理空間訪問,同樣存在易失性問題。
    不過內(nèi)存模式下性能 肯定是沒有 傳統(tǒng)的DDR性能好。

    APP Direct模式如下:

    PMEM 可以代替DDR,作為內(nèi)存并提供持久化能力。只是這個時候,PMEM的空間管理需要由軟件層來做。

整個PMEM的完整模塊系統(tǒng)如下:

主體部分以 持久內(nèi)存的控制器功能為主,內(nèi)部集成了針對3D XPoint存儲介質(zhì)的各個組件管理,基本的數(shù)據(jù)加密,EC校驗 以及 保證PCM 存儲單元的正常散熱和功耗優(yōu)化 的組件等。這幅圖中CPU以64B訪問是有一些問題,當前的PMEM版本其實是以256B來訪問的。

持久內(nèi)存的使用模式對比如下:

優(yōu)勢劣勢
持久內(nèi)存
內(nèi)存模式
容量大,相比于DDR 更便宜
DRAM可作為持久內(nèi)存的緩存。
更大的實例容量,更多實例樹木擴展
無序應(yīng)用改動,容易使用
支持最新的CLX平臺
持久內(nèi)存
APP Direct模式
容量大,價格便宜
DRAM和持久內(nèi)存空間都可用
更大的實例容量,更多實例數(shù)目擴展 ,更穩(wěn)定的性能表現(xiàn)
持久化特性,更好的持久化性能,更快的 恢復(fù)時間
只支持最新的CLX平臺
需要應(yīng)用管理數(shù)據(jù)的分層,應(yīng)用需要改 動
不經(jīng)過kernel,所以kernel COW 不支 持

編程模型

這個針對PMEM的編程模型叫做SNIA(storage network industry association) 細節(jié)可以參考 SNIA,介紹了用戶如何來通過標準接口訪問PMEM低層。

  • Persistent Memory 部分中:有兩種訪問NVDIMMs (底層PMEM存儲)的方式,第一種是pmdk,以pmem_mmap方式訪問,第二種是通過pmem aware-fs來訪問, 這個pmem aware-fs是pmem設(shè)備支持的一種適配文件系統(tǒng),可以提供標準用戶訪問的API(read,write,pread,pwrite…)。
  • Block中 操作系統(tǒng)抽象出 NVDIMM driver可以在其上格式化標準文件系統(tǒng)(xfs/ext4),對外提供文件系統(tǒng)API;同時也能夠?qū)ν馓峁藴试O(shè)備API 來直接訪問 driver。
  • 第三種就是 NVME driver提供了UI ,可以通過UI直接訪問NVMDIMM。

PMDK

PMDK 則是官方為 PMEM的管理員和應(yīng)用開發(fā)者抽象出來的用戶態(tài)接口,能夠極大得簡化用戶操作pmem的成本。

接口架構(gòu)

persistent memory development kit 接口 提供了大量的編程接口,足以應(yīng)對用戶的各種復(fù)雜操作的需求。

對外接口 以及 不同的庫之間關(guān)系如下:

接口概覽

  • libpmem 提供最底層的庫給應(yīng)用,保證數(shù)據(jù)能夠持久化。只是不保證原子性和一致性(沒有事務(wù)),如果用戶直接用這一個庫,則需要自己保證這一些特性。

  • librpmem類似libpmem 提供的持久化能力 以及一些問題,只是這個庫支持通過RDMA訪問遠端的PMEM 設(shè)備。

  • libpmemlog 提供能夠持久化的log 庫

  • libpmemobj 用戶主要是使用的庫,提供了持久化、事務(wù)、內(nèi)存管理、鎖、基本數(shù)據(jù)結(jié)構(gòu)(鏈表。。),保證了原子性和一致性。

  • libpmemblk 提供持久化的塊存儲,保證了塊數(shù)據(jù)的原子更新和下電不丟失。

  • libmemkind 用作pmem的內(nèi)存模式,可以通過malloc/free申請釋放空間,就像使用DDR一樣。

pmdk 安裝

下面主要介紹的是linux 系統(tǒng)的安裝,關(guān)于windows 的安裝,可以參考https://github.com/pmem/pmdk

  1. 依賴安裝:

    yum install autoconf pkg-config ndctl-devel daxctl-devel pandoc -y 
    
  2. 最新版本的pmdk 會依賴更高版本的ndctl,而這個較高版本的ndctl無法通過yum直接安裝,只能通過源碼編譯安裝。
    這個過程中遇到的問題挺多的,當然看個人系統(tǒng),如果系統(tǒng)庫安裝的比較全,可能也一次通過,簡單記錄一下。

    git clone https://github.com/pmem/ndctl.git
    cd ndctl
    git checkout v71 # 當前的最新版本./autogen.shActivated pre-commit hook.GIT_VERSION = 71sh: aclocal: command not foundautoreconf: aclocal failed with exit status: 127 # 執(zhí)行失敗
    ----------------------------------------------------# 解決
    sudo yum install automake libtool -y
    autoreconf -ivf# 執(zhí)行成功
    $ ./autogen.sh
    ----------------------------------------------------------------
    Initialized build system. For a common configuration please run:
    ----------------------------------------------------------------
    ./configure CFLAGS='-g -O2' --prefix=/usr --sysconfdir=/etc --libdir=/usr/lib64# 執(zhí)行./configure 
    ./configure CFLAGS='-g -O2' --prefix=/usr --sysconfdir=/etc --libdir=/usr/lib64
    ...
    checking for a sed that does not truncate output... (cached) /usr/bin/sed
    checking for asciidoctor... missing
    configure: error: asciidoctor needed to build documentation # 執(zhí)行失敗
    ----------------------------------------------------# 解決
    sudo yum install asciidoctor -y# 重新執(zhí)行 ./configure
    ./configure CFLAGS='-g -O2' --prefix=/usr --sysconfdir=/etc --libdir=/usr/lib64
    ...
    checking for KMOD... no
    configure: error: Package requirements (libkmod) were not met:No package 'libkmod' foundConsider adjusting the PKG_CONFIG_PATH environment variable if you
    installed software in a non-standard prefix # 執(zhí)行失敗
    ----------------------------------------------------#解決
    sudo yum install kmod kmod-devel -y# 再次重新執(zhí)行 ./configure
    ./configure CFLAGS='-g -O2' --prefix=/usr --sysconfdir=/etc --libdir=/usr/lib64
    ...
    configure: error: Package requirements (uuid) were not met:No package 'uuid' found #執(zhí)行失敗
    ----------------------------------------------------#解決
    sudo yum install libuuid-devel json-c-devel -y# 執(zhí)行./configure 成功,生成 Makefile
    ./configure CFLAGS='-g -O2' --prefix=/usr --sysconfdir=/etc --libdir=/usr/lib64
    # 安裝ndctl
    make && sudo make install
    
  3. 編譯:

    # 獲取代碼
    git clone https://github.com/pmem/pmdk
    cd pmdk
    git checkout stable-1.10 # 這一步也可以跳過,直接編譯master分支# 編譯 ,建議以root用戶來執(zhí)行
    make EXTRA_CFLAGS="-Wno-error" 
    make install prefix=/usr/local # 如果沒有root用戶,可以指定自己的安裝prefix,默認是/usr/local
    

開發(fā)文檔匯總

  1. PMDK官網(wǎng):https://pmem.io/pmdk
  2. PMDK 開發(fā)指南 書籍:https://pmem.io/book/
  3. PMDK 開發(fā)者論壇: https://groups.google.com/forum/?utm_source=digest&utm_medium=email#!forum/pmem/topics
  4. 持久內(nèi)存指南: https://software.intel.com/en-us/persistent-memory/get-started
  5. 持久內(nèi)存編程示例https://software.intel.com/en-us/persistent-memory/training
  6. 分析你的系統(tǒng)是否適合使用PMEM 的工具: [https://software.intel.com/en- us/articles/vtune-amplifier-platform-profiler](https://software.intel.com/en- us/articles/vtune-amplifier-platform-profiler)
  7. PMDK 實踐應(yīng)用:
    • VMware vSphere : https://vspherecentral.vmware.com/t/hardware-acceleration/persistent-memory-pmem/
    • Microsoft Hyper-V: https://docs.microsoft.com/en-us/windows-server/virtualization/hyper-v/manage/persistent-memory-cmdlets
    • pmem-redis: https://github.com/pmem/pmem-redis

PMEM性能

官方性能

參考鏈接: https://www.intel.com/content/www/us/en/products/docs/memory-storage/optane-persistent-memory/optane-persistent-memory-200-series-brief.html

其中 以128G容量為例:

  • 寫入單元為256B時,能夠提供292PB 的總寫入壽命,6.8GB/s的讀帶寬,1.85GB/s的寫帶寬,依次讀寫延時基本都在百ns量級
  • 寫入單元為64B時,壽命以及讀寫帶寬都有下降。只能寫入91PB的總數(shù)據(jù)量,讀寫帶寬分別只有1.7Gb/s和0.45GB/s。因為PMEM的字節(jié)尋址的基本單元也是256B,也就是如果只寫入64B,需要占用256B的存儲空間,如果底層要寫入的單元有數(shù)據(jù),則需要先讀取256B的數(shù)據(jù)單元,將64B的數(shù)據(jù)添加進去,再把256B的單元整體寫入到PMEM中。這個過程會極大得降低讀寫性能,所以,針對PMEM的編程建議256B對齊,這樣對pmem的性能更加友好。

實測性能

PMEM性能和內(nèi)存處于一個量級,且PMEM是插在DIMM插槽,也就是內(nèi)存條的插槽上。所以CPU訪問PMEM的性能 只有綁定 NUMA 才能完整體現(xiàn)。

  • 硬件環(huán)境:
    CPU:Intel? Xeon? CPU E5-2680 v4 @ 2.40GHz 56core
    內(nèi)存: 256G
    硬盤:pmem 128G*4 aep
    操作系統(tǒng):CentOS Linux release 7.4.1708 (Core)
    文件系統(tǒng):XFS(rw,noatime,attr2,dax,inode64,noquota)
    測試軟件:FIO

  • fio腳本

    [global]
    ioengine=libpmem #pmem引擎
    direct=1
    norandommap=1
    randrepeat=0
    runtime=60
    time_based
    size=1G
    directory=./fio
    group_reporting
    [read256B-rand]
    bs=256B
    rw=randread
    numjobs=32
    iodepth=4 
    cpus_allowed=0-15,16-31 #綁定numa
    

如果大家要對比PMEM和SSD的性能,可以同樣的腳本去測試一下SSD,ioengine可以替換成libaio。

這個測試 達不到 官網(wǎng)給出的 單個128G 在256B的讀場景下 的6.8G的帶寬,我們使用的是128G*4的 pmem,總帶寬實際測試也只有7.5G/s,這個目前還沒有和官方核對。

其他的數(shù)據(jù)在libpmem引擎下基本一樣,還有如果使用普通的libaio引擎,也就是走文件系統(tǒng)的調(diào)用,讀寫性能會有20%以上的損失,這里的損失基本是由內(nèi)核文件系統(tǒng)帶來的,libpmem引擎能夠支持fio直接通過用戶態(tài)調(diào)用pmdk來訪問PMEM,性能相比于libaio肯定會好一些。

總結(jié)

以上是生活随笔為你收集整理的Intel Optane PMEM 概览的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 天天天天天天干 | 91亚洲精品国偷拍自产在线观看 | 欧美一级网站 | 亚洲综合一区二区 | 欧美日韩一区二区三 | 亚洲春色另类 | 青草青在线 | 日韩精品在线观看网站 | 日本性久久 | 色婷婷激情av | 伊人资源 | 97avcc| 在线永久看片免费的视频 | 诱惑av| 亚洲自拍av在线 | 精品人妻一区二区三区免费看 | 国产嫩草视频 | 999免费视频 | aaa亚洲| 久久久国产成人一区二区三区 | www.久久色 | jlzzjlzzjlzz亚洲人 | 成人毛片视频在线观看 | 色婷婷综合久久久久中文字幕 | 国产一级精品毛片 | 久久精品偷拍视频 | 捆绑japanhdxxxxvideos | 欧美久久久久久久久中文字幕 | www.蜜臀av| 久久好色 | 91丨九色丨黑人外教 | 伊人国产精品 | 日韩欧洲亚洲AV无码精品 | 亚洲综合视频网站 | 91操视频 | 欧美xxxx吸乳 | 久草视频这里只有精品 | h片在线免费 | 日韩精品一区二区三区国语自制 | 国产一级在线免费观看 | 久久午夜伦理 | 天堂在线亚洲 | 九九热视频精品 | 色开心 | 桃色av | 国产无码精品久久久 | 国产三级av在线 | 四虎永久在线精品免费网址 | 国产成人精品白浆久久69 | 伊人资源网 | 日本黄色大片在线观看 | 麻豆视频免费看 | 麻豆精品一区二区三区 | 国产欧美中文字幕 | 色播激情网 | 小视频在线免费观看 | 姝姝窝人体www聚色窝 | 综合久色 | 午夜av福利 | 免费一区视频 | 偷自拍| 东北高大丰满bbbbzbbb | 巨大乳の揉んで乳榨り奶水 | 精品亚洲乱码一区二区 | 欧美日韩免费观看一区=区三区 | 男女视频在线观看 | 国产熟妇一区二区三区四区 | 亚洲av无码精品一区二区 | 蜜桃臀av | 91午夜精品亚洲一区二区三区 | 亚洲精品h | 成人写真福利网 | 亚洲喷潮 | 色网站在线看 | 国内毛片毛片毛片 | 丰满熟女人妻一区二区三区 | 国产免费一区,二区 | 性高湖久久久久久久久aaaaa | 91av欧美| 91丨九色丨黑人外教 | 农村少妇久久久久久久 | 日本黄色xxxxx | av不卡在线观看 | 91视频导航 | 欧美成欧美va | 国产伦精品一区二区三区视频孕妇 | 日婷婷| 国产一区两区 | 极品女神无套呻吟啪啪 | 琪琪射| 欧美激情网址 | 7777久久亚洲中文字幕 | 色图自拍 | 国产精品视频一二区 | 丁香啪啪综合成人亚洲 | 无码人妻丰满熟妇啪啪欧美 | 欧美日韩乱国产 | 福利一区二区 | 国产极品美女高潮无套在线观看 |