containerd环境下通过的进程PID查询POD的方法

之前我们有记录过一个笔记,是docker环境下通过查看到的进程PID号来查找到拥有该进程的POD,具体可以查看我之前的笔记:https://sulao.cn/post/925.html近期基本都在将docker环境切换到containerd环境,所以这次根据需求来更新下containerd环境下根据PID查找对应POD的方法。查找的方法基本和原来没有太大区别,只是有个别步骤会一样,下面我们来一起看看怎么查询。首先我们还是获取我们要查询的PID号。例如我查询的是我的使用GPU资源的进程例如我们要查询tf_cnn_benchmarks这个进程ps ...

阅读全文

英伟达GPU配置MIG实例和原理介绍

MIG通过虚拟地将单个物理GPU划分为更小的独立实例,这项技术涉及GPU虚拟化,GPU的资源,包括CUDA内核和内存,被分配到不同的实例。这些实例彼此隔离,确保在一个实例上运行的任务不会干扰其他实例。使用MIG,每个实例的处理器都有独立和隔离的路径通过整个存储系统,芯片上的crossbar端口,L2cache,内存控制器和DRAM地址总线都被唯一地分配给一个单独的实例。这确保了单个用户的工作负载可以在相同的L2缓存分配和DRAM带宽下,以可预测的吞吐量和延迟运行,即使其它任务正在抖动它们自己的缓存或饱和它们的DRAM接口。MIG能够对可用的GPU计算资...

阅读全文

Nvidia Device PLugin工作原理机制

我们在k8s使用英伟达GPU时想让POD自动挂载我们需要部署nvidia-device-plugin组件,如何部署使用可以查看我之前的笔记:https://sulao.cn/post/978.html英伟达的deviceplugin组件主要在整个工作过程中做了如下工作1.deviceserver的启动和注册deviceserver在启动的时候会检测/var/lib/kubelet/device-plugins/kubelet.sock文件,如果该文件存在,那么deviceserver会通过该sock文件向kubelet注册信息。2.device的...

阅读全文

目前主流几种GPU共享技术原理

目前市面上有很多GPU共享技术,在GPU共享的模式下,在用户态共享和内核态进行共享是不一样的,根据以下视图,越往底层,共享对用户的影响越小,安全性也能对应提升。下面我就来简单介绍下目前GPU共享的一些技术1.CUDA劫持:rCUDA,vCUDA等CUDA劫持是较多方案选择的共享方法,属于时间复用。它通过劫持对CudadriverAPI的调用来做到资源隔离。共享模块一般位于在CudadriverAPI之上。优势:API开源,是非Nvidia官方技术人员能够较容易实现的共享技术。劣势:1.CUDA库升级活跃,而当CUDA库升级时,劫持方案也需要不断适...

阅读全文

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会在日志中报告一个退出码,告诉你容器发生了什么导致它退出。了解容器退出码下面我们将更详细地介绍每个退出码。退出码含义...

阅读全文

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

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

阅读全文

ubuntu20.04安装nccl和验证

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

阅读全文