Linux【6】-硬盘管理3-1-查看服务器配置

现已入职一周,对于我这样的菜鸟来说,呆在这么牛逼的团队里面,压力山大,就连喝水都不敢发声,上厕所都要靠着墙走……废话不多说,开始我的整理吧。这里先来整理一下如何查看自己用的服务器的配置。

一、概述

Linux 内核提供了一种通过 /proc 文件系统,在运行时访问内核内部数据结构、改变内核设置的机制。proc文件系统是一个伪文件系统,它只存在内存当中,而不占用外存空间。它以文件系统的方式为访问系统内核数据的操作提供接口。

用户和应用程序可以通过proc得到系统的信息,并可以改变内核的某些参数。由于系统的信息,如进程,是动态改变的,所以用户或应用程序读取proc文件时,proc文件系统是动态从系统内核读出所需信息并提交的。下面列出的这些文件或子文件夹,并不是都是在你的系统中存在,这取决于你的内核配置和装载的模块。另外,在/proc下还有三个很重要的目录:net,scsi和sys。 Sys目录是可写的,可以通过它来访问或修改内核的参数,而net和scsi则依赖于内核配置。例如,如果系统不支持scsi,则scsi 目录不存在。

查看服务器配置:(下面的显示结果来自网上)

lshw -short

显示硬件信息的列表,这个命令很常用,可以通过不同的选项来显示不同的硬件信息,包括:CPU, 内存,磁盘,USB控制器,硬件驱动器等,该命令主要从/proc目录下的不同文件中获取综合的硬件信息。默认情况下,linux下是不安装这个工具的,所以你需要先安装,然后才能使用,

wget http://ezix.org/software/files/lshw-B.02.14.tar.gz
tar -zxvf lshw-B.02.14.tar.gz
cd lshw-B.02.14
make && make install

二、各种配置查询

2.1 查看cpu

先来理解几组概念

  • CPU个数即CPU芯片个数
  • CPU的核心数是指物理上,也就是硬件上存在着几个核心。比如,双核就是包括2个相对独立的CPU核心单元组,四核就包含4个相对独立的CPU核心单元组。
  • 线程数是一种逻辑的概念,简单地说,就是模拟出的CPU核心数。比如,可以通过一个CPU核心数模拟出2线程的CPU,也就是说,这个单核心的CPU被模拟成了一个类似双核心CPU的功能。我们从任务管理器的性能标签页中看到的是两个CPU。 比如Inte l赛扬G460是单核心,双线程的CPU,Intel 酷睿i3 3220是双核心 四线程,Intel 酷睿i7 4770K是四核心 八线程 ,Intel 酷睿i5 4570是四核心 四线程等等。 对于一个CPU,线程数总是大于或等于核心数的。一个核心最少对应一个线程,但通过超线程技术,一个核心可以对应两个线程,也就是说它可以同时运行两个线程。

CPU的线程数概念仅仅只针对Intel的CPU才有用,因为它是通过Intel超线程技术来实现的,最早应用在Pentium4上。如果没有超线程技术,一个CPU核心对应一个线程。所以,对于AMD的CPU来说,只有核心数的概念,没有线程数的概念。

CPU之所以要增加线程数,是源于多任务处理的需要。线程数越多,越有利于同时运行多个程序,因为线程数等同于在某个瞬间CPU能同时并行处理的任务数。 因此,线程数是一种逻辑的概念,简单地说,就是模拟出的 CPU 核心数。一个核心最少对应一个线程,但英特尔有个超线程技术可以把一个物理线程模拟出两个线程来用,充分发挥 CPU 性能,即一个核心可以有两个到多个线程。

1.查询系统CPU的个数:

cat /proc/cpuinfo | grep "physical id" | sort | uniq | wc -l     #物理封装的处理器的id(CPU个数)

2.查询系统每颗CPU的物理核数:

cat /proc/cpuinfo | grep "cpu cores" | uniq          #位于相同物理封装的处理器中的内核数量.(每颗CPU物理核数)
cat /proc/cpuinfo | grep "core id " | uniq          #每个核心的id(逻辑CPU的ID)(每颗CPU物理核数)
cat /proc/cpuinfo | grep "siblings" | uniq       # 位于相同物理封装的处理器中的逻辑处理器的数量(每颗CPU逻辑核数)                  

3.查询系统具有多少个逻辑核:

cat /proc/cpuinfo | grep "processor" | wc -l        #逻辑处理器的id(逻辑核数)


cat /proc/cpuinfo

4.查询系统CPU是否启用超线程:

cat /proc/cpuinfo | grep -e "cpu cores"  -e "siblings" | sort | uniq

输出举例:    cpu cores : 6 siblings  : 6

如果cpu cores数量和siblings数量一致,则没有启用超线程,否则超线程被启用。 为了加深大家对这几个参数的理解,我们再来看另外一张图片,这是一台工作站的服务器

在这个服务器上,‘cpu cores’ 为4,physical id 有两个,core id有8个,siblings的值为8,总共有16个processor。

所以这个服务器主机的CPU为2个物理封装的处理器,每个处理器又有4个处理核心(cpu cores),每个cpu core有可划分为2个逻辑处理器(超线程技术),因此,每个物理处理器上有8个逻辑处理器,总共就有16个processor。这回明白了吧。大体的结 构如下图:

5.其他

