[測試] 10M 4k IOPS挑戰 & 3995wx生資效能簡測
TL;DR
AMD Ryzen Threadripper PRO 3995WX在8通道DDR4-3200下
Linux內建的/dev/shm可以達到9M~10M 4k IOPS
而16x Samsung 980 PRO 1TB安裝於此台主機上
未最佳化的RAID 0與系統在高隊列多執行緒下可達到6M 4k IOPS
主要硬體
AMD Ryzen Threadripper PRO 3995WX
8x 64GB Samsung DDR4-3200 ECC RDIMM
ASUS Pro WS WRX80E-SAGE SE WIFI (custom bios version)
7x ASUS HYPER M.2 X16 GEN 4 CARD
16x Samsung 980 PRO 1TB FW:5B2QGXA7 (Slot 1~7各2個+主機板2個)
mdadm RAID0 devices=16 chunk-size=128kB
default xfs
default mount
2x Crucial MX500
mdadm RAID1 裝系統
韌體設定
NPS4
TSME disable
作業系統
Ubuntu 22.04 LTS 5.15.0
其他沒說明的都是預設
說明
原本是準備了30個Samsung 980 PRO 1TB嘗試最大化效能
但後來發現有理論上與工程上的問題
根據AMD的文件 理論上的問題是
Each Processor has the capability to support four P links and four G links.
P links are connected to the PCIe root ports.
G links have the option to be connected to a PCIe root port or as cross
socket links that can be used to communicate cross-socket traffic.
但這張主機板是單插槽 所以G links應該是用於PCIe
There are four bandwidth injection points into the Infinity Fabric of a
single IOD: one per quadrant.
If the board designer chooses to use both G link and P link, then Px and Gx
share the bandwidth injection point in the IOD quadrant x.
When using both Px and Gx as bandwidth injection points, the system achieves
around 20 lanes of effective bandwidth from that quadrant, even though
32 lanes are being used.
根據這段 就算SSD全部直連CPU 最多也只能用到20個
(20 lanes * 4 roots / 4 lanes per ssd)的頻寬
這個事實蠻合理的 因為DDR4-3200 8通道理論頻寬204.8GB/s
而128x PCIe 4.0 理論頻寬為256GB/s
中間還有infinity fabric, IOD, CCD等東西卡著
怎麼算都會網路塞車
When a G link is used to connect to a second PCIe root port, we will have a
configuration in which traffic from two PCIe root ports must be distributed
to a single DMA BW injection point.
In the above configuration, the upstream bandwidth is equally distributed
between P and G links, assuming an equal number of lanes being used in
both P and G links.
根據這段,我應該要安裝各2個在P0, G0, P1, G1, P2, G2, P3, G3
但華碩的工作站主機板說明書都不會提供主機板架構
(這點Supermicro gigabyte asrock rack 都做得比較好
工作站或伺服器級主機板手冊都會提供架構圖
Supermicro的M12SWA-TF就有提供這張圖
https://i.imgur.com/F4UQPzH.jpg )
反正最後用試的試出來
使用16個SSD 每個插槽各安裝2個 主機板上裝2個
這樣能讓每個PCIe Root Complex底下有4個SSD
工程上的問題是
這張板子的BIOS Version 1003進不了Linux
網路上其他人的留言
https://unix.stackexchange.com/questions/692552/#700549
而就算退版回0701能進Linux 只要安裝超過14個SSD就會有問題
(鄉民: 購買工作站或伺服器 請找品牌廠+SI
有錢就上DELL HPE 沒錢至少也選Supermicro或其他台廠白牌"整機"
[麗台 華碩 技嘉 微星 廣達 緯穎 ...]
自組遇到原廠沒有測過的issue 沒有SI支援很可怕的
我就遇到了 華碩的工程部門 沒有超過10顆的SSD
無法測試同時安裝超過10顆以上的狀況)
理論性能測試
使用fio 3.28 參數比照CrystalDiskMark 8 nvme
fio --loops=5 --size=1g --runtime=10 --time_based=1 \
--stonewall --direct=1 --group_reporting \
--name=SeqQ8T1read --bs=1048576 --iodepth=8 --rw=read \
--name=SeqQ8T1write --bs=1048576 --iodepth=8 --rw=write \
--name=Seq128kQ32T1read --bs=131072 --iodepth=32 --rw=read \
--name=Seq128kQ32T1write --bs=131072 --iodepth=32 --rw=write \
--name=4kQ32T16read --bs=4096 --iodepth=32 --numjobs=16 --rw=randread \
--name=4kQ32T16write --bs=4096 --iodepth=32 --numjobs=16 --rw=randwrite \ --name=4kQ1T1read --bs=4096 --iodepth=1 --rw=randread \
--name=4kQ1T1write --bs=4096 --iodepth=1 --rw=randwrite
在單顆、16顆RAID0、/dev/shm三個環境測試(/dev/shm會將direct=0)
1x 16x raid0 shm
SeqQ8T1read 4110MB/s 13.0GB/s 10.9GB/s
SeqQ8T1write 4166MB/s 12.5GB/s 6735MB/s
Seq128kQ32T1read 1474MB/s 2914MB/s 11.5GB/s
Seq128kQ32T1write 3028MB/s 1629MB/s 8977MB/s
4kQ32T16read 1404MB/s 1527MB/s 35.3GB/s
343k IOPS 373k IOPS 8608k IOPS
4kQ32T16write 2057MB/s 4735MB/s 18.2GB/s
502k IOPS 1156k IOPS 4447k IOPS
4kQ1T1read 101MB/s 99.6MB/s 4950MB/s
24.6k IOPS 24.3k IOPS 1208k IOPS
40.30us 40.78us 568.28ns
4kQ1T1write 325MB/s 310MB/s 3698MB/s
79.3k IOPS 75.7k IOPS 903k IOPS
12.26us 12.85us 825.77ns
*clat avg
看來NVME RAID0沒有什麼提升
可能是負載不夠大
改個參數 加上--ioengine=io_uring
並試著加大壓力試試
--name=Seq128kQ32T64read --bs=131072 --iodepth=32 --numjobs=64 --rw=read
--name=Seq128kQ32T64write --bs=131072 --iodepth=32 --numjobs=64 --rw=write
--name=4kQ1T64read --bs=4096 --iodepth=1 --numjobs=64 --rw=randread
--name=4kQ1T64write --bs=4096 --iodepth=1 --numjobs=64 --rw=randwrite
--name=4kQ32kT64read --bs=4096 --iodepth=32768 --numjobs=64 --rw=randread
--name=4kQ32kT64write --bs=4096 --iodepth=32768 --numjobs=64 --rw=randwrite
16x raid0 shm
Seq128kQ32T64read 44.1GB/s 38.8GB/s
Seq128kQ32T64write 58.9GB/s 20.4GB/s
4kQ1T64read 4841MB/s 37.3GB/s
1182k IOPS 9101k IOPS
4kQ1T64write 4006MB/s 19.8GB/s
978k IOPS 4830k IOPS
4kQ32kT64read 24.2GB/s 28.8GB/s
5908k 7041k
4kQ32kT64write 9111MB/s 19.3GB/s
2224k 4720k
在多執行緒的情況下,NVME RAID0在4kQ32kT64read可以有接近6百萬的IOPS
而這台主機的ramdisk可以在4kQ1T64read下有接近1千萬的IOPS(測試結果會飄)
主機的ramdisk可以到1000萬 表示主機能力有到
980 PRO 1TB 官方宣稱是1百萬IOPS 16顆理論上是1600萬
但測出來只有600萬
可能的原因 能調整的地方我隨便列了一下
PCIe 10-bit tag?
可能需要將device IRQbalance 改為 binding 特定 NUMA node?
同一個root下4個的先組raid0 做numa binding 後再做raid 0+0?
整個raid0的讀取寫入順序可能都要再review
到底要interleave還是sequence
各root complex, 各ssd device
關閉CPU的省電?
關閉OS的CPU硬體緩解?
使用擴展性更好的檔案系統?
ZFS直接使用16顆SSD?
HDFS CephFS直接把這台電腦當一個多節點叢集設定?
看國外的討論是 只要想把多個SSD併成一個單獨的檔案系統
都非常的沒有效率 16個SSD 每個獨立使用比較沒有問題
但問題就變成AP要能夠同時高效使用16個資料夾
要改的東西太多了 還是改天吧
這些東西就交給Storage廠RD去煩惱
這台主機規格開完 採購流程跑完 issue解完 系統設定測試調整完
下一代主機都出了
主機實際應用測試
這裡使用次世代定序分析流程做測試 從fastq到bam
輸入使用ERR194147(NA12878)
這是一個讀長100鹼基 讀深50倍的全基因體定序檔案
同時拿另一台Intel Xeon主機對比
2x Intel Xeon Gold 6342
16x 128GB Samsung DDR4-3200 ECC RDIMM
4x SAMSUNG PM9A3 3.84TB
Intel VROC RAID0 Chunk Size 128K
default ext4
default mount
2x SAMSUNG PM883 480GB
chipset raid1 裝系統
軟體使用開源軟體流程 GATK Best Practices
bwa-mem2 v2.2.1 custom build
AMD 使用 gcc 9.4.0 -flto -march=znver2
Intel 使用 Intel C Compiler 2022.1.0 -ipo -xICELAKE-SERVER -fno-unroll-loopsGATK 4.3.0.0
MarkDuplicatesSpark
BaseRecalibratorSpark
ApplyBQSRSpark
GATK bundle
Homo_sapiens_assembly38.fasta
dbsnp_138.hg38.vcf
Mills_and_1000G_gold_standard.indels.hg38.vcf
Homo_sapiens_assembly38.known_indels.vcf
時間記錄使用nextflow
結果如下表
AMD Intel
bwa 2h 29m 2s 2h 57m 12s
MarkDup 30m 28s 34m 9s
BQSR 13m 33s 20m 21s
ApplyBQSR 25m 21s 29m 52s
total 3h 40m 1s 4h 23m 29s
分析:
由於固定了bwa mem的batch size
在兩個平台上的CPU使用率只到3200%左右
無法線性成長到全核心使用
就算在這種情況下 Gold 6342使用AVX512還是比3995WX慢
而其他的步驟使用Spark平行 得益於核心數量 3995WX 皆稍快一點
心得:
業務們要努力 算算執行時間與花費金錢的CP值 多說服大頭們改用
Amazon AWS Genomics
Microsoft Azure Genomics
GCP Cloud Life Sciences
NVIDIA Clara Parabricks
Illumina DRAGEN
規格開完 招標驗收 機器上線
下一代CPU都出了
還有三星SSD等著出包
實在沒什麼理由不用雲端或商業硬體加速解決方案
--
這離日常使用多遠呢
家用千萬IOPS文書機
走ZNS的話會不會有效果?
當初想要從系統全面接手nand的open-channel 算是死了
從硬體到OS整條路要打通 再等等吧
看不懂推
同行誒
強
看不懂推
猛
真的看不懂推
可怕 至少一百萬才能入門那台
看成資生堂 想說我走錯了嗎
你好,想請教CPU散熱是風冷還是水冷
Noctua NH-U12S TR4-SP3 之前用過某牌的TR4全覆蓋360AIO 遇到一次水冷液瑕疵 沒幾個月就堵死 空冷的可靠性還是高一點 而且3995wx沒辦法解功耗牆 空冷就夠了
Optane DCPMM 能到10m iops嗎
查了一下 Optane DCPMM Random Read 約6M IOPS Random Write 約2M IOPS
https://tinyurl.com/y646c2bmhttps://lenovopress.lenovo.com/lp1085.pdf
偉哉
純硬體算起來還是便宜拉 不過維護人工算起來真的別浪費
時間自己弄了
推
91
[情報] 新品 iPad Pro, Apple TV 4K, iPad【新聞/情報來源】 【新聞/情報內容】 iPad Pro70
[情報] 據報導AMD Ryzen 7000 CPU執行的時候很熱Enthusiast Citizen在Bilibili上分享 有關AMD Ryzen 7000 CPU溫度的新報告 看起來即將推出的Zen4將需要嚴格的散熱硬體來保持它們的溫順。 Zen4核心架構的Ryzen 7000桌上型CPU將是迄今為止生產的一些最熱門的晶片 洩密者談到了AMD Ryzen 9 7950X和Ryzen 5 7600X33
[開箱] Intel i9-12900 12代水冷主機組裝與實測windwithme 12代水冷主機開箱影片支持請訂閱: 2022上半年身邊有不少親朋好友紛紛組裝新電腦,所需用途各有不同,有些是為了遊戲, 也有些是為了創作方面,像是影片轉檔、編輯照片、專業繪圖等等,大部分都選擇Intel 12代主機做為平台,也許是看中效能、核心數、CP值、相容性等因素。30
[開箱] 美光顆粒的M.2-acer FA100 1TB某天回家,踢到了一箱東西拆開來看,這不是最近時不時看到有人推的SSD嗎 原廠號稱最大功耗不到4W,卻可以達到R3300/W2700的速度,來測試看看實際效能如何 產品規格13
[情報] 三星 990 PRO 最後規格確認Gen4的霸主三星正式宣布推出其下一代990 PRO SSD系列 該系列將採用PCIe Gen 4.0設計。 看起來三星還沒有加入PCIe Gen 5的潮流 990 Pro M.2 NVMe SSD將保留Gen 4.0標準 看起來像CES 2023推出的下一代產品11
[情報] 三星990 PRO PCIe Gen5 M.2 SSD再次曝光三星採用PCIe Gen 5.0 M.2 協議的下一代990 PRO SSD再次得到了PCI-SIG的確認。 早些時候三星990 PRO Gen 5 M.2 SSD也出現在韓國RRA認證列表中 我們看到了兩種SSD配置,一個1TB和一個2TB型號 它們將使用三星自己的專有解決方案為其下一代SSD解決方案提供動力。10
[情報] 三星Samsung下一代990 Pro Gen5 SSD曝光Samsung已在韓國RRA提交了似乎是其下一代 990 Pro 1TB和2TB PCIe Gen 5.0 SSD產品以供認證。 與其他主要依賴Phison, Kioxia,和Silicon Motion PCIe Gen 5.0控制器的製造商不同 Samsung將開發自己的專有解決方案,為其下一代SSD解決方案提供動力。 產品由Harukaze5719發現,看起來韓國RRA(國家無線電研究機構)7
[情報] 聯想宣布推出Ryzen TR Pro 5000 工作站AMD宣佈,正式推出Ryzen Threadripper Pro 5000系列處理器 為專業人士提供終極工作站解決方案。AMD表示 在Ryzen Threadripper Pro 3000系列之上,憑藉Zen 3架構的性能和效率 新一代產品可以在工作站任務負載中帶來更高的處理效能。 首批搭載Ryzen Threadripper Pro 5000系列的工作站也會在今天發7
[情報] WD推新款藍標SATA SSD SA510 規格偷降新蛋上已經出現WD Blue SA510的相關商品了 2.5"/M.2形式都有