linux taskset 查詢或設置進程綁定CPU

1、安裝 taskset

lark@ubuntu:~$ sudo apt-get install util-linux

lark@ubuntu:~$ taskset --help
用法: taskset [選項] [mask | cpu-list] [pid|cmd [args...]]
顯示或更改進程的 CPU 關聯性。

選項:
-a, --all-tasks 對給定 pid
的所有任務(線程)進行作 -p, --pid 對現有的給定 pid
進行作 -c, --cpu-list display 并以列表格式
指定 cpu -h, --help 顯示此幫助
-V, --version 顯示版本

默認行為是運行新命令:
taskset 03 sshd -b 1024
您可以檢索現有任務的掩碼:
taskset -p 700
或設置它:
taskset -p 03 700
列表格式使用逗號分隔的列表而不是掩碼:
taskset -pc 0,3,7-11 700
列表格式的范圍可以采用 stride 參數:
例如,0-31:2 等同于掩碼 0x55555555

有關更多詳細信息,請參閱 taskset(1)。

2,,查詢確認系統是幾個核的

lark@ubuntu:~$ cat /proc/cpuinfo |grep “processor”
處理器 : 0
處理器 : 1
處理器 : 2
處理器 : 3
處理器 : 4
處理器 : 5
處理器 : 6
處理器 : 7

lark@ubuntu:~$ taskset -c -p 3109
PID 3109 的當前親和力列表:0-7

lark@ubuntu:~$ taskset -a -p 3554
pid 3554 的當前親和掩碼:ff

綁定內核,指定進程pid在cpu_id上 taskset -pc cpu_id PID

lark@ubuntu:~$ taskset -c -p 3109
pid 3109 的當前親和值列表:0-7
lark@ubuntu:~$
lark@ubuntu:~$ taskset -pc 1 3109
PID 3109 的當前親和值列表:0-7
PID 3109 的新親和值列表:1
lark@ubuntu:~$ taskset -c -p 3109
PID 3109 的當前親和值列表:1

更改具體某一進程(或 線程)CPU親和性

taskset -p hexadecimal mask PID/LWP
上面號線程可以在0~3號CPU之間允許,現在設置掩碼0x11(二進制0001 0001),表示可以在0~3號CPU上允許。

為具體某一進程(或 線程)CPU親和性指定一組范圍

lark@ubuntu:~$ taskset -pc 0,1,2 3109
pid 3109 的當前親和力列表:7
pid 3109 的新親和力列表:0-2
lark@ubuntu:~$ taskset -c -p 3109
pid 3109 當前的親和力列表:0-2

3,內核態函數綁定cpu以及用戶態綁定cpu舉例?

sched_setaffinity():綁定線程到 CPU 核心。

  
#define _GNU_SOURCE  
#include <stdio.h>  
#include <sched.h>  
#include <pthread.h>  void* thread_func(void* arg) {  cpu_set_t cpuset;  CPU_ZERO(&cpuset);  CPU_SET(1, &cpuset);  // 綁定到 CPU 1  if (sched_setaffinity(0, sizeof(cpu_set_t), &cpuset) == -1) {  perror("sched_setaffinity failed");  }  while (1);  // 模擬線程工作  return NULL;  
}  int main() {  pthread_t thread;  pthread_create(&thread, NULL, thread_func, NULL);  pthread_join(thread, NULL);  return 0;  
}  

2,內核態綁定cpu,set_cpus_allowed_ptr():設置內核線程的 CPU 親和性

 <linux/kthread.h>  
#include <linux/cpumask.h>  static int kernel_thread_func(void* data) {  cpumask_var_t mask;  alloc_cpumask_var(&mask, GFP_KERNEL);  cpumask_clear(mask);  cpumask_set_cpu(2, mask);  // 綁定到 CPU 2  set_cpus_allowed_ptr(current, mask);  while (!kthread_should_stop()) {  // 內核線程任務  }  return 0;  
}  static int __init init_module(void) {  struct task_struct *task = kthread_run(kernel_thread_func, NULL, "kbind_thread");  return 0;  
}  

用戶態通過sched_setaffinity()??綁定線程,內核態需操作?cpumask和任務調度器綁定內核線程。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/82065.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/82065.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/82065.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Python應用字符串格式化初解

