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 進入顯示配...