官檔翻譯 安裝dpdk前的準備工作

2021-09-05 01:16:27 字數 2856 閱讀 9424

1.gun make

2.coreutils: cmp,sed,grep,archetc

3.gcc:版本 4.9+

4.需要安裝kernel - devel.x86_64或者 kernel - devel.ppc64

5.針對32和64位的系統需要考慮不同的安裝包

1.intel c++ 編譯器(icc)。針對一些額外需要安裝的包可能需要icc庫來進行編譯。安裝該編譯器之前可以檢視icc的安裝文件來獲取更多幫助。

2.針對powerlinux,可能需要安裝ibm advance toolchain。這是一組開源工具,允許客戶在ibm最新的power硬體上使用runtime時間庫(機器需要安裝了linux作業系統)

3.libpcap頭和libraries(libpcap-devel)包。為的是可以編譯載入libpcap-based pool-mod。這個驅動在初始化的時候預設關閉的,可以通過編譯安裝來使用該驅動。

4.libarchive頭和對應的庫,該工具可以適用於一些單元測試,使用tar來獲取單元測試中的資源。

1.kernel版本 >=3.2

dpdk還在設計開發的時候,基於當時可用的kernel穩定版本。你的作業系統kernel版本可以使用如下命令檢查:

uname -r

2.glibc >=2.7 (針對有關cpuset的特性)

glibc的版本檢查可以基於ldd --version來檢視,這種方式不一定正確,可以通過strings /lib64/libc.so.6 | grep glibc命令檢視

這裡如果要公升級的話可以使用原始碼公升級

在fedora os作業系統和其他大部分發行版的linux作業系統,例如ubuntu或者redhat。這些發行版的作業系統核心配置都可以支援dpdk執行大部分的測試用例。

針對其他核心build,應該為dpdk開啟的選項包括:

hugetlbfs

支援proc_page_monitor

如果需要開啟hpet,則相應的需要開啟hpet和hpet_mmap配置。

hugepage支援大記憶體池,記憶體用於處理資料緩衝區。(hugetlbfs選項在執行核心時必須開啟)。使用大頁記憶體分配技術,只需要分配少量的大頁給dpdk,效能便會大大提高,因此會使translation lookaside buffers緩衝區交換報文減少。(tlbs,高速交換快取區)用於減少虛擬頁位址定址物理頁位址的時間。沒有大頁之前,tlb會在4k頁上下交換時出現未命中的情況,這樣會導致信效能降低。

大頁記憶體的分配應該在啟動時,或者在系統啟動之後盡快從物理記憶體中取出記憶體保留。在開機啟動時保留大頁記憶體,通過控制核心的命令將引數傳遞給linux核心。大頁記憶體大大小預設為2m,如果設定2m的大頁記憶體,只需要將大頁記憶體的引數傳遞給核心。例如:需要保留1024頁2m大小的大頁記憶體。

hugepages=1024

針對其他大小的大頁,例如設定1g大小的大頁,大頁的規格也需要被特殊註明,當然也可以設定系統預設的大頁記憶體大小。例如,為了保留4g大小的大頁記憶體,每個大頁的記憶體大小設定為1g,則傳入核心的引數設定應該為:

default_hugepagesz=1g hugepagesz=1g hugepages=4

注意:選取為單顆cpu設定的大頁記憶體的大小取決於cpu支援的識別符號,這也就取決於cpu的架構。如果pse識別符號存在,則支援2m的大頁記憶體,如果pdpe 1gb識別符號存在,則支援1g大頁記憶體。在ibm power架構下,支援的大頁記憶體的大小是16mb和16gb。

注意:針對64位的應用,如果平台能夠支援1gb大小的大頁記憶體,建議使用1gb的大頁記憶體。

在雙單元numa系統中,被分配的大頁內存在開機的時候會平均的分配給每一側的numa節點上。假設每個numa節點都能足夠分配到應有的記憶體。

可選項:

針對2mb的大頁記憶體,在系統已經啟動之後仍然可以分配大頁記憶體。使用echo命令將你所需要的大頁寫入到大頁記憶體檔案中,該檔案在/sys/devices資料夾中。針對單cpu節點,可以使用如下的命令來加入大頁記憶體(以寫入1024頁為乙個實驗)

echo 1024 > /sys/kernel/mm/hugepages/hugepages-2048kb/nr_hugepages

針對乙個numa機器,需要單獨為每個numa節點使用命令下時的分配大頁。

echo 1024 > /sys/devices/system/node/node0/hugepages/hugepages-2048kb/nr_hugepages

echo 1024 > /sys/devices/system/node/node1/hugepages/hugepages-2048kb/nr_hugepages

注意:針對1g的大頁記憶體分配,如果在系統啟動之後是不能通過命令的形式來動態的分配該大頁記憶體。

在ibm power的系統中,設定nr_overcommit_hugepages的值應該與nr_hugepages的值一樣。例如,如果需要將大頁的數設定為128,則需要使用如下的命令:

echo 128 > /sys/kernel/mm/hugepages/hugepages-16384kb/nr_hugepages

echo 128 > /sys/kernel/mm/hugepages/hugepages-16384kb/nr_overcommit_hugepages

一旦大頁記憶體被分配,要讓dpdk使用分配出來的大頁記憶體則需要執行以下命令:

mkdir /mnt/huge

mount -t hugetlbfs nodev /mnt/huge

如果要是掛載點在重啟之後仍然可用則需要將掛載點寫入到fstab檔案中。

nodev /mnt/huge hugetlbfs defaults 0 0

針對1gb大頁,大頁的大小最好作為掛載點名寫入到配置檔案中。

nodev /mnt/huge_1gb hugetlbfs pagesize=1gb 0 0

WordPress 部落格開博前應該準備的工作

新站長都是比較心急的,往往註冊網域名稱租用空間後立即 程式上傳安裝新增內容,所謂心急吃不了熱豆腐,心急做不了好部落格。人們常說的一句話 不要輸 在起跑線上 這句話是很有道理的,可這道理很多人往往在後期才能真正明白,有經驗的站長都知道中後期對乙個 進行憂化修改會對 的發展有多大的影響。所以在做乙個 時...

2 1 安裝前的準備工作

在安裝這個全新的作業系統之前,需要做一些準備工作。從 得到 linux 對電腦配置有什麼要求?安裝會刪除機器上原有的 windows 嗎?對這些在論壇上經常出現的問題,本節將逐一給予回答。使用linux 本身不需要支付任何費用。讀者可以在各 linux 發行版的官方 上 詳見 1.3.1 節 找到安...

安裝scapy前的準備工作

1 安裝python 2 安裝pip 使用9.0.1 cd pip 9.0.1 python setup.py install 3 安裝pip時出現的問題 python setup.py install setup.py not found wget 2 解壓setuptools包 這一步我出現不能...