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)以及点对点发送和接收...

阅读全文

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

阅读全文

centos7使用chrony配置时间同步

查看之前笔记没有记录过ntp时间同步相关的笔记,今天我们再重新温习下目前主流的时间同步配置和相关配置的软件目前同步时间主要使用chrony,之前一直是使用ntpdserver/client来做,使用chrony对比之前的方案有以下几个优点1.时间同步的速度比ntpd更快2.chrony很好的处理了同步延迟以及网络延迟3.即使出现网络降级,chrony仍然能正常工作4.本地机器可以作为时间服务器,其他机器从这台服务器上同步时间我们本地的现状是一台节点192.168.1.72作为内网时间服务器源,其他节点连接此节点进行时间同步,同时我们192.168.1....

阅读全文

linux进程管理工具supervisor部署配置

Supervisor是用Python开发的一个client/server服务,是Linux/Unix系统下的一个进程管理工具,不支持Windows系统。它可以很方便的监听、启动、停止、重启一个或多个进程。因为supervisor依赖python,所以确保我们环境中装有python,接下来我看下这个工具的部署配置和使用方法首先我们需要安装python和pip工具,我们本地操作系统是centos7yum install -y python3 python3-pip接着使用python的pip管理工具进行安装pip3&n...

阅读全文