RDMA网卡协议配置以及网络性能测试方法

上次笔记我们介绍过迈络思品牌的RDMA网卡驱动的安装,这里我们来就学习并记录下RDMA网卡的配置,之前的笔记我们可以查看:https://sulao.cn/post/977.html之前是到重启openibd服务来加载新的驱动程序,这样就可以加载需要的mod到内核中,注意我们需要设置开机启动/etc/init.d/openibd restartUnloading HCA driver: [ OK ] Loading HCA driver and&nbs...

阅读全文

k8s容器退出码详细信息介绍

由于经常使用k8s,所以在遇到退出码含义的时候经常要去查询,所以记录到博客上方便进行查找对应的含义关系。当一个容器达到Exited状态时,Docker会在日志中报告一个退出码,告诉你容器发生了什么导致它退出。了解容器退出码下面我们将更详细地介绍每个退出码。退出码0:正常退出退出代码0由开发人员在任务完成后故意停止容器时触发。从技术上讲,退出代码0意味着前台进程未附加到特定容器。如果容器以退出码0终止怎么办?检查容器日志,确定哪个库导致容器退出;查看现有库的代码,并确定它触发退出码0的原因,以及它是否正常运行。退出码1:应用错误退...

阅读全文

pod修改共享内存shm大小的方法

默认的Linux发行版中的内核配置都会开启tmpfs,映射到了/dev/下的shm目录,这个就是共享内存目录,可以通过df命令查看,例如在pod中我们查看默认就是64M。/dev/shm/是linux下一个非常有用的目录,因为这个目录不在硬盘上,而是在内存里,直接使用/dev/shm/就可达到很好的优化效果。默认系统就会加载/dev/shm,它就是所谓的tmpfs,像虚拟磁盘一样,tmpfs可以使用您的RAM,但它也可以使用您的交换分区来存储,tmpfs是一个文件系统,而不是块设备,只是安装它,它就可以使用了。动态文件系统的大小,/dev/sh...

阅读全文

nccl的安装和验证

NCCL(NVIDIACollectiveCommunicationsLibrary)是由NVIDIA开发的一种高性能的多GPU通信库,用于在多个NVIDIAGPU之间实现快速的数据传输和协同计算。它可以在深度学习和高性能计算领域中提供分布式训练和数据并行加速的支持。NCCL实现了针对NVIDIAGPU和网络进行优化的多GPU和多节点通信基元。NCCL提供了诸如全收集(all-gather)、全归约(all-reduce)、广播(broadcast)、归约(reduce)、归约散射(reduce-scatter)以及点对点发送和接收...

阅读全文

k8s调度GPU节点并挂载GPU设备

k8s已经支持GPU设备的调度和POD容器挂载,需要做以下配置1.首先我们需要再宿主机安装驱动2.需要安装nvidia-container-runtime3.GPU节点打标签并部署k8s-device-plugin上面1和2可以直接搜我之前的笔记,我们直接部署k8s-device-plugin,这个可以上报GPU节点的GPU数量到k8s中,然后在业务yaml文件中添加requests/limits请求配置中添加GPU相关配置即可自动调度到GPU节点并挂载GPU设备将以下内容保存为k8s-device-plugin.yaml,lable需要自己按照需求进行...

阅读全文

ubuntu20.04安装迈络思(Mellanox)RDMA网卡驱动

安装网卡驱动前我们需要先来了解下RDMA技术RDMA是一种概念,在两个或者多个计算机进行通讯的时候使用DMA,从一个主机的内存直接访问另一个主机的内存。RDMA是一种host-offload,host-bypass技术,允许应用程序(包括存储)在它们的内存空间之间直接做数据传输。具有RDMA引擎的以太网卡(RNIC)--而不是host--负责管理源和目标之间的可靠连接。RDMA是一种新的直接内存访问技术,RDMA让计算机可以直接存取其他计算机的内存,而不需要经过处理器的处理。RDMA将数据从一个系统快速移动到远程系统的内存中,而不对操作系统造成任何影...

阅读全文

centos7升级systemd并切换cgroup v1到cgroup v2

Linux内核提供了两个版本即cgroupv1和cgroupv2cgroup是Linux内核提供的一种机制,用于限制、记录和隔离进程组的资源使用。它可以控制CPU、内存、IO等系统资源的分配和使用,并且支持动态调整资源限制。使用cgroup技术可以实现多个应用程序之间的资源隔离和保护,从而避免应用程序之间的互相影响和冲突。同时,cgroup还可以用于限制系统服务的资源使用,以避免某个服务占用过多资源导致系统负载过高或崩溃。cgroup技术被广泛应用于容器化技术中,如Docker、Kubernetes等,以帮助用户更好地管理和控制容器的资源使用,提高容...

阅读全文

python操作etcd常用方法

目前的工作中会经常用到etcd,使用etcdctl命令有时感觉不是很方便的处理后续数据,所以记录下使用python操作etcd的一些常用方法使用python操作etcd获取单个key会返回data和meta两个值,如果是获取列表需要循环取出,取出的值为bytes类型,需要使用decode()进行转换下面我们来介绍下一些常见的操作1.put命令插入和更新keyimport etcd3etcd = etcd3.client('127.0.0.1', 2379, user=root,&nbs...

阅读全文

centos7下程序运行提示报错version `GLIBCXX_3.4.20' not found

目前这个问题只出现centos7上,因为centos7带的glic库版本较低导致程序升级以后,POD启动时报错。容器运行时是我们自己的,看到直接执行该文件直接报错/usr/bin/orion-container-runtime: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.20` not found(required by /lib64/libcndev.so)/usr/bin/orion-container-runtime: ...

阅读全文

centos7二进制部署prometheus+alertmanager+grafana

prometheus是一个基于golang编写,编译后的软件包,不依赖于任何的第三方依赖。用户只需要下载对应平台的二进制包,解压并且添加基本的配置即可正常启动PrometheusServer我们首先需要准备一些部署包,可以去这个地址去下载:https://prometheus.io/download/wget https://github.com/prometheus/prometheus/releases/download/v2.45.3/prometheus-2.45.3.linux-amd64.tar.gzwget h...

阅读全文