A. linux中如何查看系统的cpu
方法/步骤
linux的cpu信息可以从文件中cpuinfo读取。
执行命令:
# cat /proc/cpuinfo
B. 怎么查看linux的cpu,内存等占用率
在系统维护的过程中,随时可能有需要查看
CPU
使用率,并根据相应信息分析系统状况的需要。在
CentOS
中,可以通过
top
命令来查看
CPU
使用状况。运行
top
命令后,CPU
使用状态会以全屏的方式显示,并且会处在对话的模式
--
用基于
top
的命令,可以控制显示方式等等。退出
top
的命令为
q
(在
top
运行中敲
q
键一次)。
top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器
可以直接使用top命令后,查看%MEM的内容。可以选择按进程查看或者按用户查看,如想查看oracle用户的进程内存使用情况的话可以使用如下的命令:
$
top
-u
oracle
C. 如何查看linux的物理cpu信息
linux查看硬件信息
(1)查看硬盘大小:df-h
(2)查看内存大小
free-m
ll-h/proc/kcore
(3)查看CPUcat/proc/cpuinfo
linux下/proc/cpuinfo文件会显示cpu的信息
逻辑CPU个数是指cat/proc/cpuinfo所显示的processor的个数
#cat
/proc/cpuinfo
|
grep
processor
|
wc
-l
物理CPU个数,是指physical
id(的值)的数量
#cat
/proc/cpuinfo
|
grep
physical
id
|
sort
|
uniq
|
wc
-l
每个物理CPU中Core的个数:每个相同的physical
id都有其对应的core
id。如core
id分别为1、2、3、4,则表示是Quad-Core
CPU,若core
id分别是1、2,则表示是Dual-Core。
#cat
/proc/cpuinfo
|
grep
cpucores
|
wc
-l
逻辑CPU:每个物理CPU中逻辑CPU(可能是core,threads或both)的个数:
#cat
/proc/cpuinfo
|
grep
siblings
它既可能是cores的个数,也可能是core的倍数。当它和core的个数相等时,表示每一个core就是一个逻辑CPU,若它时core的2倍时,表示每个core又enable了超线程(Hyper-Thread)。
比如:一个双核的启用了超线程的物理cpu,其core
id分别为1、2,但是sibling是4,也就是如果有两个
逻辑CPU具有相同的core
id,那么超线程是打开的。
查看linux内核版本[root@q1test01~]#uname-a
Linuxq1test01
2.6.9-22.ELsmp#1
SMP
Mon
Sep
19
18:00:54
EDT
2005x86_64
x86_64
x86_64
GNU/Linux
[root@q1test01~]#lsb_release-a
LSB
Version::core-3.0-amd64:core-3.0-ia32:core-3.0-noarch:graphics-3.0-amd64:graphics-
3.0-ia32:graphics-3.0-noarch
Distributor
ID:RedHatEnterpriseAS
Description:Red
Hat
Enterprise
Linux
AS
release
4(Nahant
Update
2)
Release:4
Codename:NahantUpdate2
注:这个命令适用于所有的linux,包括Redhat、SuSE、Debian等发行版
D. 在linux 下怎么查看服务器的cpu和内存的硬件信息
以Linux centos 7服务器为例,查看服务器的cpu和内存的硬件信息方法如下:
1、鼠标右键点击桌面,选择“打开终端”,如下图所示。
E. linux系统怎么查看cpu使用情况
1、查看内存:在SSH远程控制端,输入命令“cat /proc/meminfo”,按下“Enter”回车键,即可看到总的内存占用情况。
2、查看CPU:在SSH远程控制端,输入命令“top”,按下“Enter”回车键,即可看到cpu的使用率。
3、Linux上的VNC服务端,比较常用的就是tigervnc和x11vnc。x11vnc可以让远程访问者控制本地的实际显示器,而tigervnc既可以远程控制实际显示器,还可以控制平行独立于当前物理显示器的虚拟显示器。
中央处理器(Central Processing Unit),简称CPU,是1971年推出的一个计算机的运算核心和控制核心,是信息处理、程序运行的最终执行单元。
中央处理器包含运算逻辑部件、寄存器部件和控制部件等,并具有处理指令、执行操作、控制时间、处理数据等功能。
CPU包括运算逻辑部件、寄存器部件和控制部件等。[1]
逻辑部件
英文Logic components;运算逻辑部件,可以执行定点或浮点算术运算操作、移位操作以及逻辑操作,也可执行地址运算和转换。
寄存器
中央处理器
中央处理器
寄存器部件,包括通用寄存器、专用寄存器和控制寄存器。
通用寄存器又可分定点数和浮点数两类,它们用来保存指令执行过程中临时存放的寄存器操作数和中间(或最终)的操作结果。
通用寄存器是中央处理器的重要组成部分,大多数指令都要访问到通用寄存器。通用寄存器的宽度决定计算机内部的数据通路宽度,其端口数目往往可影响内部操作的并行性。
专用寄存器是为了执行一些特殊操作所需用的寄存器。
控制寄存器(CR0~CR3)用于控制和确定处理器的操作模式以及当前执行任务的特性。CR0中含有控制处理器操作模式和状态的系统控制标志;CR1保留不用;CR2含有导致页错误的线性地址;CR3中含有页目录表物理内存基地址.
控制部件
英文Control unit;控制部件,主要是负责对指令译码,并且发出为完成每条指令所要执行的各个操作的控制信号。
其结构有两种:一种是以微存储为核心的微程序控制方式;一种是以逻辑硬布线结构为主的控制方式。
微存储中保持微码,每一个微码对应于一个最基本的微操作,又称微指令;各条指令是由不同序列的微码组成,这种微码序列构成微程序。中央处理器在对指令译码以后,即发出一定时序的控制信号,按给定序列的顺序以微周期为节拍执行由这些微码确定的若干个微操作,即可完成某条指令的执行。
简单指令是由(3~5)个微操作组成,复杂指令则要由几十个微操作甚至几百个微操作组成。
F. linux下如何看有几个cpu
首先为大家演示1个CPU的情况,这种情况最简单。
CPU的信息存放在/proc/cpuinfo中,如下图所示,physical id代表第几个CPU,编号从0开始,cpu cores 代表核数,可以看出是1颗1核的CPU,即CPU个数是1个。
G. linux看cpu型号
1 查看CPU
1.1 查看CPU个数
# cat /proc/cpuinfo | grep "physical id" | uniq | wc -l
2 **uniq命令:删除重复行;wc –l命令:统计行数**
1.2 查看CPU核数
# cat /proc/cpuinfo | grep "cpu cores" | uniq
cpu cores : 4
1.3 查看CPU型号
# cat /proc/cpuinfo | grep 'model name' |uniq
model name : Intel(R) Xeon(R) CPU E5630 @ 2.53GHz
H. linux下如何查卡cpu的频率
在linux查看cpu信息步骤如下:
1、linux的cpu信息可以从文件中cpuinfo读取。
执行命令: # cat /proc/cpuinfo
这样就能查到CPU的相关信息了。
参考资料来源:网络-linux
I. linux cpu占用较高
Linux服务器上出现CPU负载达到100%居高不下的情况,如果CPU 持续跑高,则会影响业务系统的正常运行; CPU利用率。根据经验来看,用户空间进程占用CPU比例在 65-70%。一般不能超过这个比例,超过这个比例,系统性能就会降低,平均负载升高,这点将会在下面的测试中看到。
进程上下文切换。上下文切换和CPU利用率应该联系起来,如果CPU利用率低,那么上下文切换稍高点也能接受。上下文切换也是需要消耗CPU资源的,频繁的切换必将使得CPU利用率升高。
运行队列中等待运行的进程数。每个CPU核心中等待处理的进程数不应该超过3个线程/进程。如4核心的机器,那么队列的最大值应该不超过12个。
对于CPU过载问题通常使用以下两种方式即可快速定位(不能涵盖所有特殊情况,请作为其中的参考排查思路):
一、排查分析
方法一(针对java应用):
第一步:使用
top命令,然后按shift+p按照CPU排序
找到占用CPU过高的进程的pid
第二步:使用
top -H -p [进程id]
找到进程中消耗资源最高的线程的id
第三步:使用
echo 'obase=16;[线程id]' | bc或者printf "%x\n" [线程id]
将线程id转换为16进制(字母要小写)
bc是linux的计算器命令
第四步(此步骤可以和相对应的java开发进行一起排查):执行
jstack [进程id] |grep -A 10 [线程id的16进制]”
查看线程状态信息
二、kswapd0 进程占用 CPU 较高
操作系统都用分页机制来管理物理内存,操作系统将磁盘的一部分划出来作为虚拟内存,由于内存的速度要比磁盘快得多,所以操作系统要按照某种换页机制将不需要的页面换到磁盘中,将需要的页面调到内存中,由于内存持续不足,这个换页动作持续进行,kswapd0 是虚拟内存管理中负责换页的,当服务器内存不足的时候 kswapd0 会执行换页操作,这个换页操作是十分消耗主机 CPU 资源的。如果通过 top 发现该进程持续处于非睡眠状态,且运行时间较长,可以初步判定系统在持续的进行换页操作,可以将问题转向内存不足的原因来排查。
J. linux cpu使用率过高排查
方法一
第一步:使用
top命令,然后按shift+p按照CPU排序
找到占用CPU过高的进程的pid
第二步:使用
top -H -p [进程id]
找到进程中消耗资源最高的线程的id
第三步:使用
echo 'obase=16;[线程id]' | bc或者printf "%x
" [线程id]
将线程id转换为16进制(字母要小写)
bc是linux的计算器命令
第四步:执行
jstack [进程id] |grep -A 10 [线程id的16进制]”
查看线程状态信息
方法二
第一步:使用
top命令,然后按shift+p按照CPU排序
找到占用CPU过高的进程
第二步:使用
ps -mp pid -o THREAD,tid,time | sort -rn
获取线程信息,并找到占用CPU高的线程
第三步:使用
echo 'obase=16;[线程id]' | bc或者printf "%x
" [线程id]
将需要的线程ID转换为16进制格式
第四步:使用
jstack pid |grep tid -A 30 [线程id的16进制]
打印线程的堆栈信息
案例分析
场景描述
生产环境下JAVA进程高CPU占用故障排查
解决过程
1、根据top命令,发现PID为2633的Java进程占用CPU高达300%,出现故障。
2、找到该进程后,如何定位具体线程或代码呢,首先显示线程列表,并按照CPU占用高的线程排序:
1[root@localhost ~]# ps -mp 2633 -o THREAD,tid,time | sort -rn
显示结果如下:
化主动为被动的方式,一方面减轻了运维工程师的工作,另一方面也减小了运维漏看或者忽略告警的情况发生。