Linux命令檢視以及程式設計獲取CPU核數

2021-07-23 15:16:37 字數 2067 閱讀 2199

㈠ 概念

① 物理cpu

實際server中插槽上的cpu個數

物理cpu數量,可以數不重複的 physical id 有幾個

② 邏輯cpu

linux使用者對 /proc/cpuinfo 這個檔案肯定不陌生. 它是用來儲存cpu硬體資訊的

資訊內容分別列出了processor 0 – n 的規格。這裡需要注意,如果你認為n就是真實的cpu數的話, 就大錯特錯了

一般情況,我們認為一顆cpu可以有多核,加上intel的超執行緒技術(ht), 可以在邏輯上再分一倍數量的cpu core出來

邏輯cpu數量=物理cpu數量 x cpu cores 這個規格值 x 2(如果支援並開啟ht)

備註一下:linux下top檢視的cpu也是邏輯cpu個數

③ cpu核數

一塊cpu上面能處理資料的晶元組的數量、比如現在的i5 760,是雙核心四執行緒的cpu、而 i5 2250 是四核心四執行緒的cpu

一般來說,物理cpu個數×每顆核數就應該等於邏輯cpu的個數,如果不相等的話,則表示伺服器的cpu支援超執行緒技術 

㈡ 檢視cpu資訊

當我們 cat /proc/cpuinfo 時、

具有相同core id的cpu是同乙個core的超執行緒

具有相同physical id的cpu是同乙個cpu封裝的執行緒或核心

㈢ 下面舉例說明

① 檢視物理cpu的個數

[plain]view plain

copy

print?

#cat /proc/cpuinfo |grep "physical id"|sort |uniq|wc -l  

2  

② 檢視邏輯cpu的個數

[plain]view plain

copy

print?

#cat /proc/cpuinfo |grep "processor"|wc -l  8

③ 檢視cpu是幾核

[plain]view plain

copy

print?

#cat /proc/cpuinfo |grep "cores"|uniq  4 

我這裡應該是2個cpu,每個cpu有4個core,所以邏輯cpu是8

在windows平台下,我們可以使用getsysteminfo( )這個函式來獲取當前系統的一些軟硬體資訊。其中有一項即是當前機器中處理器的核數。通過如下語句即可獲得所要的資訊:

system_info info;

getsysteminfo(&info);

return info.dwnumberofprocessors;

而在linux平台下,我們可以使用sysconf()或者get_nprocs()來獲取處理器核數。下面分別介紹:

sysconf( )有unistd.h提供,要使用該函式需要#include,

其引數可以是_sc_nprocessors_conf,也可以是 _sc_nprocessors_onln。sysconf(_sc_nprocessors_conf)返回系統可以使用的核數,但是其值會包括系統中禁用的核的數目,因此該值並不代表當前系統中可用的核數。而sysconf(_sc_nprocessors_onln)的返回值真正的代表了系統當前可用的核數。

gnu c庫提供了另外一種獲取機器可用核數的方法。函式intget_nprocs_conf (void),int get_nprocs (void)在 sys/sysinfo.h中定義,這兩個函式可用獲取機器的核數。其中get_nprocs_conf (void)的返回值與sysconf(_sc_nprocessors_conf)類似,並不真正表名當前可用核數;而get_nprocs (void)的返回值與sysconf(_sc_nprocessors_onln)類似,真正的反映了當前可用核數。

tac命令以及各種linux檔案檢視命令

有許多命令都可以檢視檔案,不同的命令有不同的優點,可以針對不同的需要分別選擇命令以提高效率 cat 由第一行開始顯示內容,並將所有內容輸出 tac 從最後一行倒序顯示內容,並將所有內容輸出 more 根據視窗大小,一頁一頁的顯示檔案內容 less 和more類似,但其優點可以往前翻頁,而且進行可以搜...

linux 檢視終端的命令以及ssh命令

可以使用who命令和w命令 w功能最全,能顯示使用者登入名,終端標誌,星期幾登入和具體登入時間,閒置時間。使用者正在指向的程式,占用cpu時間,系統的執行時間和平均負載 who僅顯示使用者登入名,終端標誌,和登入日期和時間,pst x是因為使用遠端終端登入的。也可以直接使用tty來檢視當前所使用的終...

Linux檢視埠命令以及殺死程序

二 netstat命令 三 kill命令 linux 檢視埠占用情況可以使用lsof和netstat命令。lsof list open files 是乙個列出當前系統開啟檔案的工具。lsof 檢視埠占用語法格式 lsof i 埠號 檢視伺服器 8000 埠的占用情況 lsof i 8000 comm...