基础:Linux硬件配置信息查看

      之前面试的时候问到用户量,然后扯到了服务器的配置相关,但服务器是都是由组长申请的,所以当时并不了解。回来后,了解了Linux下硬件信息配置的查看,记录如下。

1. CPU信息

       CPU信息有三种方式查看。

       一种是直接cat /proc/cpuinfo,会打印出所有CPU的详细信息,单个CPU的信息如下:

[user@VM_0_4_centos debug]$ cat /proc/cpuinfo
processor	: 1
vendor_id	: GenuineIntel
cpu family	: 6
model		: 79
model name	: Intel(R) Xeon(R) CPU E5-26xx v4
stepping	: 1
microcode	: 0x1
cpu MHz		: 2399.988
cache size	: 4096 KB
physical id	: 0
siblings	: 2
core id		: 1
cpu cores	: 2
apicid		: 1
initial apicid	: 1
fpu		: yes
fpu_exception	: yes
cpuid level	: 13
wp		: yes
flags		: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ss ht syscall nx lm constant_tsc rep_good nopl eagerfpu pni pclmulqdq ssse3 fma cx16 pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand hypervisor lahf_lm abm 3dnowprefetch bmi1 avx2 bmi2 rdseed adx xsaveopt
bogomips	: 4799.97
clflush size	: 64
cache_alignment	: 64
address sizes	: 40 bits physical, 48 bits virtual
power management:

          各项的含义如下:

processor :系统中逻辑处理核的编号。对于单核处理器,则课认为是其CPU编号,对于多核处理器则可以是物理核、或者使用超线程技术虚拟的逻辑核
vendor_id :CPU制造商      
cpu family :CPU产品系列代号
model   :CPU属于其系列中的哪一代的代号
model name:CPU属于的名字及其编号、标称主频
stepping   :CPU属于制作更新版本
cpu MHz   :CPU的实际使用主频
cache size   :CPU二级缓存大小
physical id   :单个CPU的标号
siblings       :单个CPU逻辑物理核数
core id        :当前物理核在其所处CPU中的编号,这个编号不一定连续
cpu cores    :该逻辑核所处CPU的物理核数
apicid          :用来区分不同逻辑核的编号,系统中每个逻辑核的此编号必然不同,此编号不一定连续
fpu             :是否具有浮点运算单元(Floating Point Unit)
fpu_exception  :是否支持浮点计算异常
cpuid level   :执行cpuid指令前,eax寄存器中的值,根据不同的值cpuid指令会返回不同的内容
wp             :表明当前CPU是否在内核态支持对用户空间的写保护(Write Protection)
flags          :当前CPU支持的功能
bogomips   :在系统内核启动时粗略测算的CPU速度(Million Instructions Per Second)
clflush size  :每次刷新缓存的大小单位
cache_alignment :缓存地址对齐单位
address sizes     :可访问地址空间位数

        我们可以grep需要的信息查看:

cat /proc/cpuinfo | grep "cpu cores"   // 查看每个CPU核数
cat /proc/cpuinfo | grep "physical id" | wc -l   // 查看CPU个数

         第二种是使用lscpu命令,该命令时从sysfs和/proc/cpuinfo收集cpu体系结构信息,命令的输出比较易读 ,如下:

[user@VM_0_4_centos debug]$ lscpu
Architecture:          x86_64
CPU op-mode(s):        32-bit, 64-bit
Byte Order:            Little Endian
CPU(s):                2
On-line CPU(s) list:   0,1
Thread(s) per core:    1
Core(s) per socket:    2
Socket(s):             1
NUMA node(s):          1
Vendor ID:             GenuineIntel
CPU family:            6
Model:                 79
Model name:            Intel(R) Xeon(R) CPU E5-26xx v4
Stepping:              1
CPU MHz:               2399.988
BogoMIPS:              4799.97
Hypervisor vendor:     KVM
Virtualization type:   full
L1d cache:             32K
L1i cache:             32K
L2 cache:              4096K
NUMA node0 CPU(s):     0,1

          我们可以看到CPU数量("CPU(s)")、每个CPU核数("Core(s) pre socket")、大小端信息("Byte Order")和CPU架构("Architecture")。另外还有支持的操作模式("CPU op-mode(s)")应该就是指支持32位及64位指令集,可否运行32位操作系统及64位操作系统吧,其中64-bit也叫Long mode。

          第三种就是dmidecode命令,"sudo dmidecode -t processor"就可以指定查看CPU相关的信息。

2. 内存信息

         内存信息有三种方式可以查看。

         第一种是通过/proc/meminfo文件查看,"cat /proc/meminfo"就可以打印,内容比较长,并且可读性不太好,这里只贴出一部分内容。我们也可以通过grep命令提取出我们需要的内容打印出来。

[user@VM_0_4_centos debug]$ cat /proc/meminfo 
MemTotal:        3882032 kB
MemFree:          126164 kB
MemAvailable:    2288044 kB
Buffers:          115860 kB
Cached:          2834888 kB
SwapCached:            0 kB
Active:          1906908 kB
Inactive:        1581564 kB
Active(anon):     815556 kB
Inactive(anon):   387800 kB
Active(file):    1091352 kB
Inactive(file):  1193764 kB
Unevictable:        4748 kB
...

         第二种是free命令,显示的内容很少:

[user@VM_0_4_centos debug]$ free
              total        used        free      shared  buff/cache   available
Mem:        3882032      616920      147440      660756     3117672     2289708
Swap:             0           0           0
[user@VM_0_4_centos debug]$ free -h
              total        used        free      shared  buff/cache   available
Mem:           3.7G        604M        136M        645M        3.0G        2.2G
Swap:            0B          0B          0B

         最后一个是dmidecode命令,使用"sudo dmidecode -t memory"即可打印内存相关的信息:

[user@VM_0_4_centos debug]$ sudo dmidecode -t memory
# dmidecode 2.12-dmifs
SMBIOS 2.4 present.

Handle 0x1000, DMI type 16, 15 bytes
Physical Memory Array
	Location: Other
	Use: System Memory
	Error Correction Type: Multi-bit ECC
	Maximum Capacity: 4 GB
	Error Information Handle: Not Provided
	Number Of Devices: 1

Handle 0x1100, DMI type 17, 21 bytes
Memory Device
	Array Handle: 0x1000
	Error Information Handle: 0x0000
	Total Width: 64 bits
	Data Width: 64 bits
	Size: 4096 MB
	Form Factor: DIMM
	Set: None
	Locator: DIMM 0
	Bank Locator: Not Specified
	Type: RAM
	Type Detail: None

           查看上面三个命令的输出结果,可以看到/proc/meminfo文件和free命令的结果是一样的,但是比dmidecode的值要小。即可见内存要比实际内存小,这是因为系统从加电开始到引导完成,firmware/BIOS要保留一些内存,kernel本身要占用一些内存,最后剩下可供kernel支配的内存才是MemTotal的值。

          所以我们要看系统可用内存应该用前两种方式,看硬件配置的实际内存要用第三种方式。

3. 硬盘信息

          硬盘信息可以用fdisk命令查看,输出如下:

[user@VM_0_4_centos debug]$ sudo fdisk -l

Disk /dev/vda: 53.7 GB, 53687091200 bytes, 104857600 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x0005fc9a

   Device Boot      Start         End      Blocks   Id  System
/dev/vda1   *        2048   104857566    52427759+  83  Linux

Disk /dev/vdb: 536.9 GB, 536870912000 bytes, 1048576000 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes

          如果我们要查看硬盘各个分区的使用情况,可以用df命令

[user@VM_0_4_centos debug]$ df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/vda1        50G   46G  1.3G  98% /
devtmpfs        1.9G     0  1.9G   0% /dev
tmpfs           1.9G   24K  1.9G   1% /dev/shm
tmpfs           1.9G  1.4M  1.9G   1% /run
tmpfs           1.9G     0  1.9G   0% /sys/fs/cgroup
tmpfs           380M     0  380M   0% /run/user/0
tmpfs           380M     0  380M   0% /run/user/1001
/dev/vdb        493G  232G  236G  50% /home/user/log

           如果想看当前目录下目录的大小,可以用du命令,-d选项用来设置递归显示的深度,1时只所有子目录的大小,2时则会显示子目录的子目录的大小,以此类推:

[user@localhost conf]$ du -h -d 1
100K	./svr
96K	./comm
196K	.
[user@localhost conf]$ du -h -d  2
100K	./svr
56K	./comm/words
96K	./comm
196K	.

4. 网卡信息

         网卡信息有两种方式查看。

         第一种方式先用ifconfig找到要查看的显卡,然后再用ethtool命令查看网卡信息,ethtool输出如下:

[user@localhost comm_conf]$ ethtool ens33
Settings for ens33:
	Supported ports: [ TP ]
	Supported link modes:   10baseT/Half 10baseT/Full 
	                        100baseT/Half 100baseT/Full 
	                        1000baseT/Full 
	Supported pause frame use: No
	Supports auto-negotiation: Yes
	Advertised link modes:  10baseT/Half 10baseT/Full 
	                        100baseT/Half 100baseT/Full 
	                        1000baseT/Full 
	Advertised pause frame use: No
	Advertised auto-negotiation: Yes
	Speed: 1000Mb/s
	Duplex: Full
	Port: Twisted Pair
	PHYAD: 0
	Transceiver: internal
	Auto-negotiation: on
	MDI-X: off (auto)
Cannot get wake-on-lan settings: Operation not permitted
	Current message level: 0x00000007 (7)
			       drv probe link
	Link detected: yes

           上面的Speed项就是网卡的速率。

           第二种方式就是lspci命令,该命令可以看到所有通过PCI接口接入的设备,我们grep出Ethernet相关的即可,输出如下:

02:01.0 Ethernet controller: Intel Corporation 82545EM Gigabit Ethernet Controller (Copper) (rev 01)

          输出中的Gigabit代表这是千兆的,与上面的1000Mb/s是一致的。

          注意,对于云服务器,上面的两个命令都得不到信息的。

你可能感兴趣的:(基础,linux)