大家好!在 Python 編程中&#xff0c;字符串格式化是一項基礎且實用的技能。它能讓你更靈活地拼接字符串與變量&#xff0c;使輸出信息更符合需求。本文將為和我一樣的初學者詳細介紹 Python 字符串格式化的常用方法。 定義: 字符串格式化就是將變量或數據插入到字符串中的特定…

EasyRTC嵌入式音視頻通信SDK一對一音視頻通信,打造遠程辦公/醫療/教育等場景解決方案

一、方案概述? 數字技術發展促使在線教育、遠程醫療等行業對一對一實時音視頻通信需求激增。傳統方式存在低延遲、高畫質及多場景適配不足等問題&#xff0c;而EasyRTC憑借音視頻處理、高效信令交互與智能網絡適配技術&#xff0c;打造穩定低延遲通信&#xff0c;滿足基礎通信…

SEO長尾詞優化精準布局

內容概要 長尾關鍵詞作為SEO策略的核心要素&#xff0c;其價值在于精準捕捉細分需求與低競爭流量入口。相較于短尾詞的高泛化性&#xff0c;長尾詞通過語義擴展與場景化組合&#xff0c;能夠更高效地匹配用戶搜索意圖&#xff0c;降低優化成本的同時提升轉化潛力。本文將從詞庫…

【MySQL】第7節|Mysql鎖機制與優化實踐以及MVCC底層原理剖析

鎖等待分析 我們通過檢查InnoDB_row_lock相關的狀態變量來分析系統上的行鎖的爭奪情況 示例場景 假設有兩個用戶同時操作賬戶表 accounts&#xff08;主鍵為 id&#xff09;&#xff1a; 1. 用戶A&#xff1a;執行轉賬&#xff0c;鎖定賬戶 id1 并等待3秒&#xff1a; BEG…

基于規則引擎與機器學習的智能Web應用防火墻設計與實現

基于規則引擎與機器學習的智能Web應用防火墻設計與實現 引言&#xff1a;智能防御的必然選擇 在2023年OWASP最新報告中&#xff0c;傳統Web應用防火墻&#xff08;WAF&#xff09;對新型API攻擊的漏報率高達67%&#xff0c;而誤報導致的正常業務攔截損失每年超過2.3億美元。面…

GIM發布新版本了 (附rust CLI制作brew bottle流程)

GIM 發布新版本了&#xff01;現在1.3.0版本可用了 可以通過brew upgrade git-intelligence-message升級。 初次安裝需要先執行 brew tap davelet/gim GIM 是一個根據git倉庫內文件變更自動生成git提交消息的命令行工具&#xff0c;參考前文《GIM: 根據代碼變更自動生成git提交…

PyQt5高效布局指南:QTabWidget與QStackedWidget實戰解析

&#x1f50d; 問題背景 當界面控件過多時&#xff0c;直接平鋪會導致窗口擁擠、用戶體驗下降。PyQt5提供了兩種高效容器控件&#xff1a; QTabWidget&#xff1a;選項卡式布局&#xff0c;支持直接切換不同功能模塊QStackedWidget&#xff1a;堆棧式布局&#xff0c;需配合導…

《2.2.1順序表的定義|精講篇》

上一節學習了線性表的邏輯結構&#xff0c;線性表需要實現哪些基本運算/操作&#xff1f;在本節中&#xff0c;我們將學習順序表的定義、順序表的特性&#xff0c;以及如何用代碼來實現順序表。下個小節我們會介紹基于順序存儲&#xff08;這種存儲結構&#xff09;如何用代碼具…

【 大模型技術驅動智能網聯汽車革命:關鍵技術解析與未來趨勢】

大模型技術驅動智能網聯汽車革命&#xff1a;關鍵技術解析與未來趨勢 關鍵詞總結&#xff1a; 大模型技術&#xff1a;LLM、VLM、MLLM、Transformer架構核心場景&#xff1a;智能駕駛、智能座艙、智能網聯關鍵技術&#xff1a;端到端系統、BEVOCC網絡、多模態融合、強化學習挑…

Rocketmq broker 是主從架構還是集群架構,可以故障自動轉移嗎

RocketMQ Broker的架構與故障轉移機制 RocketMQ的Broker架構同時采用了主從架構和集群架構&#xff0c;并且支持故障自動轉移。下面詳細說明&#xff1a; 一、架構類型 1. 集群架構 RocketMQ天然支持分布式集群部署 一個RocketMQ集群包含多個Broker組(每組有主從) 不同Bro…

