A. linux中如何查看系統的cpu
方法/步驟
linux的cpu信息可以從文件中cpuinfo讀取。
執行命令:
# cat /proc/cpuinfo
B. 怎麼查看linux的cpu,內存等佔用率
在系統維護的過程中,隨時可能有需要查看
CPU
使用率,並根據相應信息分析系統狀況的需要。在
CentOS
中,可以通過
top
命令來查看
CPU
使用狀況。運行
top
命令後,CPU
使用狀態會以全屏的方式顯示,並且會處在對話的模式
--
用基於
top
的命令,可以控制顯示方式等等。退出
top
的命令為
q
(在
top
運行中敲
q
鍵一次)。
top命令是Linux下常用的性能分析工具,能夠實時顯示系統中各個進程的資源佔用狀況,類似於Windows的任務管理器
可以直接使用top命令後,查看%MEM的內容。可以選擇按進程查看或者按用戶查看,如想查看oracle用戶的進程內存使用情況的話可以使用如下的命令:
$
top
-u
oracle
C. 如何查看linux的物理cpu信息
linux查看硬體信息
(1)查看硬碟大小:df-h
(2)查看內存大小
free-m
ll-h/proc/kcore
(3)查看CPUcat/proc/cpuinfo
linux下/proc/cpuinfo文件會顯示cpu的信息
邏輯CPU個數是指cat/proc/cpuinfo所顯示的processor的個數
#cat
/proc/cpuinfo
|
grep
processor
|
wc
-l
物理CPU個數,是指physical
id(的值)的數量
#cat
/proc/cpuinfo
|
grep
physical
id
|
sort
|
uniq
|
wc
-l
每個物理CPU中Core的個數:每個相同的physical
id都有其對應的core
id。如core
id分別為1、2、3、4,則表示是Quad-Core
CPU,若core
id分別是1、2,則表示是Dual-Core。
#cat
/proc/cpuinfo
|
grep
cpucores
|
wc
-l
邏輯CPU:每個物理CPU中邏輯CPU(可能是core,threads或both)的個數:
#cat
/proc/cpuinfo
|
grep
siblings
它既可能是cores的個數,也可能是core的倍數。當它和core的個數相等時,表示每一個core就是一個邏輯CPU,若它時core的2倍時,表示每個core又enable了超線程(Hyper-Thread)。
比如:一個雙核的啟用了超線程的物理cpu,其core
id分別為1、2,但是sibling是4,也就是如果有兩個
邏輯CPU具有相同的core
id,那麼超線程是打開的。
查看linux內核版本[root@q1test01~]#uname-a
Linuxq1test01
2.6.9-22.ELsmp#1
SMP
Mon
Sep
19
18:00:54
EDT
2005x86_64
x86_64
x86_64
GNU/Linux
[root@q1test01~]#lsb_release-a
LSB
Version::core-3.0-amd64:core-3.0-ia32:core-3.0-noarch:graphics-3.0-amd64:graphics-
3.0-ia32:graphics-3.0-noarch
Distributor
ID:RedHatEnterpriseAS
Description:Red
Hat
Enterprise
Linux
AS
release
4(Nahant
Update
2)
Release:4
Codename:NahantUpdate2
註:這個命令適用於所有的linux,包括Redhat、SuSE、Debian等發行版
D. 在linux 下怎麼查看伺服器的cpu和內存的硬體信息
以Linux centos 7伺服器為例,查看伺服器的cpu和內存的硬體信息方法如下:
1、滑鼠右鍵點擊桌面,選擇「打開終端」,如下圖所示。
E. linux系統怎麼查看cpu使用情況
1、查看內存:在SSH遠程式控制制端,輸入命令「cat /proc/meminfo」,按下「Enter」回車鍵,即可看到總的內存佔用情況。
2、查看CPU:在SSH遠程式控制制端,輸入命令「top」,按下「Enter」回車鍵,即可看到cpu的使用率。
3、Linux上的VNC服務端,比較常用的就是tigervnc和x11vnc。x11vnc可以讓遠程訪問者控制本地的實際顯示器,而tigervnc既可以遠程式控制制實際顯示器,還可以控制平行獨立於當前物理顯示器的虛擬顯示器。
中央處理器(Central Processing Unit),簡稱CPU,是1971年推出的一個計算機的運算核心和控制核心,是信息處理、程序運行的最終執行單元。
中央處理器包含運算邏輯部件、寄存器部件和控制部件等,並具有處理指令、執行操作、控制時間、處理數據等功能。
CPU包括運算邏輯部件、寄存器部件和控制部件等。[1]
邏輯部件
英文Logic components;運算邏輯部件,可以執行定點或浮點算術運算操作、移位操作以及邏輯操作,也可執行地址運算和轉換。
寄存器
中央處理器
中央處理器
寄存器部件,包括通用寄存器、專用寄存器和控制寄存器。
通用寄存器又可分定點數和浮點數兩類,它們用來保存指令執行過程中臨時存放的寄存器操作數和中間(或最終)的操作結果。
通用寄存器是中央處理器的重要組成部分,大多數指令都要訪問到通用寄存器。通用寄存器的寬度決定計算機內部的數據通路寬度,其埠數目往往可影響內部操作的並行性。
專用寄存器是為了執行一些特殊操作所需用的寄存器。
控制寄存器(CR0~CR3)用於控制和確定處理器的操作模式以及當前執行任務的特性。CR0中含有控制處理器操作模式和狀態的系統控制標志;CR1保留不用;CR2含有導致頁錯誤的線性地址;CR3中含有頁目錄表物理內存基地址.
控制部件
英文Control unit;控制部件,主要是負責對指令解碼,並且發出為完成每條指令所要執行的各個操作的控制信號。
其結構有兩種:一種是以微存儲為核心的微程序控制方式;一種是以邏輯硬布線結構為主的控制方式。
微存儲中保持微碼,每一個微碼對應於一個最基本的微操作,又稱微指令;各條指令是由不同序列的微碼組成,這種微碼序列構成微程序。中央處理器在對指令解碼以後,即發出一定時序的控制信號,按給定序列的順序以微周期為節拍執行由這些微碼確定的若干個微操作,即可完成某條指令的執行。
簡單指令是由(3~5)個微操作組成,復雜指令則要由幾十個微操作甚至幾百個微操作組成。
F. linux下如何看有幾個cpu
首先為大家演示1個CPU的情況,這種情況最簡單。
CPU的信息存放在/proc/cpuinfo中,如下圖所示,physical id代表第幾個CPU,編號從0開始,cpu cores 代表核數,可以看出是1顆1核的CPU,即CPU個數是1個。
G. linux看cpu型號
1 查看CPU
1.1 查看CPU個數
# cat /proc/cpuinfo | grep "physical id" | uniq | wc -l
2 **uniq命令:刪除重復行;wc –l命令:統計行數**
1.2 查看CPU核數
# cat /proc/cpuinfo | grep "cpu cores" | uniq
cpu cores : 4
1.3 查看CPU型號
# cat /proc/cpuinfo | grep 'model name' |uniq
model name : Intel(R) Xeon(R) CPU E5630 @ 2.53GHz
H. linux下如何查卡cpu的頻率
在linux查看cpu信息步驟如下:
1、linux的cpu信息可以從文件中cpuinfo讀取。
執行命令: # cat /proc/cpuinfo
這樣就能查到CPU的相關信息了。
參考資料來源:網路-linux
I. linux cpu佔用較高
Linux伺服器上出現CPU負載達到100%居高不下的情況,如果CPU 持續跑高,則會影響業務系統的正常運行; CPU利用率。根據經驗來看,用戶空間進程佔用CPU比例在 65-70%。一般不能超過這個比例,超過這個比例,系統性能就會降低,平均負載升高,這點將會在下面的測試中看到。
進程上下文切換。上下文切換和CPU利用率應該聯系起來,如果CPU利用率低,那麼上下文切換稍高點也能接受。上下文切換也是需要消耗CPU資源的,頻繁的切換必將使得CPU利用率升高。
運行隊列中等待運行的進程數。每個CPU核心中等待處理的進程數不應該超過3個線程/進程。如4核心的機器,那麼隊列的最大值應該不超過12個。
對於CPU過載問題通常使用以下兩種方式即可快速定位(不能涵蓋所有特殊情況,請作為其中的參考排查思路):
一、排查分析
方法一(針對java應用):
第一步:使用
top命令,然後按shift+p按照CPU排序
找到佔用CPU過高的進程的pid
第二步:使用
top -H -p [進程id]
找到進程中消耗資源最高的線程的id
第三步:使用
echo 'obase=16;[線程id]' | bc或者printf "%x\n" [線程id]
將線程id轉換為16進制(字母要小寫)
bc是linux的計算器命令
第四步(此步驟可以和相對應的java開發進行一起排查):執行
jstack [進程id] |grep -A 10 [線程id的16進制]」
查看線程狀態信息
二、kswapd0 進程佔用 CPU 較高
操作系統都用分頁機制來管理物理內存,操作系統將磁碟的一部分劃出來作為虛擬內存,由於內存的速度要比磁碟快得多,所以操作系統要按照某種換頁機制將不需要的頁面換到磁碟中,將需要的頁面調到內存中,由於內存持續不足,這個換頁動作持續進行,kswapd0 是虛擬內存管理中負責換頁的,當伺服器內存不足的時候 kswapd0 會執行換頁操作,這個換頁操作是十分消耗主機 CPU 資源的。如果通過 top 發現該進程持續處於非睡眠狀態,且運行時間較長,可以初步判定系統在持續的進行換頁操作,可以將問題轉向內存不足的原因來排查。
J. linux cpu使用率過高排查
方法一
第一步:使用
top命令,然後按shift+p按照CPU排序
找到佔用CPU過高的進程的pid
第二步:使用
top -H -p [進程id]
找到進程中消耗資源最高的線程的id
第三步:使用
echo 'obase=16;[線程id]' | bc或者printf "%x
" [線程id]
將線程id轉換為16進制(字母要小寫)
bc是linux的計算器命令
第四步:執行
jstack [進程id] |grep -A 10 [線程id的16進制]」
查看線程狀態信息
方法二
第一步:使用
top命令,然後按shift+p按照CPU排序
找到佔用CPU過高的進程
第二步:使用
ps -mp pid -o THREAD,tid,time | sort -rn
獲取線程信息,並找到佔用CPU高的線程
第三步:使用
echo 'obase=16;[線程id]' | bc或者printf "%x
" [線程id]
將需要的線程ID轉換為16進制格式
第四步:使用
jstack pid |grep tid -A 30 [線程id的16進制]
列印線程的堆棧信息
案例分析
場景描述
生產環境下JAVA進程高CPU佔用故障排查
解決過程
1、根據top命令,發現PID為2633的Java進程佔用CPU高達300%,出現故障。
2、找到該進程後,如何定位具體線程或代碼呢,首先顯示線程列表,並按照CPU佔用高的線程排序:
1[root@localhost ~]# ps -mp 2633 -o THREAD,tid,time | sort -rn
顯示結果如下:
化主動為被動的方式,一方面減輕了運維工程師的工作,另一方面也減小了運維漏看或者忽略告警的情況發生。