Linux下不同Windows下有很多能夠查看硬件詳情的配置及軟件,不過通過linux提供的shell命令就能查看到我們所需的信息。
下面主要介紹常用查看硬件信息的命令。
1. 查看CPU各種信息
最常用的查看CPU信息的方法,是通過 /proc/cpuinfo文件查看
[root@CentOS-5U4-64 ~]# cat /proc/cpuinfo |
/proc/cpuinfo文件提供了有關系統CPU的多種信息。如果需要查看某一詳細信息可使用grep將其過濾出來
1.1. 查看CPU的型號
如果想查看CPU的型號,使用下述命令:
[root@CentOS-5U4-64 ~]# cat /proc/cpuinfo|grep "model name" model name : Intel(R) Xeon(R) CPU E5506 @ 2.13GHz |
查看CPU個數
[root@HOST41 ~]# cat /proc/cpuinfo |grep "physical id" physical id : 0 physical id : 0 physical id : 0 physical id : 0 physical id : 1 physical id : 1 physical id : 1 physical id : 1 |
如果physical id 后面的編號是從0 開始的,如果1 則代表2顆CPU。
注:如果是安裝了虛擬化的CentOS 及RedHat系統physical id 顯示的信息不准確,其physical id 代表的時CPU的核數
1.2. 查看機器上CPU的核數
[root@HOST41 ~]# cat /proc/cpuinfo |grep "processor" processor : 0 processor : 1 processor : 2 processor : 3 processor : 4 processor : 5 processor : 6 processor : 7
|
processor 編號也是從0開始的,上面所示現在是最終以7結尾,則說明機器共有8核,但是該機器有兩顆CPU,所以每顆CPU都是4核的。
使用dmidecode也是能夠查看到CPU信息的。
[root@HOST41 ~]# dmidecode |grep CPU Socket Designation: CPU Node 1 Version: Intel(R) Xeon(R) CPU E5506 @ 2.13GHz Socket Designation: CPU Node 0 Version: Intel(R) Xeon(R) CPU E5506 @ 2.13GHz Internal Reference Designator: FAN7 - FAN7/CPU1 Internal Reference Designator: FAN8 - FAN8/CPU2
|
從這里能夠看到CPU的型號(Version)及其插槽(Socket Designation)個數,這里共兩個CPU插槽,每個上面都插着一顆Intel Xeon E5506@ 2.13GHz的 CPU。
上面通過查看/proc/cpuinfo文件內容,得到CPU的個數,命令如下:
cat /proc/cpuinfo |grep "physical id" |
如果有些機器得到的CPU的個數信息不正確,那么就可以在這里查看到CPU的個數了。
2. 查看內存信息
2.1. 使用free查看內存大小
最簡單查看內存大小的命令就是free了,通過free 可以查看。
[root@HOST41 ~]# free total used free shared buffers cached Mem: 32950784 15305440 17645344 0 1316824 13347500 -/+ buffers/cache: 641116 32309668 Swap: 34996216 0 34996216
|
上表中free輸出的內容解釋:
- 第二行(mem)
n total:總計物理內存的大小。
n used:已使用多大。
n free:可用有多少。
n Shared:多個進程共享的內存總額。
n Buffers/cached:磁盤緩存的大小。
- 第三行(-/+ buffers/cached)
n used:已使用多大。
n free:可用有多少。
- 第四行Swap
n 不過多解釋了,就是Swap分區的大小。
- 第二行(mem)的used/free與第三行(-/+ buffers/cache) used/free的區別
這兩個的區別在於使用的角度來看,第一行是從OS的角度來看,因為對於OS,buffers/cached 都是屬於被使用,所以他的可用內存是8908KB,已用內存是377116KB,其中包括,內核(OS)使用+Application(X, oracle,etc)使用的+buffers+cached。
- 第二行(mem)的used/free與第三行(-/+ buffers/cache) used/free的區別
這兩個的區別在於使用的角度來看,第一行是從OS的角度來看,因為對於OS,buffers/cached 都是屬於被使用,所以他的可用內存是8908KB,已用內存是377116KB,其中包括,內核(OS)使用+Application(X, oracle,etc)使用的+buffers+cached。
所以從應用程序的角度來說,可用內存=系統free memory+buffers+cached。
- 下面是buffers與cached的區別。
Buffer:是指用來給塊設備做的緩沖大小,他只記錄文件系統的metadata以及 tracking in-flight pages。
Cache:是用來給文件做緩沖。
那就是說,buffers是用來存儲,目錄里面有什么內容,權限等等。而cached直接用來記憶我們打開的文件,如果你想知道他是不是真的生效,你可以試一下,先后執行兩次命令#man XXX ,你就可以明顯的感覺到第二次的開打的速度快很多。
Linux將你暫時不使用的內存作為文件和數據緩存,以提高系統性能,當你需要這些內存時,系統會自動釋放使用free命令將used的值減去 buffer和cache的值就是你當前真實內存使用。
2.2. 使用dmidecode命令查看內存信息
其實使用free查到的信息僅僅是當前系統識別出的,能夠使用的內存容量(可使用內存容量可以自己定義),並不能代表插入的內存的容量大小。
所以最准確還是使用dmidecode命令查看。
2.2.1. 查看內存大小及插槽個數
[root@HOST41 ~]# dmidecode|grep -P -A5 "Memory\s+Device"|grep Size|grep -v Range Size: 4096 MB Size: 4096 MB Size: 4096 MB Size: No Module Installed Size: 4096 MB Size: No Module Installed Size: 4096 MB Size: 4096 MB Size: 4096 MB Size: No Module Installed Size: 4096 MB Size: No Module Installed Size: 4096 kB |
從這里能夠查看出內存插槽的個數及插槽上面的內存容量大小。
上面”Size:”后面就是插槽內的內存大小。顯示為No Module Installed則是沒有內存條的插槽。
注:曙光機器通過此命令查詢時,最后會多處一個4M大小的插槽,不知道怎么回事,主板本身只有12個插槽,統計出來卻有13個,最后一個可能是虛擬出來的,不過還不太確定。DeLL C2100機器統計數據很正常。
2.2.2. 查看內存頻率
如果你想知道當前機器上的內存的頻率,而又苦於無法停機打開機箱查看時,可以用下述命令進行查看
[root@HOST42 ~]# dmidecode|grep -A16 "Memory Device"|grep 'Speed' Speed: 1333 MHz (0.8 ns) Speed: 1333 MHz (0.8 ns) Speed: 1333 MHz (0.8 ns) Speed: 1333 MHz (0.8 ns) Speed: 1333 MHz (0.8 ns) Speed: 1333 MHz (0.8 ns) Speed: 1333 MHz (0.8 ns) Speed: 1333 MHz (0.8 ns) Speed: 1333 MHz (0.8 ns) Speed: 1333 MHz (0.8 ns) Speed: 1333 MHz (0.8 ns) Speed: 1333 MHz (0.8 ns) Speed: 33 MHz (30.3 ns) |
2.2.3. 主板支持的最大內存容量
如果需要升級內存,那么我們需要了解主板能夠支撐多大的內存,以便於我們的硬件升級規划。可以通過下述命令查看主板支持的最大的內存的容量。
[root@HOST42 ~]# dmidecode|grep -P 'Maximum\s+Capacity' Maximum Capacity: 384 GB Maximum Capacity: 384 GB Maximum Capacity: 4 MB |
3. 查看硬盤信息
查看硬盤當然要使用 fdisk –l 命令了 ,能夠詳細列出硬盤的信息,如總共的大小,幾個分區,每個分區從哪個柱面到哪個柱面,塊數量等等。
[root@HOST42 ~]# fdisk -l
Disk /dev/sda: 145.9 GB, 145999527936 bytes 255 heads, 63 sectors/track, 17750 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System /dev/sda1 * 1 13 104391 83 Linux /dev/sda2 14 17750 142472452+ 8e Linux LVM
Disk /dev/sdb: 145.9 GB, 145999527936 bytes 255 heads, 63 sectors/track, 17750 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System /dev/sdb1 1 17750 142576843+ 83 Linux
|
一般硬盤的編號都是從a開始,按照字母排列順序依此類推。一般IDE接口的硬盤顯示出的為/dev/hda~/dev/hdz,如果是Sata口及SAS口的硬盤則是顯示為/dev/sda~/dev/sdz(現在服務器大多數均為Sata盤或SAS盤)。
- /dev/sda 或/dev/hda代表一塊硬盤。
n /dev/sda1 ~ /dev/sda”n” ,代表的時sda盤上的第幾個分區。
n “n”為數字從1開始依次排序。
4. 查看網卡信息
查看網卡型號,Linux操作系統,有時候會遇到無法找到網卡驅動,這個時候查看網卡型號的命令就能夠幫助我們定位網卡型號。然后就可以根據網卡型號尋找對性的網卡去動了。
最常用的查看網卡型命令有lspci及kudzu。
4.1. 使用Lspci查看網卡型號
[root@HOST42 ~]# lspci |grep Ethernet 02:00.0 Ethernet controller: Intel Corporation 82572EI Gigabit Ethernet Controller (Copper) (rev 06) 07:00.0 Ethernet controller: Intel Corporation 82576 Gigabit Network Connection (rev 01) 07:00.1 Ethernet controller: Intel Corporation 82576 Gigabit Network Connection (rev 01) |
4.2. 使用Kudzu查看網卡型號
[root@HOST42 ~]# kudzu -p -c network - class: NETWORK bus: PCI detached: 0 device: eth0 driver: e1000e desc: "Intel Corporation 82572EI Gigabit Ethernet Controller (Copper)" network.hwaddr: 00:15:17:db:e3:99 vendorId: 8086 deviceId: 107d subVendorId: 8086 subDeviceId: 1082 pciType: 1 pcidom: 0 pcibus: 2 pcidev: 0 pcifn: 0 - class: NETWORK bus: PCI detached: 0 device: eth1 driver: igb desc: "Intel Corporation 82576 Gigabit Network Connection" network.hwaddr: 00:30:48:f2:66:dc vendorId: 8086 deviceId: 10c9 subVendorId: 15d9 subDeviceId: 10c9 pciType: 1 pcidom: 0 pcibus: 7 pcidev: 0 pcifn: 0 - class: NETWORK bus: PCI detached: 0 device: eth2 driver: igb desc: "Intel Corporation 82576 Gigabit Network Connection" network.hwaddr: 00:30:48:f2:66:dd vendorId: 8086 deviceId: 10c9 subVendorId: 15d9 subDeviceId: 10c9 pciType: 1 pcidom: 0 pcibus: 7 pcidev: 0 pcifn: 1 |
4.3. 檢查網卡現速率
有時候,命名網卡為千兆網卡,交換機為千兆交換機,但是速度卻只有百兆速度。那么就需要查看是否為網線的問題,在linux系統下可先查看一下,網卡現在的狀態。
[root@HOST42 ~]# ethtool eth1 Settings for eth1: Supported ports: [ TP ] Supported link modes: 10baseT/Half 10baseT/Full 100baseT/Half 100baseT/Full 1000baseT/Full Supports auto-negotiation: Yes Advertised link modes: 10baseT/Half 10baseT/Full 100baseT/Half 100baseT/Full 1000baseT/Full Advertised auto-negotiation: Yes Speed: 1000Mb/s Duplex: Full Port: Twisted Pair PHYAD: 1 Transceiver: internal Auto-negotiation: on Supports Wake-on: umbg Wake-on: g Current message level: 0x00000003 (3) Link detected: yes |
使用ethtool 查看當前網卡速度需要保證網線已經聯通。查看網卡類型可以不要聯通網絡。
上述命令在CentOS 5.4 環境下均已驗證通過。