linux下查看硬體資訊的指令,比如top,free等,還可以通過核心檔案來看,比如/proc/cpuinfo,/proc/meminfo等:
佔用記憶體的測量
測量一個進程佔用了多少記憶體,linux為我們提供了一個很方便的方法,/proc目錄為我們提供了所有的資訊,實際上top等工具也通過這裡來擷取相應的資訊。
/proc/meminfo 機器的記憶體使用量資訊
/proc/pid/maps pid為進程號,顯示當前進程所佔用的虛擬位址。
/proc/pid/statm 進程所佔用的記憶體
查看CPU資訊(型號)
# cat /proc/cpuinfo | grep name | cut -f2 -d: | uniq -c
2 Intel(R) Core(TM)2 Duo CPU T6500 @ 2.10GHz
查看物理CPU個數
# cat /proc/cpuinfo | grep physical | uniq -c
1 physical id: 0
1 address sizes : 36 bits physical, 48 bits virtual
1 physical id : 0
1 address sizes : 36 bits physical, 48 bits virtual
查看CPU運行模式:32位或者64位,如果是32位的話並不代表不能運行在64位下
#getconf LONG_BIT
64
查看是否CPU支援64位系統(如果值大於0,則支援64位元運算,lm指long mod)
# cat /proc/cpuinfo | grep flags | grep ' lm ' | wc -l
8
查看記憶體資訊
# cat /proc/meminf
MemTotal: 5046272 kB
MemFree: 163364 kB
Buffers: 865700 kB
Cached: 1698408 kB
SwapCached: 408 kB
......
查看當前系統核心資訊
# uname -a
Linux ubuntu 3.2.0-26-generic #41-Ubuntu SMP Thu Jun 14 17:49:24 UTC 2012 x86_64 x86_64 x86_64 GNU/Linux
查看當前作業系統核心資訊
# cat /etc/issue
Ubuntu 12.04 LTS \n \l
查看機器型號
# dmidecode | grep "Product Name"
Product Name: IdeaPad Y450 - 這是我的機器型號
Product Name: KL1 - 這是我的主板型號
在系統維護的過程中,隨時可能有需要查看 CPU 使用率,並根據相應資訊分析系統狀況的需要。在 CentOS 中,可以通過top 命令來查看 CPU 使用狀況。運行 top 命令後,CPU 使用狀態會以全屏的方式顯示,並且會處在對話的模式 -- 用基於 top 的命令,可以控制顯示方式等等。退出 top 的命令為 q (在 top 運行中敲 q 鍵一次)。
操作執行個體:
在命令列中輸入 “top” ,啟動 top
第一部分 -- 最上部的 系統資訊欄 :
top - 15:50:53 up 8:04, 4 users, load average: 4.25, 3.09, 2.91
Tasks: 205 total, 3 running, 202 sleeping, 0 stopped, 0 zombie
Cpu(s): 72.7%us, 16.1%sy, 0.0%ni, 10.0%id, 0.7%wa, 0.0%hi, 0.5%si, 0.0%st
Mem: 5046272k total, 4815492k used, 230780k free, 847540k buffers
Swap: 262140k total, 5104k used, 257036k free, 1660864k cached
第一行(top):
“15:50:53”為系統當前時刻;
“8:04”為系統啟動後到現在的運作時間;
“4 users”為當前登入到系統的使用者,更確切的說是登入到使用者的終端數 -- 同一個使用者同一時間對系統多個終端的串連將被視為多個使用者串連到系統,這裡的使用者數也將表現為終端的數目;
“load average”為當前系統負載的平均值,後面的三個值分別為1分鐘前、5分鐘前、15分鐘前進程的平均數,一般的可以認為這個數值超過 CPU 數目時,CPU 將比較吃力的負載當前系統所包含的進程;
第二行(Tasks):
“205 total”為當前系統進程總數;
“ 3 running”為當前運行中的進程數;
“202 sleeping”為當前處於等待狀態中的進程數;
“0 stoped”為被停止的系統進程數;
“0 zombie”為被複原的進程數;
第三行(Cpus):
分別表示了 CPU 當前的使用率;
第四行(Mem):
分別表示了記憶體總量、當前使用量、空閑記憶體量、以及緩衝使用中的記憶體量;
第五行(Swap):
表示類別同第四行(Mem),但此處反映著交換分區(Swap)的使用方式。通常,交換分區(Swap)被頻繁使用的情況,將被視作實體記憶體不足而造成的。
第二部分 -- 中間部分的內部命令提示欄:
top 運行中可以通過 top 的內部命令對進程的顯示方式進行控制。內部命令如下表:
s - 改變畫面更新頻率
l - 關閉或開啟第一部分第一行 top 資訊的表示
t - 關閉或開啟第一部分第二行 Tasks 和第三行 Cpus 資訊的表示
m - 關閉或開啟第一部分第四行 Mem 和 第五行 Swap 資訊的表示
N - 以 PID 的大小的順序排列表示進程列表(第三部分後述)
P - 以 CPU 佔用率大小的順序排列進程列表 (第三部分後述)
M - 以記憶體佔用率大小的順序排列進程列表 (第三部分後述)
h - 顯示協助
n - 設定在進程列表所顯示進程的數量
q - 退出 top
s - 改變畫面更新周期
第三部分 -- 最下部分的進程列表欄:
以 PID 區分的進程列表將根據所設定的畫面更新時間週期性更新。通過 top 內部命令可以控制此處的顯示方式
在Linux下查看記憶體我們一般用free命令:
zhouyl@ubuntu:~$ free
total used free shared buffers cached
Mem: 5046272 4877108 169164 0 851840 1664572
-/+ buffers/cache: 2360696 2685576
Swap: 262140 5104 257036
下面是對這些數值的解釋:
total:總計實體記憶體的大小。
used:已使用多大。
free:可用有多少。
Shared:多個進程共用的記憶體總額。
Buffers/cached:磁碟緩衝的大小。
第三行(-/+ buffers/cached):
used:已使用多大。
free:可用有多少。
第四行就不多解釋了。
區別:
第二行(mem)的used/free與第三行(-/+ buffers/cache) used/free的區別。 這兩個的區別在於使用的角度來看,第一行是從OS的角度來看,因為對於OS,buffers/cached 都是屬於被使用,所以他的可用記憶體是169164KB,已用記憶體是4877108KB,其中包括,核心(OS)使用+Application(X,
oracle,etc)使用的+buffers+cached.
第三行所指的是從應用程式角度來看,對於應用程式來說,buffers/cached 是等於可用的,因為buffer/cached是為了提高檔案讀取的效能,當應用程式需在用到記憶體的時候,buffer/cached會很快地被回收。
所以從應用程式的角度來說,可用記憶體=系統free memory+buffers+cached。
如上例:
2685576=169164+851840+1664572
還有一個指令給大家介紹怎麼查看硬體資訊
--dmidecode, 希望對大家有點用處,認為我說的比較膚淺的,也不要拍磚,目的在於大家相互交流嘛。 dmidecode是讀取DMI的資訊顯示給大家的。
[root@mail proc]# dmidecode --help
Usage: dmidecode [OPTIONS]
Options are:
-d, --dev-mem FILE Read memory from device FILE (default: /dev/mem)
-h, --help Display this help text and exit
-q, --quiet Less verbose output
-s, --string KEYWORD Only display the value of the given DMI string
-t, --type TYPE Only display the entries of given type
-u, --dump Do not decode the entries
-V, --version Display the version and exit
以上是它的協助資訊,最有用的當然是參數-t了,它後面可跟的參數有:
0 BIOS
1 System
2 Base Board
3 Chassis
4 Processor
5 Memory Controller
6 Memory Module
7 Cache
8 Port Connector
9 System Slots
10 On Board Devices
11 OEM Strings
12 System Configuration Options
13 BIOS Language
14 Group Associations
15 System Event Log
16 Physical Memory Array
17 Memory Device
18 32-bit Memory Error
19 Memory Array Mapped Address
20 Memory Device Mapped Address
21 Built-in Pointing Device
22 Portable Battery
23 System Reset
24 Hardware Security
25 System Power Controls
26 Voltage Probe
27 Cooling Device
28 Temperature Probe
29 Electrical Current Probe
30 Out-of-band Remote Access
31 Boot Integrity Services
32 System Boot
33 64-bit Memory Error
34 Management Device
35 Management Device Component
36 Management Device Threshold Data
37 Memory Channel
38 IPMI Device
39 Power Supply
類型歸納一下如下:
bios 0, 13
system 1, 12, 15, 23, 32
baseboard 2, 10
chassis 3
processor 4
memory 5, 6, 16, 17
cache 7
connector 8 slot 9
比如查看CPU資訊:
dmidecode -t 4 或者 dmidecode -t porcessor
兩者的功能是一樣的,查看記憶體 dmidecode -t 5 或 dmidecode -t memory
最常用的可能就是這兩個指令了,尤其是查看記憶體,dmidecode -t memory會顯示哪個插槽插了記憶體,容量多大的以及頻率等資訊