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 环境下均已验证通过。