base庫學習 程序繫結cpu方法

2021-06-18 02:38:44 字數 1143 閱讀 1798

affinity.h
#ifndef base_affinity_h_

#define base_affinity_h_

namespace base // namespace base

#endif // base_affinity_h_

affinity.cc

#include "base/affinity.h"

#include // gcc 4.7 is needed

#include #include #include #include #include "base/flags.h"

#include "base/string_util.h"

define_string(

affinity_setting,

"","affinity setting: specify the cpu ids, seperated by comma.e.g.: '0,1'");

namespace base

std::vectorresults;

splitstring(flags_affinity_setting, ',', &results);

int cpu_num = sysconf(_sc_nprocessors_conf);

cpu_set_t mask;

cpu_zero(&mask);

for (int i = 0; i < results.size(); i++)

log(info) << "set cpu affinity " << flags_affinity_setting;

if (sched_setaffinity(0, sizeof(mask), &mask))

}} // namespace base

該方法主要用於實現將當前程序繫結到指定的cpu上面執行。

sysconf是中的方法,主要獲取選項的當前值。

sysconf(_sc_nprocessors_conf)獲取cpu個數

sysconf(_sc_pagesize)獲取系統頁面大小

sysconf (_sc_phys_pages)獲取物理頁個數

為程序繫結CPU

taskset 是乙個cpu 調節工具,能夠將系統任務分配至指定的cpu 本文以nodejs為例 第一步,查詢nodejs 程序 pgrep node 19277 19283 第二步,鎖定cpu taskset pc 0 19277 其中0代表cpu0,以此類推 taskset pc 1 19283...

python繫結核心 程序繫結CPU

程序繫結cpu 本文所講述內容僅適用於linux環境 1.cpu親和性 cpu親和性是指程序在某個給定的cpu上長時間執行,盡可能少的遷移到其他處理器的傾向性。linux核心的程序排程器天生就具有這樣的特性,它盡可能保證乙個程序不在處理器之間頻繁的遷移,頻繁的遷移意味著會增加cpu快取miss的概率...

linux繫結程序到指定cpu

方法之一 top p pidof 程序名稱 方法之二 top p ps h o pid c 程序名稱 如果還要檢視此程序下的各執行緒,可用如下 top h p pidof process 我是分割線 top實時顯示程序在那個cpu上 1 top 2 按 1 實時顯示cpu資訊 3 按 f 進入顯示配...