97色伦色在线综合视频,无玛专区,18videosex性欧美黑色,日韩黄色电影免费在线观看,国产精品伦理一区二区三区,在线视频欧美日韩,亚洲欧美在线中文字幕不卡

哪個(gè)網(wǎng)站做布料好衡陽(yáng)城鄉(xiāng)建設(shè)局網(wǎng)站

鶴壁市浩天電氣有限公司 2026/01/24 07:05:54
哪個(gè)網(wǎng)站做布料好,衡陽(yáng)城鄉(xiāng)建設(shè)局網(wǎng)站,乙方寶招標(biāo)官網(wǎng),分銷網(wǎng)絡(luò)設(shè)計(jì)案例網(wǎng)卡作為 ssh 連接的網(wǎng)卡。#xff08;2#xff09;修改網(wǎng)卡配置信息。找到虛擬機(jī)安裝目錄下的.vmx文件#xff0c;內(nèi)容如下#xff1a;展開(kāi)代碼語(yǔ)言#xff1a;Bash自動(dòng)換行AI代碼解釋.encoding GBK config.version 8 virtualHW.version 2修改網(wǎng)卡配置信息。找到虛擬機(jī)安裝目錄下的.vmx文件內(nèi)容如下展開(kāi)代碼語(yǔ)言Bash自動(dòng)換行AI代碼解釋.encoding GBK config.version 8 virtualHW.version 16 mks.enable3d TRUE pciBridge0.present TRUE pciBridge4.present TRUE pciBridge4.virtualDev pcieRootPort pciBridge4.functions 8 pciBridge5.present TRUE pciBridge5.virtualDev pcieRootPort pciBridge5.functions 8 pciBridge6.present TRUE pciBridge6.virtualDev pcieRootPort pciBridge6.functions 8 pciBridge7.present TRUE pciBridge7.virtualDev pcieRootPort pciBridge7.functions 8 vmci0.present TRUE hpet0.present TRUE nvram Ubuntu64bit1604.nvram virtualHW.productCompatibility hosted powerType.powerOff soft powerType.powerOn soft powerType.suspend soft powerType.reset soft displayName Ubuntu64bit1604 usb.vbluetooth.startConnected TRUE guestOS ubuntu-64 tools.syncTime FALSE sound.autoDetect TRUE sound.fileName -1 sound.present TRUE numvcpus 4 cpuid.coresPerSocket 2 vcpu.hotadd TRUE memsize 8192 mem.hotadd TRUE scsi0.virtualDev lsilogic scsi0.present TRUE sata0.present TRUE scsi0:0.fileName Ubuntu64bit1604.vmdk scsi0:0.present TRUE sata0:1.deviceType cdrom-image sata0:1.fileName G:迅雷下載ubuntu-16.04.7-desktop-amd64.iso sata0:1.present TRUE usb.present TRUE ehci.present TRUE svga.graphicsMemoryKB 786432 ethernet0.addressType generated ethernet0.virtualDev e1000 serial0.fileType thinprint serial0.fileName thinprint ethernet0.present TRUE serial0.present TRUE extendedConfigFile Ubuntu64bit1604.vmxf floppy0.present FALSE uuid.bios 56 4d fd 84 0c 40 c1 bb-af 47 c0 00 9f b9 71 74 uuid.location 56 4d fd 84 0c 40 c1 bb-af 47 c0 00 9f b9 71 74 scsi0:0.redo pciBridge0.pciSlotNumber 17 pciBridge4.pciSlotNumber 21 pciBridge5.pciSlotNumber 22 pciBridge6.pciSlotNumber 23 pciBridge7.pciSlotNumber 24 scsi0.pciSlotNumber 16 usb.pciSlotNumber 32 ethernet0.pciSlotNumber 33 sound.pciSlotNumber 34 ehci.pciSlotNumber 35 vmci0.pciSlotNumber 36 sata0.pciSlotNumber 37 svga.vramSize 268435456 vmotion.checkpointFBSize 4194304 vmotion.checkpointSVGAPrimarySize 268435456 ethernet0.generatedAddress 00:0C:29:B9:71:74 ethernet0.generatedAddressOffset 0 vmci0.id -1615236748 monitor.phys_bits_used 43 cleanShutdown TRUE softPowerOff FALSE usb:1.speed 2 usb:1.present TRUE usb:1.deviceType hub usb:1.port 1 usb:1.parent -1 svga.guestBackedPrimaryAware TRUE tools.remindInstall FALSE gui.lastPoweredViewMode fullscreen toolsInstallManager.updateCounter 2 toolsInstallManager.lastInstallError 0 sata0:1.startConnected TRUE isolation.tools.hgfs.disable FALSE sharedFolder0.present TRUE sharedFolder0.enabled TRUE sharedFolder0.readAccess TRUE sharedFolder0.writeAccess TRUE sharedFolder0.hostPath G:share sharedFolder0.guestName share sharedFolder0.expiration never sharedFolder.maxNum 1 usb:0.present TRUE usb:0.deviceType hid usb:0.port 0 usb:0.parent -1 ethernet1.connectionType nat ethernet1.addressType generated ethernet1.virtualDev e1000 ethernet1.present TRUE將ethernet0.virtualDev由 e1000 修改 vmxnet3因?yàn)?vmware 的 vmxnet3 支持多隊(duì)列網(wǎng)卡同時(shí)添加一行thernet0.wakeOnPcktRcv “TRUE”代碼語(yǔ)言Bash自動(dòng)換行AI代碼解釋ethernet0.virtualDev vmxnet3 ethernet0.wakeOnPcktRcv TRUE重啟虛擬機(jī) 查看網(wǎng)卡, 成功被被配置為vmxnet3代碼語(yǔ)言Bash自動(dòng)換行AI代碼解釋ethtool -i eth03查看是否支持多隊(duì)列網(wǎng)卡代碼語(yǔ)言Bash自動(dòng)換行AI代碼解釋cat /proc/interrupts展開(kāi)代碼語(yǔ)言Bash自動(dòng)換行AI代碼解釋... 55: 0 0 0 0 PCI-MSI 407552-edge PCIe PME, pciehp 56: 1181 0 0 12784 PCI-MSI 1572864-edge eth0-rxtx-0 57: 0 193 0 22 PCI-MSI 1572865-edge eth0-rxtx-1 58: 41 36 0 0 PCI-MSI 1572866-edge eth0-rxtx-2 59: 0 5 13 0 PCI-MSI 1572867-edge eth0-rxtx-3 60: 0 0 0 0 PCI-MSI 1572868-edge eth0-event-4 61: 0 163 151 4 PCI-MSI 1130496-edge ahci[0000:02:05.0] ...這里虛擬機(jī)有多少個(gè)CPU就有多少個(gè)隊(duì)列。4修改 ubuntu 系統(tǒng)的啟動(dòng)參數(shù)。代碼語(yǔ)言Bash自動(dòng)換行AI代碼解釋sudo vim /etc/default/grub主要是在GRUB_CMDLINE_LINUX添加如下內(nèi)容代碼語(yǔ)言Bash自動(dòng)換行AI代碼解釋default_hugepages1G hugepagesz2M hugepages1024如果是物理主機(jī)則添加的是如下內(nèi)容代碼語(yǔ)言Bash自動(dòng)換行AI代碼解釋# 物理機(jī): default_hugepages1G hugepagesz1G hugepages20 isolcpus0-7示例展開(kāi)代碼語(yǔ)言Bash自動(dòng)換行AI代碼解釋# If you change this file, run update-grub afterwards to update # /boot/grub/grub.cfg. # For full documentation of the options in this file, see: # info -f grub -n Simple configuration GRUB_DEFAULT0 GRUB_HIDDEN_TIMEOUT0 GRUB_HIDDEN_TIMEOUT_QUIETtrue GRUB_TIMEOUT10 GRUB_DISTRIBUTORlsb_release -i -s 2 /dev/null || echo Debian GRUB_CMDLINE_LINUX_DEFAULTquiet splash GRUB_CMDLINE_LINUXnet.ifnames0 biosdevname0 default_hugepages1G hugepagesz2M hugepages1024修改完之后需要重啟。編譯DPDK1下載 dpdk隨便一個(gè)版本不同版本直接子系統(tǒng)接口會(huì)有差異這里下載的是19.08.2版本代碼語(yǔ)言Bash自動(dòng)換行AI代碼解釋wget https://fast.dpdk.org/rel/dpdk-19.08.2.tar.xz2解壓源碼代碼語(yǔ)言Bash自動(dòng)換行AI代碼解釋tar -xvf dpdk-19.08.2.tar.xz cd dpdk-19.08.2 ls代碼語(yǔ)言Bash自動(dòng)換行AI代碼解釋app buildtools config devtools doc drivers examples GNUmakefile kernel lib license MAINTAINERS Makefile meson.build meson_options.txt mk README usertools VERSION3安裝依賴庫(kù)代碼語(yǔ)言Bash自動(dòng)換行AI代碼解釋sudo apt-get install numactl sudo apt-get install libnuma-dev sudo apt-get install net-tools4通過(guò) usertools/dpdk-setup.sh64 位系統(tǒng)選擇 39編譯完會(huì)多出 x86_64-native-linux-gcc 的文件夾。展開(kāi)代碼語(yǔ)言Bash自動(dòng)換行AI代碼解釋------------------------------------------------------------------------------ RTE_SDK exported as /home/fly/workspace/dpdk-stable-19.08.2 ------------------------------------------------------------------------------ ---------------------------------------------------------- Step 1: Select the DPDK environment to build ---------------------------------------------------------- [1] arm64-armada-linuxapp-gcc [2] arm64-armada-linux-gcc [3] arm64-armv8a-linuxapp-clang [4] arm64-armv8a-linuxapp-gcc [5] arm64-armv8a-linux-clang [6] arm64-armv8a-linux-gcc [7] arm64-bluefield-linuxapp-gcc [8] arm64-bluefield-linux-gcc [9] arm64-dpaa2-linuxapp-gcc [10] arm64-dpaa2-linux-gcc [11] arm64-dpaa-linuxapp-gcc [12] arm64-dpaa-linux-gcc [13] arm64-octeontx2-linuxapp-gcc [14] arm64-octeontx2-linux-gcc [15] arm64-stingray-linuxapp-gcc [16] arm64-stingray-linux-gcc [17] arm64-thunderx2-linuxapp-gcc [18] arm64-thunderx2-linux-gcc [19] arm64-thunderx-linuxapp-gcc [20] arm64-thunderx-linux-gcc [21] arm64-xgene1-linuxapp-gcc [22] arm64-xgene1-linux-gcc [23] arm-armv7a-linuxapp-gcc [24] arm-armv7a-linux-gcc [25] i686-native-linuxapp-gcc [26] i686-native-linuxapp-icc [27] i686-native-linux-gcc [28] i686-native-linux-icc [29] ppc_64-power8-linuxapp-gcc [30] ppc_64-power8-linux-gcc [31] x86_64-native-bsdapp-clang [32] x86_64-native-bsdapp-gcc [33] x86_64-native-freebsd-clang [34] x86_64-native-freebsd-gcc [35] x86_64-native-linuxapp-clang [36] x86_64-native-linuxapp-gcc [37] x86_64-native-linuxapp-icc [38] x86_64-native-linux-clang [39] x86_64-native-linux-gcc [40] x86_64-native-linux-icc [41] x86_x32-native-linuxapp-gcc [42] x86_x32-native-linux-gcc ---------------------------------------------------------- Step 2: Setup linux environment ---------------------------------------------------------- [43] Insert IGB UIO module [44] Insert VFIO module [45] Insert KNI module [46] Setup hugepage mappings for non-NUMA systems [47] Setup hugepage mappings for NUMA systems [48] Display current Ethernet/Baseband/Crypto device settings [49] Bind Ethernet/Baseband/Crypto device to IGB UIO module [50] Bind Ethernet/Baseband/Crypto device to VFIO module [51] Setup VFIO permissions ---------------------------------------------------------- Step 3: Run test application for linux environment ---------------------------------------------------------- [52] Run test application ($RTE_TARGET/app/test) [53] Run testpmd application in interactive mode ($RTE_TARGET/app/testpmd) ---------------------------------------------------------- Step 4: Other tools ---------------------------------------------------------- [54] List hugepage info from /proc/meminfo ---------------------------------------------------------- Step 5: Uninstall and system cleanup ---------------------------------------------------------- [55] Unbind devices from IGB UIO or VFIO driver [56] Remove IGB UIO module [57] Remove VFIO module [58] Remove KNI module [59] Remove hugepage mappings [60] Exit Script5導(dǎo)出dpdk環(huán)境變量。代碼語(yǔ)言Bash自動(dòng)換行AI代碼解釋cd dpdk路徑 # 如 dpdk/dpdk-stable-19.08.2/ # 切換root權(quán)限 sudo su export RTE_SDKdpdk路徑 export RTE_TARGETx86_64-native-linux-gcc6配置dpdk。代碼語(yǔ)言Bash自動(dòng)換行AI代碼解釋./usertools/dpdk-setup.sh依次執(zhí)行43加載DPDK UIO 模塊即插入driver44加載VFIO模塊也是一種driver45加載KNI模塊將一些數(shù)據(jù)寫回內(nèi)核46設(shè)置巨頁(yè)可以不需要頻繁頁(yè)交換51247設(shè)置巨頁(yè)可51249執(zhí)行之前需要eth0 down掉執(zhí)行sudo ifconfig eth0 down使綁定dpdkpci地址對(duì)應(yīng)eth0的如0000:03:00.060退出二、DPDK工作原理網(wǎng)絡(luò)上所有的數(shù)據(jù)傳輸都要經(jīng)過(guò)網(wǎng)卡網(wǎng)卡將模擬信號(hào)轉(zhuǎn)換為數(shù)字信號(hào)也就是將物理層信號(hào)轉(zhuǎn)換為數(shù)據(jù)鏈路層信號(hào)。這個(gè)過(guò)程會(huì)進(jìn)行兩次拷貝第一次是從網(wǎng)卡拷貝到NIC用于組織sk_buffer第二次是從內(nèi)核空間拷貝到用戶空間應(yīng)用程序處理數(shù)據(jù)。這些拷貝需要CPU的參與會(huì)占用CPU資源。DPDK的作用是把網(wǎng)卡是數(shù)據(jù)映射到內(nèi)存。而且DPDK提供巨頁(yè)機(jī)制將原來(lái)的4K每頁(yè)提升到2M、1G的巨頁(yè)??刂贫嚓?duì)列網(wǎng)卡提高性能在啟動(dòng)線程時(shí)做了CPU親緣性。DPDK提高一種KNIKernel Network Interface方式將不關(guān)注的數(shù)據(jù)寫回內(nèi)核讓內(nèi)核處理。DPDK能用來(lái)做一下應(yīng)用路由器。網(wǎng)絡(luò)協(xié)議棧的基石部分。防火墻。VPN。DPDK的優(yōu)勢(shì)有專門的公司維護(hù)有保障。問(wèn)題能被快速解決迭代出新的版本。文檔齊全。三、DPDK實(shí)踐之處理UDP數(shù)據(jù)dpdk初始化失敗的情況內(nèi)存不夠比如主機(jī)只有4G內(nèi)存、沒(méi)有設(shè)置hugepage、沒(méi)有bind pci。mbuf類似內(nèi)核的sk_buffer。參數(shù)初始化。創(chuàng)建內(nèi)存池。配置網(wǎng)口。設(shè)置網(wǎng)口隊(duì)列的使用dkdp接收數(shù)據(jù)隊(duì)列、dkdp發(fā)送數(shù)據(jù)隊(duì)列。開(kāi)始啟動(dòng)?;祀s模式disable–只接收目的IP地址是本機(jī)的enable–網(wǎng)絡(luò)的所有廣播包都接收。開(kāi)始接收數(shù)據(jù)。示例代碼dpdk_udp.c展開(kāi)代碼語(yǔ)言C自動(dòng)換行AI代碼解釋#include rte_eal.h #include rte_ethdev.h #include rte_mbuf.h #define MBUF_NUM 1024 #define MBUF_SIZE 32 int gDpdkPortId0; int main(int argc,char **argv) { // if(rte_eal_init(argc,argv)0) { rte_exit(EXIT_FAILURE,Init Error ); } // per_lcore_socket_id struct rte_mempool *mbuf_poolrte_pktmbuf_pool_create(mbufpool,MBUF_NUM,0,0,RTE_MBUF_DEFAULT_BUF_SIZE,rte_socket_id()); if(!mbuf_pool) { rte_exit(EXIT_FAILURE,mbuf_pool Error ); } uint16_t nb_rx_queues 1; uint16_t nb_tx_queues 0; const struct rte_eth_conf port_conf_default { .rxmode {.max_rx_pkt_len RTE_ETHER_MAX_LEN } }; rte_eth_dev_configure(gDpdkPortId,nb_rx_queues,nb_tx_queues,port_conf_default); rte_eth_rx_queue_setup(gDpdkPortId,0,128,rte_eth_dev_socket_id(gDpdkPortId),NULL,mbuf_pool); //rte_eth_tx_queue_setup(...) rte_eth_dev_start(gDpdkPortId); rte_eth_promiscuous_enable(gDpdkPortId); while(1) { struct rte_mbuf *mbuf[MBUF_SIZE]; unsigned num_recvd rte_eth_rx_burst(gDpdkPortId, 0, mbuf, MBUF_SIZE); if (num_recvd MBUF_SIZE) { rte_exit(EXIT_FAILURE, Error receiving from eth ); } //printf(recv pkt ); unsigned i 0; for (i 0;i num_recvd;i ) { // 將mbufs數(shù)據(jù)包中的以太網(wǎng)頭提取出來(lái) struct rte_ether_hdr *ehdr rte_pktmbuf_mtod(mbuf[i], struct rte_ether_hdr*); //將一個(gè)16位的值從CPU順序轉(zhuǎn)換為大端序 if (ehdr-ether_type ! rte_cpu_to_be_16(RTE_ETHER_TYPE_IPV4)) { continue; } // 將mbufs數(shù)據(jù)包中的ipv4頭提取出來(lái) struct rte_ipv4_hdr *iphdr rte_pktmbuf_mtod_offset(mbuf[i], struct rte_ipv4_hdr *, sizeof(struct rte_ether_hdr)); if (iphdr-next_proto_id IPPROTO_UDP) { struct rte_udp_hdr *udphdr (struct rte_udp_hdr *)(iphdr 1); uint16_t length ntohs(udphdr-dgram_len); *((char*)udphdr length -1) ; printf(udp:%s ,(char *)(udphdr1)); } } } return 0; }可以通過(guò) gcc 命令編譯代碼語(yǔ)言Bash自動(dòng)換行AI代碼解釋gcc -o dpdk_udp dpdk_udp.c -I /usr/local/include/dpdk/ -ldpdk -lpthread -lnuma -ldl也可以寫如下的makefile文件來(lái)編譯推薦。Makefle展開(kāi)代碼語(yǔ)言Bash自動(dòng)換行AI代碼解釋# binary name APP dpdk_udp # all source are stored in SRCS-y SRCS-y : dpdk_udp.c # Build using pkg-config variables if possible ifeq ($(shell pkg-config --exists libdpdk echo 0),0) all: shared .PHONY: shared static shared: build/$(APP)-shared ln -sf $(APP)-shared build/$(APP) static: build/$(APP)-static ln -sf $(APP)-static build/$(APP) PKGCONFpkg-config --define-prefix PC_FILE : $(shell $(PKGCONF) --path libdpdk) CFLAGS -O3 $(shell $(PKGCONF) --cflags libdpdk) LDFLAGS_SHARED $(shell $(PKGCONF) --libs libdpdk) LDFLAGS_STATIC -Wl,-Bstatic $(shell $(PKGCONF) --static --libs libdpdk) build/$(APP)-shared: $(SRCS-y) Makefile $(PC_FILE) | build $(CC) $(CFLAGS) $(SRCS-y) -o $ $(LDFLAGS) $(LDFLAGS_SHARED) build/$(APP)-static: $(SRCS-y) Makefile $(PC_FILE) | build $(CC) $(CFLAGS) $(SRCS-y) -o $ $(LDFLAGS) $(LDFLAGS_STATIC) build: mkdir -p $ .PHONY: clean clean: rm -f build/$(APP) build/$(APP)-static build/$(APP)-shared test -d build rmdir -p build || true else ifeq ($(RTE_SDK),) $(error Please define RTE_SDK environment variable) endif # Default target, detect a build directory, by looking for a path with a .config RTE_TARGET ? $(notdir $(abspath $(dir $(firstword $(wildcard $(RTE_SDK)/*/.config))))) include $(RTE_SDK)/mk/rte.vars.mk四、總結(jié)多隊(duì)列網(wǎng)卡只負(fù)責(zé)數(shù)據(jù)包的接收不能做到邏輯控制。dpdk不能保證udp的可靠它只負(fù)責(zé)將數(shù)據(jù)轉(zhuǎn)移到內(nèi)存。
版權(quán)聲明: 本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)聯(lián)系我們進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

網(wǎng)站開(kāi)發(fā)工具書信息網(wǎng)站 微站

網(wǎng)站開(kāi)發(fā)工具書,信息網(wǎng)站 微站,WordPress直接調(diào)用頭像地址,網(wǎng)站的建設(shè)過(guò)程Python算法優(yōu)化與多線程編程指南 在Python編程中,優(yōu)化算法和合理使用多線程是提升程序性能的關(guān)鍵。本文將介紹

2026/01/23 00:30:01