linux下strace用法详解

strace命令是一个集诊断、调试、统计于一体的工具,我们可以用它来监控用户空间进程和内核的交互。比如对应用程序的系统调用、信号传递与进程状态变更等进行跟踪与分析,以达到解决问题的目的。strace常用来跟踪进程执行时的系统调用和接收的信号。在Linux中,进程不能直接访问硬件设备,当进程需要访问硬件设备(比如,读取磁盘文件,接收网络数据等等)时,必须由用户态模式切换至内核态模式,通过系统调用访问硬件设备。strace可以跟踪到一个进程产生的系统调用,包括参数,返回值,执行消耗的时间。系统调用就是操作系统提供给用户编程时的一些公共子程序,一般为函数或方...

阅读全文

centos7安装CUDA Tookit+CUDA Samples+NCCL+OpenMPI

NVIDIA®CUDA®工具包为创建高性能GPU加速应用提供了发展环境。使用CUDA工具包,您可以在GPU加速嵌入式系统、桌面工作站、企业数据中心、基于云的平台和HPC超级计算机上开发、优化和部署您的应用程序。工具包包括GPU加速库、调试和优化工具、C/C++编译器以及一个运行时库,以便在包括x86、Arm和POWER在内的主要架构上构建和部署您的应用程序。科学家和研究人员可以利用内置功能在多GPU配置中分配计算,开发从单个GPU工作站到拥有数千个GPU的云安装的应用程序。简单介绍下我们就来进行cudatook...

阅读全文

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

阅读全文

ubuntu20.04安装nccl和验证

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

阅读全文

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等,以帮助用户更好地管理和控制容器的资源使用,提高容...

阅读全文

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

阅读全文