在Linux系统中,提供了proc文件系统显示系统的软硬件信息。如果想了解系统中CPU的提供商和相关配置信息,则可以通过/proc/cpuinfo文件得到。本文章针对该文件进行简单的总结。基于不同指令集(ISA)的CPU产生的/proc/cpuinfo文件不一样,基于X86指令集CPU的/proc/cpuinfo文件包含如下内容:

processor  : 0
vendor_id  :GenuineIntel
cpu family  :6
model    :26
model name :Intel(R) Xeon(R) CPU           E5520  @ 2.27GHz
stepping    :5
cpu MHz    :1600.000
cache size  : 8192 KB
physical id  :0
siblings    :8
core id     : 0
cpu cores   :4
apicid         :0
fpu       :yes
fpu_exception :yes
cpuid level   : 11
wp      :yes
flags      : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm syscall nx rdtscp lm constant_tsc ida nonstop_tsc pni monitor ds_cpl vmx est tm2 cx16 xtpr popcnt lahf_lm
bogomips   :4522.12
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 :可访问地址空间位数

2.2 查看内存占用

cat /proc/meminfo

2.3 硬盘分区

cat /proc/partitions

2.4 ubuntu 版本

cat /proc/version

或者

cat /proc/version_signature

2.5 显卡与GPU

GPU是图形处理器(Graphics Processing Unit),是显卡的核心。显卡,则是由GPU、显存、电路板,还有BIOS固件组成的,所以GPU不等于显卡。GPU本身并不能单独工作,只有配合上附属电路和接口,才能工作。这时候,它就变成了显卡。

显卡上都有GPU,它是区分显性能的最主要元件,显卡也叫显示适配器,分为独立显卡和主板上集成显卡,独立显卡主要由GPU、显存和接口电路构成,集成显卡没有独立显存而是使用主板上的内存。(现在还没有出现GPU插在主板上的,因为GPU功耗很高,背面电流过大,还是焊接更为牢固。;GPU会产生大量热量,所以它的上方通常安装有散热器或风扇。)

  • 如果是独立显卡,一般它就焊在显卡的电路板上,位置在显卡的风扇下面。
  • 如果是集成显卡,一般GPU就和CPU集成在一起了,这时候它和CPU共用一个风扇和缓存 。因此GPU实际上就是显卡的核心部件,显卡主要就是靠它来工作的。

现在的GPU开发厂家只有2个,一个是AMD(ATI),一个是N’VIDIA英伟达。

显示显卡状态:

lspci

例子: lspci |grep Ethernet 查看网卡型号

显示GPU相关的信息

nvidia-smi

2.6.查看系统版本

2.6.1 ubuntu 版本

[root@localhost ~]#uname -a

Linux cyper-pc 3.2.0-35-generic #55-Ubuntu SMP Wed Dec 5 17:42:16 UTC 2012 x86_64 x86_64 x86_64 GNU/Linux

[root@localhost ~]#cat /proc/version

Linux version 3.2.0-35-generic (buildd@allspice) (gcc version 4.6.3 (Ubuntu/Linaro 4.6.3-1ubuntu5) ) #55-Ubuntu SMP Wed Dec 5 17:42:16 UTC 2012

[root@localhost ~]#cat /proc/version_signature

Ubuntu 3.2.0-35.55-generic 3.2.34

查看ubuntu的版本号

[root@localhost ~]# cat /etc/issue

12.04

或者使用System Tools –> System Monitor(图形界面)

2.6.2 查看centos版本

[root@28eb322d7876 yum.repos.d]# cat /etc/redhat-release
CentOS Linux release 7.6.1810 (Core)

[root@localhost ~]# file /bin/ls

/bin/ls: ELF 64-bit LSB executable, AMD x86-64, version 1 (SYSV), for GNU/Linux 2.6.9, dynamically linked (uses shared libs), for GNU/Linux 2.6.9, stripped

[root@localhost ~]# lsb_release -a

LSB Version:    :core-3.1-amd64:core-3.1-ia32:core-3.1-noarch:graphics-3.1-amd64:graphics-3.1-ia32:graphics-3.1-noarch
Distributor ID: CentOS
Description:    CentOS release 5.5 (Final)
Release:        5.5
Codename:       Final

2.7 其他

  • 查看板卡信息:cat /proc/pci

  • 查看USB设备: cat /proc/bus/usb/devices

  • 查看键盘和鼠标:cat /proc/bus/input/device

  • 查看系统硬盘信息和使用情况:fdisk & disk - l & df

  • 查 看各设备的中断请求(IRQ): cat /proc/interrupts

  • dmidecode查看硬件信息,包括bios、cpu、内存等信息

dmesg | more 查看硬件信息

对于“/proc”中文件可使用文件查看命令浏览其内容,文件中包含系统特定信息:

Cpuinfo    主机CPU信息
Dma        主机DMA通道信息
Filesystems   文件系统信息
Interrupts    主机中断信息
Ioprots       主机I/O端口号信息
Meninfo       主机内存信息
Version       Linux内存版本信息(编译内核的编译器版本)

参考资料

药企,独角兽,苏州。团队长期招人,感兴趣的都可以发邮件聊聊:tiehan@sina.cn
个人公众号,比较懒,很少更新,可以在上面提问题,如果回复不及时,可发邮件给我: tiehan@sina.cn