GPU虚拟化MIG和vGPU技术对比

在vGPU模式下,GPU上的内存是静态分区的,但计算能力在共享GPU的VM之间分时共享。在这种模式下,当虚拟机在GPU上运行时,它“拥有”GPU的所有计算能力,但只能访问其共享的GPU内存。在MIG模式下,内存和计算能力是静态划分的。当VM在MIG模式下使用GPU时,它只能访问分配给它的内存,并且只能使用分配给它的计算核心。因此,即使GPU中剩余的计算核心(即未分配给该VM的核心)处于空闲状态,VM也无法使用这些空闲核心。无论VM使用哪种模式来执行其工作负载,计算结果都是相同的。唯一的区别在于使用挂...

阅读全文

centos7添加交换分区swap

由于自己的云服务器内存只有1G,今天在编译软件的时候直接报错提示内存不足的相关报错,所以记录下增加swap交换分区的方法,之前没记录的,这次记录下,下次方便使用。dd if=/dev/zero of=/dev/mapper/centos-swap bs=1024 count=2048000 #划分2G空间chmod 600 /swapmkswap /swap #创建交换分区swapon /swap #激活交换分区再使用swapon命令...

阅读全文

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...

阅读全文