Linux中确定CPU的情况
一些操作系统的最新版本已经更新了 /proc/cpuinfo 文件,以支持多路平台。如果您的系统中的 /proc/cpuinfo 文件能够正确地反映出处理器信息,那么就不需要执行上述步骤。反之,可采用本文中的信息进行解释。
/proc/cpuinfo 文件包含系统上每个处理器的数据段落。/proc/cpuinfo 描述中有 6 个条目适用于多内核和超线程(HT)技术检查:processor, vendor id, physical id, siblings, core id 和 cpu cores。
processor 条目包括这一逻辑处理器的唯一标识符。
physical id 条目包括每个物理封装的唯一标识符。
core id 条目保存每个内核的唯一标识符。
siblings 条目列出了位于相同物理封装中的逻辑处理器的数量。
cpu cores 条目包含位于相同物理封装中的内核数量。
如果处理器为英特尔处理器,则 vendor id 条目中的字符串是 GenuineIntel。
1.拥有相同 physical id 的所有逻辑处理器共享同一个物理插座。每个 physical id 代表一个唯一的物理封装。
2.Siblings 表示位于这一物理封装上的逻辑处理器的数量。它们可能支持也可能不支持超线程(HT)技术。
3.每个 core id 均代表一个唯一的处理器内核。所有带有相同 core id 的逻辑处理器均位于同一个处理器内核上。
4.如果有一个以上逻辑处理器拥有相同的 core id 和 physical id,则说明系统支持超线程(HT)技术。
5.如果有两个或两个以上的逻辑处理器拥有相同的 physical id,但是 core id 不同,则说明这是一个多内核处理器。cpu cores 条目也可以表示是否支持多内核。
例如,如果系统包含两个物理封装,每个封装中又包含两个支持超线程(HT)技术的处理器内核,则 /proc/cpuinfo 文件将包含此数据。(注:数据并不在表格中。)
processor | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
physical id | 0 | 1 | 0 | 1 | 0 | 1 | 0 | 1 |
core id | 0 | 2 | 1 | 3 | 0 | 2 | 1 | 3 |
siblings | 4 | 4 | 4 | 4 | 4 | 4 | 4 | 4 |
cpu cores | 2 | 2 | 2 | 2 | 2 | 2 | 2 | 2 |
1.此例说明逻辑处理器 0 和 4 驻留在物理封装 0 的内核 0 上。这就表示逻辑处理器 0 和 4 支持超线程(HT)技术。
2.相同的工作可用于封装 0 内核 1 上的逻辑处理器 2 和 6,封装 1 内核 2 上的逻辑处理器 1 和 5,以及封装 1 内核 3 上的逻辑处理器 3 和 7。
3.此系统支持超线程(HT)技术,因为两个逻辑处理器共享同一个内核。
4.有两种方式可以确定是否支持多内核:
a.由于内核 0 和 1 存在于封装 0 上,而内核 2 和 3 存在于封装 1 上,所以这是一个多内核系统。
b.此外,cpu cores 条目为 2,也说明有两个内核驻留在物理封装中。这是一个多路系统,因为有两个封装。
值得注意的是 physical id 和 core id 的编号可能是也可能不是连续的。系统上有两个物理封装并不罕见,而且 physical id 等于 0 和 3
可通过如下方法查询CPU情况:
1.逻辑CPU个数:
# cat /proc/cpuinfo | grep “processor” | wc -l
2.物理CPU个数:
# cat /proc/cpuinfo | grep “physical id” | sort | uniq | wc -l
3.每个物理CPU中Core的个数:
# cat /proc/cpuinfo | grep “cpu cores” | wc -l
是否为超线程?
如果有两个逻辑CPU具有相同的”core id”,那么超线程是打开的。
4.每个物理CPU中逻辑CPU(可能是core, threads或both)的个数:
# cat /proc/cpuinfo | grep “siblings”
Linux服务器/proc/cpuinfo详解
毕业也一年多了,虽说也一直在IT行业混,但长挂在嘴边的一句话竟然是:我是打酱油的!实在不想就这么混下去,所以重新申请了一个号,决定从新写博客,这样也能充实自己,找到对生活的乐趣!
既然决定重新开始了,但是从什么地方开始却是是伤脑筋的问题,回想自己这个业余SA一年来的工作经历,似乎了解服务器的信息是干活的第一步,这个还算符合逻辑,那就从硬件开始。linux下查看CPU的信息当然是查看/proc/cpuinfo这个虚拟文件了。
上图显示的就是/proc/cpuinfo的信息了,CPU嘛,重点了解的就是几颗,几核,是否支持超线程了,那我们要了解这些,就需要查看processor,physical id, siblings,core id,cpu cores这几个字段了,它们分别代表什么,图上已经有注释,所以只需要说明一下判断依据了。
1. 拥有相同physical id的所有逻辑处理器共享同一个物理插座。每个physical id 代表一个唯一的物理封装,即一颗CPU.
2. Siblings表示位于一个物理封装的CPU上逻辑CPU的个数。
3.每个core id 均代表一个唯一的处理器内核,所有带有相同core id 的逻辑CPU均位于同一处理器内核上。
4.如果有一个以上逻辑CPU有用相同的core id和physical id ,则说明系统支持超线程(HT)技术。
5. 如果有两个或两个以上的逻辑CPU拥有相同的physical id ,但是core id不同,则说明这是一个多内核处理器,cpu cores字段也可以表示是否支持多内核。
可以通过以下方法查询CPU状态。
1. 逻辑CPU个数:
# cat /proc/cpuinfo | grep “processor” | wc –l
2.物理CPU个数:
# cat /proc/cpuinfo | grep “physical id” | sort | uniq | wc –l
3.每个物理cpu中core的个数:
# cat /proc/cpuinfo | grep “cpu cores” | wc –l
4.是否支持超线程?如果两个逻辑CPU具有相同的“core id”,那么说明超线程是打开的。
5.每个物理CPU中逻辑CPU的个数》
# cat /proc/cpuinfo | grep “siblings”
英文解释如下,不是太全。
o processor — Provides each processor with an identifying number.> 0 is present.
o cpu family — Authoritatively identifies the type of processor in the system. For an Intel-based system, place the number in front of "86" to determine the value. This is particularly helpful for those attempting to identify the architecture of an older system such as a 586, 486, or 386. Because some RPM packages are compiled for each of these particular architectures, this value also helps users determine which packages to install.
o model name — Displays the common name of the processor, including its project name.
o cpu MHz — Shows the precise speed in megahertz for the processor to the thousandths decimal place.
o cache size — Displays the amount of level 2 memory cache available to the processor.
o siblings — Displays the number of sibling CPUs>o flags — Defines a number of different qualities about the processor, such as the presence of a floating point unit (FPU) and the ability to process MMX instructions.
需要注意的是 physical id 和 core id 不一定连续
重点需要了解:物理CPU,逻辑CPU,超线程。
linux 查看系统信息命令(比较全)
linux 查看系统信息命令是linux初学者必备的基础知识, 这些命令也非常有用, 因为进入linux第一件事就可能是首先查看系统信息, 因此必要的系统的学习一下这些linux系统信息命令还是非常有必要的!
下面给除了各linux发行版比较常用的系统信息查询的命令, 大家可以参考, 同时也可以测试学习, 必要的时候man, 一定要学学使用man命令, 呵呵
# uname -a # 查看内核/操作系统/CPU信息
# head -n 1 /etc/issue # 查看操作系统版本
# cat /proc/cpuinfo # 查看CPU信息
# hostname # 查看计算机名
# lspci -tv # 列出所有PCI设备
# lsusb -tv # 列出所有USB设备
# lsmod # 列出加载的内核模块
# env # 查看环境变量资源
# free -m # 查看内存使用量和交换区使用量
# df -h # 查看各分区使用情况
# du -sh <目录名> # 查看指定目录的大小
# grep MemTotal /proc/meminfo # 查看内存总量
# grep MemFree /proc/meminfo # 查看空闲内存量
# uptime # 查看系统运行时间、用户数、负载
# cat /proc/loadavg # 查看系统负载磁盘和分区
# mount | column -t # 查看挂接的分区状态
# fdisk -l # 查看所有分区
# swapon -s # 查看所有交换分区
# hdparm -i /dev/hda # 查看磁盘参数(仅适用于IDE设备)
# dmesg | grep IDE # 查看启动时IDE设备检测状况网络
# ifconfig # 查看所有网络接口的属性
# iptables -L # 查看防火墙设置
# route -n # 查看路由表
# netstat -lntp # 查看所有监听端口
# netstat -antp # 查看所有已经建立的连接
# netstat -s # 查看网络统计信息进程
# ps -ef # 查看所有进程
# top # 实时显示进程状态用户
# w # 查看活动用户
# id <用户名> # 查看指定用户信息
# last # 查看用户登录日志
# cut -d: -f1 /etc/passwd # 查看系统所有用户
# cut -d: -f1 /etc/group # 查看系统所有组
# crontab -l # 查看当前用户的计划任务服务
# chkconfig –list # 列出所有系统服务
# chkconfig –list | grep on # 列出所有启动的系统服务程序
# rpm -qa # 查看所有安装的软件包
查看linux主机物理配置参数 分类:Ubuntu
linux平台的鲁大师,查看硬件型号,规格等信息.
1.CPU 处理器硬件信息
cat /proc/cpuinfo |grep cores #查看CPU核数
cat /proc/cpuinfo |grep processor #查看CPU线程数
cat /proc/cpuinfo |grep -c processor #查看CPU线程数(数字)
2.Memory 内存硬件信息
sudo dmidecode |grep 'Range Size' #内存数 与内存大小
cat /proc/meminfo |grep MemTotal #查看物理内存数与单条内存大小
sudo dmidecode |grep Speed #主频(内存频率与处理器频率)
3.Disk 硬盘硬件信息
sudo df -hl #查看硬盘分区
cat /proc/partitions #查看设备所有分区
cat /proc/swaps #交换分区
sudo fdisk -l | grep "Disk /dev" #查看硬盘数与单个硬盘大小
4.Network 网卡硬件信息
sudo lshw -C network #查看网卡型号与支持协议信息
sudo lshw -C network |grep description #查看网卡数与名称
sudo lshw -C network |grep product #网卡型号
5.Vendor 硬件品牌型号
sudo dmidecode |grep Version #品牌型号(版本)
sudo dmidecode |grep Vendor #品牌(供应商)
sudo dmidecode |grep Date #生产日期(发布日期)
sudo dmidecode |grep Manufacturer #生产厂家(制造商)
sudo dmidecode |grep 'Serial Number' #序列号(与本机标签的S/N一样)
sudo dmidecode |grep 'Product Name' #产品名称(型号)
sudo lshw -c cpu #查看CPU型号等硬件信息
sudo lshw -c disk #查看硬盘型号等硬件信息
sudo lshw -c memory #查看内存相关硬件信息
sudo lshw -c network #查看网卡相关硬件信息
sudo lshw -numeric #这个还可以查看笔记本电池型号容量电压等信息
例1: 查看CPU品牌型号
aping@ubuntu:~$ cat /proc/cpuinfo |grep "model name"
model name : Intel(R) Xeon(R) CPU E5620 @ 2.40GHz
model name : Intel(R) Xeon(R) CPU E5620 @ 2.40GHz
model name : Intel(R) Xeon(R) CPU E5620 @ 2.40GHz
model name : Intel(R) Xeon(R) CPU E5620 @ 2.40GHz
model name : Intel(R) Xeon(R) CPU E5620 @ 2.40GHz
model name : Intel(R) Xeon(R) CPU E5620 @ 2.40GHz
model name : Intel(R) Xeon(R) CPU E5620 @ 2.40GHz
model name : Intel(R) Xeon(R) CPU E5620 @ 2.40GHz
model name : Intel(R) Xeon(R) CPU E5620 @ 2.40GHz
model name : Intel(R) Xeon(R) CPU E5620 @ 2.40GHz
model name : Intel(R) Xeon(R) CPU E5620 @ 2.40GHz
model name : Intel(R) Xeon(R) CPU E5620 @ 2.40GHz
model name : Intel(R) Xeon(R) CPU E5620 @ 2.40GHz
model name : Intel(R) Xeon(R) CPU E5620 @ 2.40GHz
model name : Intel(R) Xeon(R) CPU E5620 @ 2.40GHz
model name : Intel(R) Xeon(R) CPU E5620 @ 2.40GHz
解释: 为什么有16行; 因为2个CPU (单CPU是4核8线程)所以显示16行是 16线程;
例2: 查看内存数单条内存容量
aping@ubuntu:~$ sudo dmidecode |grep 'Range Size'
Range Size: 80 GB
Range Size: 8 GB
Range Size: 8 GB
Range Size: 8 GB
Range Size: 8 GB
Range Size: 8 GB
Range Size: 8 GB
Range Size: 8 GB
Range Size: 8 GB
Range Size: 8 GB
Range Size: 8 GB
解释: 单条内存为8G 共10条,总80G
lspci查看硬件信息
在CentOS的最小化安装中,默认是不会安装lspci工具的,需要自己手动安装。
安装步骤:
yum whatprovides */lspci /*查找lspci是通过哪个安装包来提供的
yum install pciutils 完成安装!
lspci # 查看硬件信息
lspci|grep RAID # 查看是否支持raid
lspci -vvv |grep Ethernet # 查看网卡型号
lspci -vvv |grep Kernel|grep driver # 查看驱动模块
modinfo tg3 # 查看驱动版本(驱动模块)
ethtool -i em1
more /proc/cpuinfo # 查看cpu信息
cat /proc/cpuinfo | grep name | cut -f2 -d: | uniq -c # 查看cpu型号和逻辑核心数
getconf LONG_BIT # cpu运行的位数
cat /proc/cpuinfo | grep physical | uniq -c # 物理cpu个数
cat /proc/cpuinfo | grep flags | grep ' lm ' | wc -l # 结果大于0支持64位
cat /proc/cpuinfo|grep flags #查看cpu是否支持虚拟化pae支持半虚拟化,IntelVT支持全虚拟化
more /proc/meminfo # 查看内存信息
dmidecode # 查看全面硬件信息
dmidecode | grep "Product Name" # 查看服务器型号
dmidecode | grep -P -A5 "Memory\s+Device" | grep Size | grep -v Range # 查看内存插槽
cat /proc/mdstat # 查看软raid信息
cat /proc/scsi/scsi # 查看Dell硬raid信息(IBM、HP需要官方检测工具)
nload和ifstats网卡流量统计
1.安装 nload和ifstats 软件在Centos 6上默认没有安装,需要自己进行安装:
yum install nload -y
yum install ifstats -y
2.使用方法
nload或者 ifstats 或者ethtool eth0
3.查看linux下网卡状态,是不是连接
mii-tool主要是用于配置网卡工作模式的指令,同时也可以进行查询、监控等工作
mii-tool eth0
查看网卡情况
/etc/init.d/network status 或者 service --status-all
dmidecode 这是一个在linux下获取系统信息的命令
一般系统都会默认安装,如果你无法使用,请先安装
Debian:apt-get install dmidecode 或CentOS:yum install dmidecode
dmidecode -t 查看相关参数, 以下为带上相关参数来检测相关信息。
bios
system
baseboard 主板信息
chassis
processor CPU
memory 内存
cache
connector
slot
注:如果不带以上参数,就会把所有信息显示出来,不好查看。
1、 dmidecode -t processor
查看CPU信息,就可以看到你的CPU是什么型号,多少核,频率、缓存等信息
cat /proc/cpuinfo 也一样可查CPU信息。
2、 dmidecode -t baseboard
查看主板信息,会显示具体的主板英文型号, 国外免费空间
再到网上搜索一下主板的英文型号信息就知道了他属什么主板,用的什么芯片组。
SMBIOS 2.4 present.
Handle 0x0001, DMI type 1, 27 bytes
System Information
Manufacturer: Gigabyte Technology Co., Ltd.
Product Name: G31M-ES2L
Version:
Serial Number:
UUID: 00000000-0000-0000-0000-00241DCA48F8
Wake-up Type: Power Switch
SKU Number:
Family:
这是技嘉主板,G31M 的
3、 dmidecode -t 17
能显示 插入的内存条的详细信息,如芯片,频率等等,如:
Handle 0x0034, DMI type 17, 27 bytes
Memory Device
Array Handle: 0x0031
Error Information Handle: 0x0035
Total Width: 64 bits
Data Width: 64 bits
Size: 2048 MB
Form Factor: DIMM
Set: None
Locator: DIMM0
Bank Locator: BANK0
Type: DDR2
Type Detail: Synchronous
Speed: 800 MHz
Manufacturer: Manufacturer00
Serial Number: SerNum00
Asset Tag: AssetTagNum0
Part Number: ModulePartNumber00
以上信息显示,内存为2G DDR2 800的。
或 dmidecode -t memory
能显示主板支持最大多少的内存,最多支持多少, 内存是否双通道等、如:
(有些系统,或主板不能显示这些信息)
Handle 0x0008, DMI type 5, 24 bytes
Memory Controller Information
Error Detecting Method: None
Error Correcting Capabilities:
None
Supported Interleave: One-way Interleave
Current Interleave: One-way Interleave
Maximum Memory Module Size: 16384 MB 单条支持16G
Maximum Total Memory Size: 65536 MB 最大支持64G
Supported Speeds:
Other
Supported Memory Types:
DIMM
Memory Module Voltage: 3.3 V
Associated Memory Slots: 4
0x0009
0x000A
0x000B
0x000C
Enabled Error Correcting Capabilities:
None
Handle 0x0009, DMI type 6, 12 bytes
Memory Module Information
Socket Designation: DIMM0
Bank Connections: 0 1
Current Speed: 25 ns
Type: DIMM
Installed Size: 2048 MB (Double-bank Connection) 双通道
Enabled Size: 2048 MB (Double-bank Connection)
Error Status: OK
硬盘测试: 先一般系统都没有安装 smartmontools 工具,需要自己安装一下
安装命令:apt-get install smartmontools 或 yum install smartmontools
通常需要需要执行这个: smartctl -s on /dev/sda 才打开硬盘SMART记录。
4、 smartctl -i /dev/sda
显示 硬盘的具体型号、容量等, 就可以配制这些型号 去搜索查询一下看是哪种硬盘
Device Model: TOSHIBA DT01ACA200
Serial Number: 73TTM08GS
LU WWN Device Id: 5 000039 ff3d947c4
Firmware Version: MX4OABB0
User Capacity: 2,000,398,934,016 bytes [2.00 TB]
Sector Sizes: 512 bytes logical, 4096 bytes physical
Device is: Not in smartctl database [for details use: -P showall]
ATA Version is: 8
ATA Standard is: ATA-8-ACS revision 4
Local Time is: Tue Nov 12 15:45:15 2013 CST
SMART support is: Available - device has SMART capability.
SMART support is: Enabled
如以上信息,硬盘为 东芝2TB 7200转 64MB(DT01ACA200) SATA3 7200转
5、 smartctl -A /dev/sda
查看硬盘通电时间,通电次数等。 有很多项,目前我只看使用时间和参数次数等。
以下为其中的几个,通电时间应该是看9,通电次数应该是12吧
9 Power_On_Hours 5
12 Power_Cycle_Count 4
可以看出,此硬盘使用了4个小时,通电4次。
注,还可用来检查状态: smartctl -H /dev/sda
请注意result后边结果:PASSED,这表示硬盘健康状态良好;如果这里显示Failure,那么最好立刻给服务器更换硬盘。SMART只能报告磁盘已经不再健康,但是报警后还能继续运行多久是不确定的。通常,SMART报警参数是有预留的,磁盘报警后,不会当场坏掉,一般能坚持一段时间,有的硬盘SMART报警后还继续跑了好几年,有的硬盘SMART报错后几天就坏了。但是一旦出现报警,就需要注意了。
6、 hdparm -t -T /dev/sda
用这命令直接检测硬盘直接读、硬盘快读取速度。
hdparm一般需安装,apt-get install hdparm 或 yum install hdparm
hdparm -t /dev/sda
/dev/sda:
Timing buffered disk reads: 1632 MB in 3.00 seconds = 543.77 MB/sec
以上信息显示,
-T 为评估硬盘的读取效率 为173.02 MB/sec
-t 为评估硬盘快取的读取效率 为543.77 MB/sec
7、CPU、硬盘、风扇转速等测试 命令:sensors
先执行一下安装 apt-get install lm_sensors 或 yum install lm_sensors
有些Debian系统需这样装上:apt-get install lm-sensors sensors-applet
安装好后执行 sensors 就会显示温度信息:
tk0110-acpi-0
Adapter: ACPI interface
Vcore Voltage: +1.04 V (min = +0.85 V, max = +1.60 V)
+3.3 Voltage: +3.33 V (min = +2.97 V, max = +3.63 V)
+5 Voltage: +5.12 V (min = +4.50 V, max = +5.50 V)
+12 Voltage: +12.25 V (min = +10.20 V, max = +13.80 V)
CPU FAN Speed: 1220 RPM (min = 600 RPM)
CHASSIS FAN Speed: 0 RPM (min = 600 RPM)
POWER FAN Speed: 0 RPM (min = 600 RPM)
CPU Temperature: +30.0°C (high = +60.0°C, crit = +95.0°C)
MB Temperature: +30.0°C (high = +45.0°C, crit = +75.0°C)
coretemp-isa-0000
Adapter: ISA adapter
Core 0: +43.0°C (high = +76.0°C, crit = +100.0°C)
Core 1: +34.0°C (high = +76.0°C, crit = +100.0°C)
Core 2: +41.0°C (high = +76.0°C, crit = +100.0°C)
Core 3: +40.0°C (high = +76.0°C, crit = +100.0°C)
以上可看出CPU风扇才1200转, CPU、硬盘温度30度,
CPU内部四个核芯温度都分别显示出来。 后面的76度应该是阀值,100度最高温度。
sensors-detect 好像是设置传感器(设定监控选项,通常yes即一路回来),有时需要执行一下此命令后,才能识别传感器,检测出温度。
sh -c "yes|sensors-detect" 检测显示传感器
这一个能检测的是CentOS系统,另一个服装的Debian系统,sensors无法检测出信息
说未设置好sensors-detect,但执行 sensors-detect 设置后,
用 sh -c "yes|sensors-detect"也能检测到,用 sensors 还是无检测,提示要设置.
8、CPU、内存性能测试命令: ubench
ubench 主要是测试 CPU 和内存性能。 需要执行5分钟左右。
需要下载 ubench安装包安装才可使用。这里有个下载地址:ubench-0.32.zip
解压出来,文件设为777 或是 x 属性,才可执行安装。
但是在有些服务器上Debian系统下安装时会出现 无执行权或找不到目录文件
解压后进入目录,执行安装
wget http://vps.idc886.com/ubench-0.32.zip
unzip ubench-0.32.zip
chmod +x ubench-0.32/*.*
cd ubench-0.32
./configure
make && make install
ubench
以上安装完后,执行 ubench 即可,等5分钟左右即可看到结果。
注:全新的系统还需要有些组件支持,如安装make、gc++ 等。
注:这是32位应用,64位系统上会出现错误提示:
[CentOS]安装软件:/lib/ld-linux.so.2: bad ELF interpreter 解决
是因为64位系统中安装了32位程序
解决方法:yum install glibc.i686
Ubench CPU: 1287342
Ubench MEM: 627574
Ubench AVG: 957458
三个分别为:CPU性能,内存性能,综合性能。
这个数据为Q9550四核、2*2G DDR2 800、G31主板、2T SATA3硬盘下测试值.
9. hdparm工具查看硬盘的相关信息或对硬盘进行测速、优化、修改硬盘相关参数设定。
hdparm -t /dev/sda (SATA、SCSI、硬RAID卡阵列)
hdparm -t /dev/md0 (软RAID设备)
参数:
-a 表示是否关闭磁盘预读取功能。对于大文件读取,这个显然能提高性能。
-A设置硬盘驱动器缓存读取特性。可能就是硬盘缓存开关
-g 显示硬盘的磁轨,磁头,磁区等参数。
-i 显示硬盘的硬件规格信息,这些信息是在开机时由硬盘本身所提供。
-I 直接读取硬盘所提供的硬件规格信息。
-p 设定硬盘的PIO模式。
-Tt 评估硬盘的读取效率和硬盘快取的读取效率。
-u; 在硬盘存取时,允许其他中断要求同时执行。
-v 显示硬盘的相关设定。
关于hdparm可以参考
http://www.ha97.com/4963.html
http://zhumeng8337797.blog.163.com/blog/static/10076891420122232758673/
http://www.cnblogs.com/ggjucheng/archive/2013/01/14/2859613.html
PHP探针:http://www.yahei.net/