從零開始建立個人品牌并驗證定位變現性的方法論——基于開源AI大模型、AI智能名片與S2B2C商城生態的實證研究

摘要&#xff1a;本文提出一種融合開源AI大模型、AI智能名片與S2B2C商城小程序源碼的"最小測試閉環"方法論&#xff0c;通過技術賦能實現個人品牌定位的精準驗證與變現路徑優化。以某美妝領域自由職業者為例&#xff0c;其通過開源AI大模型完成能力圖譜構建與資源匹配…

SQL進階之旅 Day 2:高效的表設計與規范:從基礎到實戰

【SQL進階之旅 Day 2】高效的表設計與規范&#xff1a;從基礎到實戰 開篇 在數據庫開發中&#xff0c;一個良好的表設計不僅能夠提高查詢效率&#xff0c;還能避免冗余數據和一致性問題。本文作為"SQL進階之旅"系列的第2天&#xff0c;將重點介紹高效的表設計與規范…

Java—— IO流的應用

帶權重的點名系統 案例要求 文件中有學生的信息&#xff0c;每個學生的信息獨占一行。包括學生的姓名&#xff0c;性別&#xff0c;權重 要求每次被抽中的學生&#xff0c;再次被抽中的概率在原先的基礎上降低一半。 本題的核心就是帶權重的隨機 分析 權重&#xff0c;權重和…

Docker中部署Alertmanager

在 Docker 中部署 Alertmanager&#xff08;通常與 Prometheus 告警系統配合使用&#xff09;的步驟如下&#xff1a; 一、拉取鏡像prom/alertmanager docker pull prom/alertmanager二、 創建 Alertmanager 配置文件 首先準備Alertmanager的配置文件 alertmanager.yml(如存…

【大模型面試每日一題】Day 27:自注意力機制中Q/K/V矩陣的作用與縮放因子原理

【大模型面試每日一題】Day 27&#xff1a;自注意力機制中Q/K/V矩陣的作用與縮放因子原理 &#x1f4cc; 題目重現 &#x1f31f;&#x1f31f; 面試官&#xff1a;請解釋Transformer自注意力機制中Query、Key、Value矩陣的核心作用&#xff0c;并分析為何在計算注意力分數時…

AI+能碳管理系統:全生命周期碳管理

在"雙碳"目標的時代背景下&#xff0c;AI賦能的能碳管理系統正在重新定義企業碳管理的邊界與深度。這套系統猶如一位不知疲倦的碳管家&#xff0c;從原材料采購到產品報廢&#xff0c;在每一個價值環節編織起精密的碳管理網絡&#xff0c;實現從微觀設備到宏觀戰略的…

k8s1.27版本集群部署minio分布式

需求&#xff1a; 1.創建4個pv&#xff0c;一個pv一個minio-pod。使用sts動態分配pvc(根據存儲類找到pv)。----持久化 2.暴露minio的9001端口。&#xff08;nodeport&#xff09;----管理界面 鏡像&#xff1a;minio/minio:RELEASE.2023-03-20T20-16-18Z--->換國內源 說明…

使用 OpenCV 實現 ArUco 碼識別與坐標軸繪制

&#x1f3af; 使用 OpenCV 實現 ArUco 碼識別與坐標軸繪制&#xff08;含Python源碼&#xff09; Aruco 是一種廣泛用于機器人、增強現實&#xff08;AR&#xff09;和相機標定的方形標記系統。本文將帶你一步一步使用 Python OpenCV 實現圖像中多個 ArUco 碼的檢測與坐標軸…

Qt 控件發展歷程 + 目標(1)

文章目錄 聲明簡述控件的發展歷程學習目標QWidget屬性 簡介&#xff1a;這篇文章只是一個引子&#xff0c;介紹一點與控件相關的但不重要的內容&#xff08;瀏覽瀏覽即可&#xff09;&#xff0c;這一章節最為重要的還是要把之后常用且重要的控件屬性和作用給學透&#xff0c;學…

socc 19 echash論文部分解讀

前言&#xff1a;論文還是得吃透才行&#xff0c;不然很多細節有問題 q1 object和data chunck哪一個大 根據論文&#xff0c;一個 data chunk 通常比一個 object 大&#xff0c;因為它是由多個 object 組合而成的 。 論文中提到&#xff0c;cross-coding 會將多個 object 組合…