linux監控cpu
① 如何監控linux 伺服器 cpu命令
cat /proc/cpuinfo中的信息
processor 邏輯處理器的id。
physical id 物理封裝的處理器的id。
core id 每個核心的id。
cpu cores 位於相同物理封裝的處理器中的內核數量。
siblings 位於相同物理封裝的處理器中的邏輯處理器的數量。
1 查看物理CPU的個數
#cat /proc/cpuinfo |grep "physical id"|sort |uniq|wc –l
2、 查看邏輯CPU的個數
#cat /proc/cpuinfo |grep "processor"|wc –l
3、 查看CPU是幾核
#cat /proc/cpuinfo |grep "cores"|uniq
4、 查看CPU的主頻
#cat /proc/cpuinfo |grep MHz|uniq
5、 # uname -a
6、 Linux euis1 2.6.9-55.ELsmp #1 SMP Fri Apr 20 17:03:35 EDT 2007 i686 i686 i386 GNU/Linux
(查看當前操作系統內核信息)
7、 # cat /etc/issue | grep Linux
8、 Red Hat Enterprise Linux AS release 4 (Nahant Update 5(查看當前操作系統發行版信息)
9、 # cat /proc/cpuinfo | grep name | cut -f2 -d: | uniq -c
8 Intel(R) Xeon(R) CPU E5410 @ 2.33GHz
(看到有8個邏輯CPU, 也知道了CPU型號)
9 # cat /proc/cpuinfo | grep physical | uniq -c
4 physical id : 0
4 physical id : 1
(說明實際上是兩顆4核的CPU)
10、# getconf LONG_BIT
32
(說明當前CPU運行在32bit模式下, 但不代表CPU不支持64bit)
11、# cat /proc/cpuinfo | grep flags | grep ' lm ' | wc –l
8(結果大於0, 說明支持64bit計算. lm指long mode, 支持lm則是64bit)
12、如何獲得CPU的詳細信息:
linux命令:cat /proc/cpuinfo
13、用命令判斷幾個物理CPU,幾個核等:
邏輯CPU個數:
# cat /proc/cpuinfo | grep "processor" | wc -l
物理CPU個數:
# cat /proc/cpuinfo | grep "physical id" | sort | uniq | wc -l
14、每個物理CPU中Core的個數:
# cat /proc/cpuinfo | grep "cpu cores" | wc -l
15、是否為超線程?如果有兩個邏輯CPU具有相同的」core id」,那麼超線程是打開的。每個物理CPU中邏輯CPU(可能是core, threads或both)的個數:
# cat /proc/cpuinfo | grep "siblings"
1.查看CPU信息命令
cat /proc/cpuinfo
2.查看內存信息命令
cat /proc/meminfo
3.查看硬碟信息命令
fdisk -l
查看CPU信息(型號)
# cat /proc/cpuinfo | grep name | cut -f2 -d: | uniq -c
8 Intel(R) Xeon(R) CPU E5410 @ 2.33GHz
(看到有8個邏輯CPU, 也知道了CPU型號)
# cat /proc/cpuinfo | grep physical | uniq -c
4 physical id : 0
4 physical id : 1
(說明實際上是兩顆4核的CPU)
PS:Jay added on 10th, May, 2011
# 其實是可能有超線程HT技術,不一定是有4核,也可能是2核4線程;當時還理解不清楚
# getconf LONG_BIT
32
(說明當前CPU運行在32bit模式下, 但不代表CPU不支持64bit)
#
② Linux下如何監測cpu利用率
以下幾種命令可以實現:
1、top
程序提供了一個動態的、實時的、直觀的運行中的系統。它能顯示系統的主要信息,並且把由內核管理的任務列表顯示出來。top命令監控CPU利用率,進程狀
態和內存利用率。頂部區域包含了整個系統狀態的信息,從左到右,從上到下,依次是:當前時間,正常運行時間,負載均衡,進程總數和概況,CPU狀態,內存
佔用情況,swap佔用情況。
2、mpstat
mpstat命令會把每一個可用的處理器都寫入標准輸出中,第一個處理器編號為0,同時對所有處理器的全部平均值做一次報告。默認情況下,只會輸出全部平均值。要查看每一個CPU的情況,需要增加參數。
3、sar
使用sar命令可以收集,報告和保存系統活動信息。sar命令會把當天的CPU活動情況全部寫入標准輸出中。默認記錄間隔時間是10分鍾,你也可以添加參數來指定sar需要收集數據。
4、ps
ps是一條功能非常全面的命令。通過使用ps命令,可以很清楚的看出到底是哪一條進程在吃CPU。排在前面的佔用的CPU越多
5、gnome-system-monitor
如果計算機上裝有linux桌面系統,便可以使用圖形界面的系統監視器。從系統監視器中,可以很直觀地看到進程的狀態、佔用的CPU和內存等等信息。
③ linux 下監控CPU 佔用率的問題
用腳本實現起來還是比較難的感覺, 用程序實現我覺得比較簡單
一段小的c代碼就可以了 其實無論什麼方法求出來的佔用率都是過去的一小段時間內的cpu相對佔用率 有些偏差是非常正常的
如果需要代碼 說聲哦
goodluck
④ 如何使用PHP實時監控Linux伺服器的cpu,內存,硬碟信息
1,Linux下可以在/proc/cpuinfo中看到每個cpu的詳細信息。但是對於雙核的cpu,在cpuinfo中會看到兩個cpu。常常會讓人誤以為是兩個單核的cpu。
其實應該通過Physical
Processor
ID來區分單核和雙核。而Physical
Processor
ID可以從cpuinfo或者dmesg中找到.
flags
如果有
ht
說明
支持超線程技術
判斷物理CPU的個數可以查看physical
id
的值,相同則為同一個物理CPU
2,查看內存大小:
cat
/proc/meminfo
|grep
MemTotal
3,其他一些可以查看詳細
linux系統
信息的命令和方法:
uname
-a
#
查看內核/操作系統/
CPU信息
的linux系統信息命令
head
-n
1
/etc/issue
#
查看操作系統版本,是數字1不是字母L
cat
/proc/cpuinfo
#
查看CPU信息的linux系統信息命令
hostname
#
查看計算機名的linux系統信息命令
lspci
-tv
#
列出所有
PCI設備
lsusb
-tv
#
列出所有USB設備的linux系統信息命令
lsmod
#
列出載入的內核模塊
env
#
查看
環境變數
資源
free
-m
#
查看內存使用量和
交換區
使用量
df
-h
#
查看各分區使用情況
-sh
#
查看指定目錄的大小
grep
MemTotal
/proc/meminfo
#
查看內存總量
grep
MemFree
/proc/meminfo
#
查看空閑內存量
uptime
#
查看系統
運行時間
、用戶數、負載
cat
/proc/loadavg
#
查看系統負載磁碟和分區
mount
|
column
-t
#
查看掛接的分區狀態
fdisk
-l
#
查看所有分區
swapon
-s
#
查看所有
交換分區
hdparm
-i
/dev/hda
#
查看磁碟參數(僅適用於
IDE設備
)
dmesg
|
grep
IDE
#
查看啟動時IDE設備檢測狀況網路
ifconfig
#
查看所有網路介面的屬性
iptables
-L
#
查看防火牆設置
route
-n
#
查看
路由表
netstat
-lntp
#
查看所有監聽埠
netstat
-antp
#
查看所有已經建立的連接
netstat
-s
#
查看
網路統計
信息進程
ps
-ef
#
查看所有進程
top
#
實時顯示
進程狀態
用戶
w
#
查看活動用戶
id
#
查看指定用戶信息
last
#
查看
用戶登錄
日誌
cut
-d:
-f1
/etc/passwd
#
查看系統所有用戶
cut
-d:
-f1
/etc/group
#
查看系統所有組
crontab
-l
#
查看當前用戶的計劃任務服務
chkconfig
–list
#
列出所有系統服務
chkconfig
–list
|
grep
on
#
列出所有啟動的系統服務程序
rpm
-qa
#
查看所有安裝的軟體包
cat
/proc/cpuinfo
:查看CPU相關參數的linux系統命令
cat
/proc/partitions
:查看linux硬碟和分區信息的系統信息命令
cat
/proc/meminfo
:查看linux系統內存信息的linux系統命令
cat
/proc/version
:查看版本,類似uname
-r
cat
/proc/ioports
:查看設備io埠
cat
/proc/interrupts
:查看中斷
cat
/proc/pci
:查看pci設備的信息
cat
/proc/swaps
:查看所有swap分區的信息
⑤ 如何檢查linux伺服器cpu,內存性能
1.查看系統負載
(1)uptime
這個命令可以快速查看機器的負載情況。
在Linux系統中,這些數據表示等待CPU資源的進程和阻塞在不可中斷IO進程(進程狀態為D)的數量。
命令的輸出,load average表示1分鍾、5分鍾、15分鍾的平均負載情況。
通過這三個數據,可以了解伺服器負載是在趨於緊張還是趨於緩解。
如果1分鍾平均負載很高,而15分鍾平均負載很低,說明伺服器正在命令高負載情況,需要進一步排查CPU資源都消耗在了哪裡。
反之,如果15分鍾平均負載很高,1分鍾平均負載較低,則有可能是CPU資源緊張時刻已經過去。
(2)W
Show who is logged on and what they are doing.
可查詢登錄當前系統的用戶信息,以及這些用戶目前正在做什麼操作
其中的load average後面的三個數字則顯示了系統最近1分鍾、5分鍾、15分鍾的系統平均負載情況
注意:
load average這個輸出值,這三個值的大小一般不能大於系統邏輯CPU的個數。
如果輸出中系統有4個邏輯CPU,如果load average的三個值長期大於4時,說明CPU很繁忙,負載很高,可能會影響系統性能,
但是偶爾大於4時,倒不用擔心,一般不會影響系統性能。相反,如果load average的輸出值小於CPU的個數,則表示CPU還有空閑
2.dmesg | tail
該命令會輸出系統日誌的最後10行。
這些日誌可以幫助排查性能問題.
3.vmstat
vmstat Virtual Meomory Statistics(虛擬內存統計),用來獲得有關進程、虛存、頁面交換空間及 CPU活動的信息。這些信息反映了系統的負載情況。
後面跟的參數1,表示每秒輸出一次統計信息,表頭提示了每一列的含義
(1)監控進程procs:
r:等待在CPU資源的進程數。
這個數據比平均負載更加能夠體現CPU負載情況,數據中不包含等待IO的進程。如果這個數值大於機器CPU核數,那麼機器的CPU資源已經飽和(出現了CPU瓶頸)。
b:在等待io的進程數 。
(2)監控內存memoy:
swpd:現時可用的交換內存(單位KB)
free:系統可用內存數(以千位元組為單位)
buff: 緩沖去中的內存數(單位:KB)。
cache:被用來做為高速緩存的內存數(單位:KB)。
(3)監控swap交換頁面
si: 從磁碟交換到內存的交換頁數量,單位:KB/秒。
so: 從內存交換到磁碟的交換頁數量,單位:KB/秒。
如果這個數據不為0,說明系統已經在使用交換區(swap),機器物理內存已經不足。
(4)監控 io塊設備
bi: 發送到塊設備的塊數,單位:塊/秒。
bo: 從塊設備接收到的塊數,單位:塊/秒。
(5)監控system系統
in: 每秒的中斷數,包括時鍾中斷。
cs: 每秒的環境(上下文)轉換次數。
(6)監控cpu中央處理器:
us:用戶進程使用的時間 。以百分比表示。
sy:系統進程使用的時間。 以百分比表示。
id:中央處理器的空閑時間 。以百分比表示。
us, sy, id, wa, st:這些都代表了CPU時間的消耗,它們分別表示用戶時間(user)、系統(內核)時間(sys)、空閑時間(idle)、IO等待時間(wait)和被偷走的時間(stolen,一般被其他虛擬機消耗)。
這些CPU時間,可以讓我們很快了解CPU是否出於繁忙狀態。
註:
如果IO等待時間很長,那麼系統的瓶頸可能在磁碟IO。
如果用戶時間和系統時間相加非常大,CPU出於忙於執行指令。
如果有大量CPU時間消耗在用戶態,也就是用戶應用程序消耗了CPU時間。這不一定是性能問題,需要結合r隊列,一起分析。
4.mpstat -P ALL 1
該命令可以顯示每個CPU的佔用情況,如果有一個CPU佔用率特別高,那麼有可能是一個單線程應用程序引起的。
MultiProcessor Statistics的縮寫,是實時系統監控工具
其報告與CPU的一些統計信息,這些信息存放在/proc/stat文件中。在多CPUs系統里,其不但能查看所有CPU的平均狀況信息,而且能夠查看特定CPU的信息。
格式:mpstat [-P {|ALL}] [internal [count]]
-P {|ALL} 表示監控哪個CPU, cpu在[0,cpu個數-1]中取值
internal 相鄰的兩次采樣的間隔時間
count 采樣的次數,count只能和delay一起使用
all : 指所有CPU
%usr : 顯示在用戶級別(例如應用程序)執行時CPU利用率的百分比
%nice :顯示在擁有nice優先順序的用戶級別執行時CPU利用率的百分比
%sys : 現實在系統級別(例如內核)執行時CPU利用率的百分比
%iowait : 顯示在系統有未完成的磁碟I/O請求期間CPU空閑時間的百分比
%irq : 顯示CPU服務硬體中斷所花費時間的百分比
%soft : 顯示CPU服務軟體中斷所花費時間的百分比
%steal : 顯示虛擬機管理器在服務另一個虛擬處理器時虛擬CPU處在非自願等待下花費時間的百分比
%guest : 顯示運行虛擬處理器時CPU花費時間的百分比
%idle : 顯示CPU空閑和系統沒有未完成的磁碟I/O請求情況下的時間百分比
系統有兩個CPU。如果使用參數 -P 然後緊跟CPU編號得到指定CPU的利用率。
( Ubuntu安裝: apt-get install sysstat)
5.pidstat 1
pidstat命令輸出進程的CPU佔用率,該命令會持續輸出,並且不會覆蓋之前的數據,可以方便觀察系統動態
6.iostat -xz 1
iostat命令主要用於查看機器磁碟IO情況
r/s, w/s, rkB/s, wkB/s:分別表示每秒讀寫次數和每秒讀寫數據量(千位元組)。讀寫量過大,可能會引起性能問題。
await:IO操作的平均等待時間,單位是毫秒。這是應用程序在和磁碟交互時,需要消耗的時間,包括IO等待和實際操作的耗時。如果這個數值過大,可能是硬體設備遇到了瓶頸或者出現故障。
avgqu-sz:向設備發出的請求平均數量。如果這個數值大於1,可能是硬體設備已經飽和(部分前端硬體設備支持並行寫入)。
%util:設備利用率。這個數值表示設備的繁忙程度,經驗值是如果超過60,可能會影響IO性能(可以參照IO操作平均等待時間)。如果到達100%,說明硬體設備已經飽和。
註:如果顯示的是邏輯設備的數據,那麼設備利用率不代表後端實際的硬體設備已經飽和。值得注意的是,即使IO性能不理想,也不一定意味這應用程序性能會不好,可以利用諸如預讀取、寫緩存等策略提升應用性能
7.free -m
free命令可以查看系統內存的使用情況,-m參數表示按照兆位元組展示。
最後兩列分別表示用於IO緩存的內存數,和用於文件系統頁緩存的內存數。
註:
第二行-/+ buffers/cache,看上去緩存佔用了大量內存空間。這是Linux系統的內存使用策略,盡可能的利用內存,如果應用程序需要內存,這部分內存會立即被回收並分配給應用程序。
如果可用內存非常少,系統可能會動用交換區(如果配置了的話),這樣會增加IO開銷(可以在iostat命令中提現),降低系統性能。
8.sar -n DEV 1
sar命令在這里可以查看網路設備的吞吐率。
在排查性能問題時,可以通過網路設備的吞吐量,判斷網路設備是否已經飽和。
9.sar -n TCP,ETCP 1
sar命令在這里用於查看TCP連接狀態,其中包括:
active/s:每秒本地發起的TCP連接數,既通過connect調用創建的TCP連接;
passive/s:每秒遠程發起的TCP連接數,即通過accept調用創建的TCP連接;
retrans/s:每秒TCP重傳數量;
TCP連接數可以用來判斷性能問題是否由於建立了過多的連接,進一步可以判斷是主動發起的連接,還是被動接受的連接。TCP重傳可能是因為網路環境惡劣,或者伺服器壓力過大導致丟包。
10.top
top命令包含了前面好幾個命令的檢查的內容。比如系統負載情況(uptime)、系統內存使用情況(free)、系統CPU使用情況(vmstat)等。
因此通過這個命令,可以相對全面的查看系統負載的來源。同時,top命令支持排序,可以按照不同的列排序,方便查找出諸如內存佔用最多的進程、CPU佔用率最高的進程等。
但是,top命令相對於前面一些命令,輸出是一個瞬間值,如果不持續盯著,可能會錯過一些線索。這時可能需要暫停top命令刷新,來記錄和比對數據。
⑥ 自動監控linux的cpu、內存、磁碟使用率
cpu查看: cat /proc/cpuinfo
內存容量:cat /proc/meminfo 或者 free -g
內存型號:dmidecode -t memory
主板bios:dmidecode -t bios
列出所有硬碟:fdisk -l
硬碟的型號:hdparm -i /dev/sda (備註:/dev/hda,由 fdisk -l 獲得)
⑦ 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)個微操作組成,復雜指令則要由幾十個微操作甚至幾百個微操作組成。
⑧ linux監測cpu腳本應該怎麼寫
你可以用top指令,加入你的進程id是1009,你可以使用如下命令試試監控他的性能指標: top -p 1009
⑨ linux下監控cpu使用情況的工具有哪些
1.
在系統維護的過程中,隨時可能有需要查看
CPU
使用率,並根據相應信息分析系統狀況的需要。在
CentOS
中,可以通過
top
命令來查看
CPU
使用狀況。運行
top
命令後,CPU
使用狀態會以全屏的方式顯示,並且會處在對話的模式
--
用基於
top
的命令,可以控制顯示方式等等。退出
top
的命令為
q
(在
top
運行中敲
q
鍵一次)。
top命令是Linux下常用的性能分析工具,能夠實時顯示系統中各個進程的資源佔用狀況,類似於Windows的任務管理器
可以直接使用top命令後,查看%MEM的內容。可以選擇按進程查看或者按用戶查看,如想查看oracle用戶的進程內存使用情況的話可以使用如下的命令:
$
top
-u
oracle
2.
釋義:
PID:進程的ID
USER:進程所有者
PR:進程的優先順序別,越小越優先被執行
NInice:值
VIRT:進程佔用的虛擬內存
RES:進程佔用的物理內存
SHR:進程使用的共享內存
S:進程的狀態。S表示休眠,R表示正在運行,Z表示僵死狀態,N表示該進程優先值為負數
%CPU:進程佔用CPU的使用率
%MEM:進程使用的物理內存和總內存的百分比
TIME+:該進程啟動後佔用的總的CPU時間,即佔用CPU使用時間的累加值。
COMMAND:進程啟動命令名稱