• 安装facebook/wdt备忘


    ubuntu和centos的都安装成功了。。折磨了好几天了

    WDT环境配置(ubuntu20.04环境):
    
    ubuntu20.04自带的gcc版本应该已经满足安装wdt了,不需要再升级了。
    
    提前安装一些依赖的东西,后面编译的时候需要,如果不安装,后面可能会报错。为了以防万一还是都安装上吧
    sudo apt-ge install git
    sudo apt-get install g++-11
    sudo apt-get install gcc-11
    sudo apt-get install openssl
    sudo apt-get install libssl-dev
    sudo apt-get install libboost-dev
    sudo apt-get install build-essential
    sudo apt-get install libgoogle-glog-dev libboost-system-dev libdouble-conversion-dev
    
    
    一:安装cmake,我选择的是3.16版本
    cmake:
    wget http://www.cmake.org/files/v3.16/cmake-3.16.0.tar.gz
    tar xvfz cmake-3.16.0.tar.gz
    cd cmake-3.16.0
    ./bootstrap --prefix=/usr --parallel=16
    make
    sudo make install
    
    二:安装gtest
    gtest:
    wget https://github.com/google/googletest/archive/release-1.8.0.tar.gz
    tar xvfz release-1.8.0.tar.gz
    cd googletest-release-1.8.0
    cmake .
    make
    sudo make install
    
    https://www.bbsmax.com/A/QW5Y3emKzm/
    
    上面的形式安装好像没起作用,我编译的时候还是有错误,(可能是执行make install时没有把.a文件拷到系统目录/usr/local/lib的原因)
    后面改成,
    sudo apt-get install libgtest-dev
    cd /usr/src/gtest
    sudo mkdir build
    cd build
    sudo cmake ..
    sudo make
    然后将build/lib目录下的两个.a文件拷贝到/usr/local/lib
    
    
    三:安装double-conversion
    git clone https://github.com/floitsch/double-conversion.git
    cd double-conversion
    cmake .
    make
    sudo make install
    
    四:安装gflags
    git clone https://github.com/schuhschuh/gflags.git
    mkdir gflags/build
    cd gflags/build
    cmake -D GFLAGS_NAMESPACE=google -D BUILD_SHARED_LIBS=on ..
    make
    sudo make install
    
    五:安装fmt
    git clone  https://github.com/fmtlib/fmt.git
    cmake .
    make
    make install
    还需要把fmt库的include目录下的所有头文件拷贝到系统的/usr/include目录下。不然编译时会报错
    
    
    六:安装boost,我安装的是1.71.0
    https://boostorg.jfrog.io/artifactory/main/release/1.71.0/source/
    解压以后进入目录,
    
    ./bootstrap.sh   #运行sh脚本
    ./b2
    sudo ./b2 install #安装
    
    
    七:最后安装wdt,安装wdt时,需要先下载folly
    git clone https://github.com/facebook/folly.git
    git clone https://github.com/facebook/wdt.git
    
    cd ..
    mkdir build
    cmake  ../wdt -DBUILD_TESTING=on
    make -j
    sudo make install
    
    
    如果最后编译wdt时报错,需要软链接一下:
    sudo ln -sf /usr/bin/g++-11 /usr/bin/g++
    
    
    需要注意的地方,执行make install是记得带sudo,不然可能会报错。
    
    最后可以来个例子测试一下:
    。。。
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61
    • 62
    • 63
    • 64
    • 65
    • 66
    • 67
    • 68
    • 69
    • 70
    • 71
    • 72
    • 73
    • 74
    • 75
    • 76
    • 77
    • 78
    • 79
    • 80
    • 81
    • 82
    • 83
    • 84
    • 85
    • 86
    • 87
    • 88
    • 89
    • 90
    • 91
    • 92
    • 93
    • 94
    • 95
    • 96
    • 97

    命令设置:

    1. rxe_net_add(name, netdev) //netdev就是virtio-net的网络设备
    make
    insmod ./visre.ko
    
    2. ibv_devices命令,能看到rdma设备
    
    sudo modprobe ib_core
    sudo modprobe ib_uverbs
    sudo apt-get install libudev-dev
    sudo apt-get install libsystemd-dev
    
    client:
    ./rtf_tool -i ens6f0 -d rocep103s0f0 -H -q 1 -w 128 -b 2 192.168.20.12 -s 32
    
    server:
    ./rtf_tool -i vis_en0 -d rocep103s0f0 -H -o -f ./a.txt -q 1 -w 128 -s 32 -b 2
    
    ./rtf_tool -i vis_en0 -d rocep103s0f0 -H -o -f ./1G.txt -q 1 -w 128 -s 32 -b 2
    ./rtf_tool -i vis_en0 -d rocep103s0f0 -H -o -f ./1m.txt -q 1 -w 128 -s 32 -b 2
    
    -H 巨页
    -o
    -f 传输的文件
    -q qp个数
    -w wr深度
    -s mr大小
    -b
    
    dd if=/dev/zero of=./1G.txt bs=1M count=1024
    
    tcpdump -i ens6f1 -en -w 11.cap
    
    ubuntu:巨页设置
    
    1:sudo vim /etc/default/grub
    文件内容:
    GRUB_CMDLINE_LINUX_DEFAULT="transparent_hugepage=never default_hugepagesz=1G hugepagesz=1G hugepages=30"
    
    2: 更新系统grub重启
    sudo updata-grub
    reboot
    
    3:查看设置情况
    cat /proc/meminfo | grep Huge
    4:
    sudo apt-get install libhugetlbfs-dev
    sudo mkdir -p /mnt/hugetlbfs
    sudo mount -t hugetlbfs none /mnt/hugetlbfs
    
    
    如果以上步骤还不行的话,设置第55:sudo setcap cap_ipc_lock=ep your_executable
    
    echo "sudo ib_write_bw  -F -d rxe0 -s 64  -n 1000 -t 60 -l 8"
    echo "sudo ib_write_lat -F -d rxe0 -s 64 -n 1000 -t 60 -l 8"
    
    echo "0x404 0x28" > /proc/vis_en0/rdma 
    echo "0x41c 0x1" > /proc/vis_en0/rdma
    echo "0x400 0x1" > /proc/vis_en0/rdma
    59:
     ./ib_write_bw -F -d rocep103s0f0 -n 5 -s 15 --use_tcp_socket 192.168.20.11
    58:
    ./ib_write_bw -F -d rocep103s0f0 --use_tcp_socket
    
    测试程序一:
    5859目录:/home/xujia/demo
    
    59:
    	./server
    58:
    	./client 192.168.20.12
    
    在server端看数据内容。
    
    
    测试程序二:
    5859目录:/home/xujia/rdma-main/perftest
    
    59./ib_write_bw -F -d rocep103s0f0 -n 5 -s 15 --use_tcp_socket 192.168.20.11
    58./ib_write_bw -F -d rocep103s0f0 --use_tcp_socket
    
    需要抓包看数据内容。
    
    测试程序三:
    5859目录:
    /home/xujia/rtf_tool_test
    
    58:
    ./rtf_tool -i ens6f0 -d rocep103s0f0 -H -q 1 -w 128 -b 2 192.168.20.12 -s 32
    
    ./rtf_tool -i ens6f0 -d rocep103s0f0 -H -q 1 -w 128 -b 2 192.168.20.12 -s 32
    59:
    ./rtf_tool -i vis_en0 -d rocep103s0f0 -H -o -f ./a.txt -q 1 -w 128 -s 32 -b 2
    
    ./rtf_tool -i vis_en0 -d rocep103s0f0 -H -o -f ./1G.txt -q 1 -w 128 -s 32 -b 2
    
    vis_perftest:
    	server:
    		ib_write_bw -F -d rocep103s0f0 -s 64 -n 10 --use_hugepages
    	client:
    		ib_write_bw -F -d rocep103s0f0 -s 64 -n 10 --use_hugepages 192.168.20.12
    创建文件:
    	dd if=/dev/zero of=./1M.txt bs=1M count=1
    	dd if=/dev/zero of=./1k.txt bs=1K count=1
    	dd if=/dev/zero of=./1G.txt bs=1G count=1
    测试程序一:5859目录:/home/xujia/demo
    a)正向传输
    59:
     ./server
    58:
     ./client 192.168.20.12
    在server端看数据内容(client端发送hello world)。
    b)反向传输
    59./client 192.168.20.11
    58:
    	./server
    测试程序二:
    5859目录:/home/xujia/rdma-main/perftest
    
    a)正向传输
    59./ib_write_bw -F -d rocep103s0f0 -n 5 -s 15 --use_tcp_socket 192.168.20.11
    58./ib_write_bw -F -d rocep103s0f0 --use_tcp_socket
    
    b)反向传输
    58./ib_write_bw -F -d rocep103s0f0 -n 5 -s 15 --use_tcp_socket 192.168.20.12
    59./ib_write_bw -F -d rocep103s0f0 --use_tcp_socket
    
    需要抓包看数据内容(发送数据内容有填充不是全0)。
    测试程序三:
    5859目录:/home/xujia/rtf_tool_test
    a)正向传输
    58:
    	./rtf_tool -i ens6f0 -d rocep103s0f0 -H -q 1 -w 128 -b 2 192.168.20.12 -s 32
    59:
    	./rtf_tool -i vis_en0 -d rocep103s0f0 -H -o -f ./a.txt -q 1 -w 128 -s 32 -b 2
    b)反向传输
    58./rtf_tool -i ens6f0 -d rocep103s0f0 -H -o -f ./a.txt -q 1 -w 128 -s 32 -b 2
    59./rtf_tool -i vis_en0 -d rocep103s0f0 -H -q 1 -w 128 -b 2 192.168.20.11 -s 32
    驱动装载:
    5859目录(或者home/zhangdong)/home/xujia/rdma_ubuntu/release
    命令:
    58:
    	bash xxx.sh 1 0xa
    59:
    	bash xxx.sh 1 0xb
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61
    • 62
    • 63
    • 64
    • 65
    • 66
    • 67
    • 68
    • 69
    • 70
    • 71
    • 72
    • 73
    • 74
    • 75
    • 76
    • 77
    • 78
    • 79
    • 80
    • 81
    • 82
    • 83
    • 84
    • 85
    • 86
    • 87
    • 88
    • 89
    • 90
    • 91
    • 92
    • 93
    • 94
    • 95
    • 96
    • 97
    • 98
    • 99
    • 100
    • 101
    • 102
    • 103
    • 104
    • 105
    • 106
    • 107
    • 108
    • 109
    • 110
    • 111
    • 112
    • 113
    • 114
    • 115
    • 116
    • 117
    • 118
    • 119
    • 120
    • 121
    • 122
    • 123
    • 124
    • 125
    • 126
    • 127
    • 128
    • 129
    • 130
    • 131
    • 132
    • 133
    • 134
    • 135
    • 136
    • 137
    • 138
    • 139
    • 140
    • 141
    • 142
    • 143
    • 144
    • 145
    • 146
    • 147
    • 148
    • 149
    • 150
    • 151
    • 152
    • 153
    • 154

    参考:
    1:https://blog.csdn.net/wuzhimang/article/details/78204527
    2:https://blog.csdn.net/skykingf/article/details/120701069
    3:https://blog.csdn.net/qq_43127460/article/details/126253393
    4:https://zhuanlan.zhihu.com/p/60266397
    5:https://blog.csdn.net/weixin_37726222/article/details/124002454
    6:https://blog.csdn.net/chenxijie1985/article/details/104595791
    7:https://blog.csdn.net/skykingf/article/details/120701069
    8:https://blog.51cto.com/u_15301988/5134287
    9:https://www.bbsmax.com/A/kjdw4lyOzN/

    安装参考文章也不一定一步下来就可以安装成功,反正见招拆招吧。

  • 相关阅读:
    Dubbo与SpringCloud和Feign的区别
    ORB-LSAM2:ComputeKeyPointsOctTree()提取特征:maxY = iniY + hCell + 6 为怎么是+6而不是+3?
    dedecms织梦管理系统模板标签代码
    监控直流防雷浪涌保护器综合方案
    (十一)MySQL日志篇之undo-log、redo-log、bin-log.....傻傻分不清!
    Vue中...(扩展运算符)的作用
    代码随想录 10.13 || 二叉树 LeetCode 235.二叉搜索树的最近公共祖先、701.二叉搜索树中的插入操作、450.删除二叉搜索树中的节点
    CoCube和Micro-ROS简单案例演示
    Beyond Homophily: Structure-aware Path Aggregation Graph Neural Network
    JAVA毕设项目web实验室课表管理系统(Vue+Mybatis+Maven+Mysql+sprnig+SpringMVC)
  • 原文地址:https://blog.csdn.net/qq_38158479/article/details/127866198