首页 > 系统相关 >查看当前各个CPU分别绑定了哪些进程 168d356f35e5803fa67df39f5f50a54d

查看当前各个CPU分别绑定了哪些进程 168d356f35e5803fa67df39f5f50a54d

时间:2024-12-26 11:43:47浏览次数:4  
标签:processes 168d356f35e5803fa67df39f5f50a54d 亲和性 绑定 pid cpu 进程 CPU

查看当前各个CPU分别绑定了哪些进程

#!/bin/bash

# 获取系统的 CPU 核心数
cpu_count=$(nproc)

# 获取所有进程的 PID
pids=$(ps -eo pid)

# 初始化每个 CPU 核心的进程列表
declare -A cpu_processes

# 初始化动态进程列表
dynamic_processes=()

# 遍历每个进程,查看其 CPU 亲和性
for pid in $pids; do
    # 使用 taskset 获取当前进程的 CPU 亲和性
    affinity=$(taskset -p $pid 2>/dev/null | awk -F: '{print $2}' | tr -d '[:space:]')

    # 如果 taskset 命令失败(即亲和性为空),跳过该进程
    if [ -z "$affinity" ]; then
        continue
    fi

    # 输出每个进程的 PID 和亲和性,帮助调试
    # echo "PID $pid 的亲和性是: $affinity"
    
    if [ "$affinity" == "f" ]; then
        # 如果亲和性是 f,认为是动态进程
        dynamic_processes+=($pid)
    else
        # 否则解析二进制亲和性,找出对应的 CPU 核心
        # 将十六进制亲和性转换为二进制
        binary_affinity=$(echo "obase=2; ibase=16; $affinity" | bc)
        
        # 确保二进制亲和性是正确长度
        binary_affinity=$(printf "%0${cpu_count}d" $binary_affinity)

        # 根据二进制亲和性将进程分配到相应的 CPU 核心
        for ((i = 0; i < cpu_count; i++)); do
            if [ "${binary_affinity:$i:1}" == "1" ]; then
                if [ -z "${cpu_processes[$i]}" ]; then
                    cpu_processes[$i]=$pid
                else
                    cpu_processes[$i]="${cpu_processes[$i]} $pid"
                fi
            fi
        done
    fi
done

# 输出每个 CPU 核心上的进程
for ((i = 0; i < cpu_count; i++)); do
    echo "cpu$(($i+1)) 上有进程:"
    if [ -z "${cpu_processes[$i]}" ]; then
        echo "没有进程"
    else
        echo ${cpu_processes[$i]}
    fi
done

# 输出动态进程
echo "动态进程:"
if [ ${#dynamic_processes[@]} -eq 0 ]; then
    echo "没有动态进程"
else
    for pid in "${dynamic_processes[@]}"; do
        echo $pid
    done
fi
read

标签:processes,168d356f35e5803fa67df39f5f50a54d,亲和性,绑定,pid,cpu,进程,CPU
From: https://www.cnblogs.com/sudayo/p/18632367

相关文章

  • 编写好的代码在CPU中是如何运行的?
    编写好的代码在CPU中的运行过程是一个复杂但精细的流程,涉及多个步骤和组件。以下是从前端开发的角度,对代码在CPU中如何运行的一个概述:一、编写代码前端开发者使用高级编程语言(如JavaScript)编写代码,这些代码描述了程序希望计算机执行的具体任务。编写过程中,开发者需要遵循特定的......
  • 一次生产CPU100%排查
    cpu100%排查思路先介绍一下这次的情况风和日丽,朗朗乾坤,sentry突然报了一堆异常:org.redisson.client.RedisTimeoutException:Commandstillhasn'tbeenwrittenintoconnection!CheckCPUusageoftheJVM.Checkthattherearenoblockinginvocationsinasync/reac......
  • CPU的实现
    CPU实现CPU的数据通路moduleCPU(input[15:0]inM,//Mvalueinput(M=contentsofRAM[A])instruction,//Instructionforexecutioninputclock,reset,//Signalswhethertore-startthecurrent......
  • 5G CPE 主控CPU(上位机) 数据转发性能评估--基于5G模组和NEO3开发板评估
    5GCPEARM主控CPU数据转发性能评估--基于5G模组和NEO3开发板评估摘要NEO3介绍演示架构网络拓扑硬件连接固件及驱动NEO固件NEO3串口驱动拔号及网络配置配置AT接口拔号NEO3网络接口性能测试5G空口性能NEO千兆网口性能验证NEO3高速接口数......
  • 绕过CPU:英伟达与IBM致力推动GPU直连SSD以大幅提升性能
    绕过CPU:英伟达与IBM致力推动GPU直连SSD以大幅提升性能|Id|Title|DateAdded|SourceUrl|PostType|Body|BlogId|Description|DateUpdated|IsMarkdown|EntryName|CreatedTime|IsActive|AutoDesc|AccessPermission||-------------|-------------|---......
  • 使用原生js绑定两个onclick事件
    在JavaScript中,你可以通过以下两种方式绑定onclick事件:1.HTML中直接绑定在HTML元素中直接使用onclick属性来绑定事件。这种方法虽然简单,但不推荐用于大型项目,因为它违反了结构与行为分离的原则。<buttonid="btn1"onclick="handleClick1()">点击我1</button><buttonid="btn......
  • CPU和GPU,一个字母之差,究竟有啥区别?
    当我们讨论计算机硬件时,两个名词总是绕不开的:CPU(中央处理器)和GPU(图形处理器)。这两个词只相差一个字母,但它们的功能、设计和应用领域却有着显著的差异。理解这些差异对我们掌握现代计算机技术至关重要。在本文中,我们将详细探讨CPU与GPU的区别,并通过不同的维度深入分析它们在......
  • Linux中查看CPU、内存和IO的占用情况
    转自:https://www.cnblogs.com/ariesblog/p/13807845.html对于服务器的监控,主要还是查看CPU、内存以及IO的占用情况,在此做个简单的了解一、常用命令1、top命令top命令应该是使用比较多的一个,可以看到CPU和内存的占用情况以及进程的PID,进入top页面后,大写的字母P和M分别是按照CPU......
  • 智能工厂的设计软件 三种处理单元(NPU/GPU/CPU)及其在深度学习框架中的作用 之3(百度文库
    Q&A(百度文库)Q1、今天聊聊“智能工厂的设计软件”中的三种处理单元(NPU/GPU/CPU)。一般来说提起这三者就不得不说“深度学习”。那我们就从这里开始。请先给出一个程序例子来说明NPU如何协作CPU和GPU来完成深度学习任务在深度学习任务中,NPU(神经网络处理单元)、GPU(图形处理单元)......
  • 智能工厂的设计软件 三种处理单元(NPU/GPU/CPU)及其在深度学习框架中的作用 之4(百度文库
    Q10、前面的所有编程都是利用三种处理单元(NPU/GPU/CPU)来建造深度学习模型的例子,并且细节度和复杂度,即难度逐步增加,可以分别视为在软件架构、程序框架和编码实现三个不同的阶段要考虑的不同问题(以不同的视角在不同的立场上)。下面我们来看看深度学习本身。本人认为,深度学习......