linux查看cpu线程
㈠ 如何在 linux 上查找哪个线程cpu利用率最高
可以用 top 命令看
1.找出cpu耗用厉害的进程pid, 终端执行top命令,然后按下shift+p (shift+m是找出消耗内存最高)查找出cpu利用最厉害的pid号
2.根据上面第一步拿到的pid号,top -H -p pid 。然后按下shift+p,查找出cpu利用率最厉害的线程号,比如top -H -p 1328
3.将获取到的线程号转换成16进制,去网络转换一下就行
4.使用jstack工具将进程信息打印输出,jstack pid号 > /tmp/t.dat,比如jstack 31365 > /tmp/t.dat
5.编辑/tmp/t.dat文件,查找线程号对应的信息
㈡ linux查看线程占用cpu
top命令是最方便的,想看CPU列的话直接按字母 c 就会以cpu的使用高低来排列。 其实就每一列的第一个字母,如果想按cpu排列就按c ,按内存排列就按m。 PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND top [-] [d delay] [q] [c] [s] [S] [i] d 指定每两次屏幕信息刷新之间的时间间隔。当然用户可以使用s交互命令来改变之。 q 该选项将使top没有任何延迟的进行刷新。如果调用程序有超级用户权限,那么top将以尽可能高的优先级运行。 S 指定累计模式。 s 使top命令在安全模式中运行。这将去除交互命令所带来的潜在危险。 i 使top不显示任何闲置或者僵死进程。 c 显示整个命令行而不只是显示命令名但是无法显示每个线程的 cpu 利用率情况, 这时就可能出现这种情况,总的 cpu 利用率中 user 或 system 很高,但是用进程的 cpu 占用率进行排序时,没有进程的 user 或 system 与之对应。 可以用下面的命令将 cpu 占用率高的线程找出来: 这个命令首先指定参数'H',显示线程相关的信息,格式输出中包含:user,pid,ppid,tid,time,%cpu,cmd,然后再用%cpu字段进行排序。这样就可以找到占用处理器的线程了。
㈢ linux下查看cpu核数
安装后用lscpu可以很方便的得到:
$ lscpu | grep -E ' Thread| Core| Socket| CPU('
CPU(s): 56
Thread(s) per core: 2
Core(s) per socket: 14
Socket(s): 2
其中socket代表物理cpu个数, Core(s) per socket就是每个cpu多少核,Thread(s) per core就是每个核几个超线程
CPUs = Threads per core X cores per socket X sockets
引用:
https://unix.stackexchange.com/questions/218074/how-to-know-number-of-cores-of-a-system-in-linux
㈣ 如何查看linux服务器的cpu数量,内核数,和cpu线程数
lscpu命令,查看的是cpu的统计信息.x0dx0ablue@blue-pc:~$ lscpux0dx0aArchitecture: i686 #cpu架构x0dx0aCPU op-mode(s): 32-bit, 64-bitx0dx0aByte Order: Little Endian #小尾序x0dx0aCPU(s): 4 #总共有4核x0dx0aOn-line CPU(s) list: 0-3x0dx0aThread(s) per core: 1 #每个cpu核,只能支持一个线程,即不支持超线程x0dx0aCore(s) per socket: 4 #每个cpu,有4个核x0dx0aSocket(s): 1 #总共有1一个cpux0dx0aVendor ID: GenuineIntel #cpu产商 intelx0dx0aCPU family: 6x0dx0aModel: 42x0dx0aStepping: 7x0dx0aCPU MHz: 1600.000x0dx0aBogoMIPS: 5986.12x0dx0aVirtualization: VT-x #支持cpu虚拟化技术x0dx0aL1d cache: 32Kx0dx0aL1i cache: 32Kx0dx0aL2 cache: 256Kx0dx0aL3 cache: 6144Kx0dx0a x0dx0a 查看/proc/cpuinfo,可以知道每个cpu信息,如每个CPU的型号,主频等。x0dx0a#cat /proc/cpuinfox0dx0aprocessor : 0x0dx0avendor_id : GenuineIntelx0dx0acpu family : 6x0dx0amodel : 42x0dx0amodel name : Intel(R) Core(TM) i5-2320 CPU @ 3.00GHzx0dx0a.....x0dx0a 上面输出的是第一个cpu部分信息,还有3个cpu信息省略了。x0dx0a x0dx0a 内存x0dx0a 概要查看内存情况x0dx0a free -mx0dx0a total used free shared buffers cachedx0dx0a Mem: 3926 3651 274 0 12 404x0dx0a -/+ buffers/cache: 3235 691x0dx0a Swap: 9536 31 9505x0dx0a 这里的单位是MB,总共的内存是3926MB。x0dx0a x0dx0a 查看内存详细使用x0dx0a# cat /proc/meminfox0dx0aMemTotal: 4020868 kBx0dx0aMemFree: 230884 kBx0dx0aBuffers: 7600 kBx0dx0aCached: 454772 kBx0dx0aSwapCached: 836 kBx0dx0a.....x0dx0a x0dx0a 查看内存硬件信息x0dx0admidecode -t memoryx0dx0a# dmidecode 2.11x0dx0aSMBIOS 2.7 present.x0dx0aHandle 0x0008, DMI type 16, 23 bytesx0dx0aPhysical Memory Arrayx0dx0a Location: System Board Or Motherboardx0dx0a....x0dx0a Maximum Capacity: 32 GBx0dx0a....x0dx0aHandle 0x000A, DMI type 17, 34 bytesx0dx0a....x0dx0aMemory Devicex0dx0a Array Handle: 0x0008x0dx0a Error Information Handle: Not Providedx0dx0a Total Width: 64 bitsx0dx0a Data Width: 64 bitsx0dx0a Size: 4096 MBx0dx0a.....x0dx0a 我的主板有4个槽位,只用了一个槽位,上面插了一条4096MB的内存。x0dx0a x0dx0a 磁盘x0dx0a 查看硬盘和分区分布x0dx0a# lsblkx0dx0aNAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTx0dx0asda 8:0 0 465.8G 0 diskx0dx0a├—sda1 8:1 0 1G 0 part /bootx0dx0a├—sda2 8:2 0 9.3G 0 part [SWAP]x0dx0a├—sda3 8:3 0 74.5G 0 part /x0dx0a├—sda4 8:4 0 1K 0 partx0dx0a├—sda5 8:5 0 111.8G 0 part /homex0dx0a└—sda6 8:6 0 269.2G 0 partx0dx0a 显示很直观x0dx0a x0dx0a 如果要看硬盘和分区的详细信息x0dx0a# fdisk -lx0dx0aDisk /dev/sda: 500.1 GB, 500107862016 bytesx0dx0a255 heads, 63 sectors/track, 60801 cylinders, total 976773168 sectorsx0dx0aUnits = sectors of 1 * 512 = 512 bytesx0dx0aSector size (logical/physical): 512 bytes / 4096 bytesx0dx0aI/O size (minimum/optimal): 4096 bytes / 4096 bytesx0dx0aDisk identifier: 0x00023728x0dx0a Device Boot Start End Blocks Id Systemx0dx0a/dev/sda1 * 2048 2148351 1073152 83 Linuxx0dx0a/dev/sda2 2148352 21680127 9765888 82 Linux swap / Solarisx0dx0a/dev/sda3 21680128 177930239 78125056 83 Linuxx0dx0a/dev/sda4 177932286 976771071 399419393 5 Extended/dev/sda5 177932288 412305407 117186560 83 Linuxx0dx0a/dev/sda6 412307456 976771071 282231808 83 Linuxx0dx0a x0dx0a 网卡x0dx0a 查看网卡硬件信息x0dx0a# lspci | grep -i 'eth'x0dx0a02:00.0 Ethernet controller: Realtek Semiconctor Co., Ltd. RTL8111/8168B PCI Express Gigabit Ethernet controller (rev 06)x0dx0a x0dx0a 查看系统的所有网络接口x0dx0a# ifconfig -ax0dx0aeth0 Link encap:以太网 硬件地址 b8:97:5a:17:b3:8f x0dx0a .....x0dx0alo Link encap:本地环回 x0dx0a .....x0dx0a 或者是x0dx0aip link showx0dx0a1: lo:
㈤ Linux查看CPU详细信息
在Linux服务器上查看CPU详细信息:
cat /proc/cpuinfo
输出结果:
上面只截取了一部分信息,
完整的CPU信息请参考文末附录,
这个命令输出了太多的冗余信息不方便查看,
下面介绍的命令以该Linux输出的CPU信息为例,
可以很方便的知道当前系统CPU的特定信息。
请参考以下文章了解CPU的一些基本概念:
物理CPU,物理CPU内核,逻辑CPU概念详解
cat /proc/cpuinfo | grep "physical id" | sort | uniq | wc -l
输出结果:
2
表示Linux服务器上面实际安装了2个物理CPU芯片。
cat /proc/cpuinfo | grep "cpu cores" | uniq
输出结果:
cpu cores : 8
表示1个物理CPU里面有8个物理内核。
cat /proc/cpuinfo | grep "processor" | wc -l
输出结果:
32
表示Linux服务器一共有32个逻辑CPU。
cat /proc/cpuinfo | grep 'siblings' | uniq
输出结果:
siblings : 16
表示每个物理CPU中有16个逻辑CPU,
一共有2个物理CPU,
所以总共有32个逻辑CPU,
和第5步中查看的结果一致。
cat /proc/cpuinfo | grep -e "cpu cores" -e "siblings" | sort | uniq
输出结果:
cpu cores : 8
siblings : 16
看到cpu cores数量是siblings数量一半,说明启动了超线程。
如果cpu cores数量和siblings数量一致,则没有启用超线程。
cpuinfo输出了详细的信息,
可以看到CPU具体型号等各种参数,
下面说明各个输出项的含义:
14、/proc/cpuinfo 文件(查看CPU信息)
Linux CPU数量判断,通过/proc/cpuinfo.
㈥ Linux系统上如何查看进程(线程)所运行的CPU
使用top命令,具体用法是 top -H,加上这个选项,top的每一行就不是显示一个进程,而是一个线程。
使用ps命令,具体用法是 ps -xH,这样可以查看所有存在的线程,也可以使用grep作进一步的过滤。
使用ps命令,具体用法是 ps -mq PID,这样可以看到指定的进程产生的线程数目。
更进一步,其实一些系统监控工具,在本质上也是读取的系统产生的文件罢了。
㈦ linux查看服务器cpu,内存使用情况
第一种:用 top 命令 中的cpu 信息观察
Top可以看到的cpu信息有:
Tasks: 29 total, 1 running, 28 sleeping, 0 stopped, 0 zombie
Cpu(s): 0.3% us, 1.0% sy, 0.0% ni, 98.7% id, 0.0% wa, 0.0% hi, 0.0% si
具体的解释如下:
Tasks: 29 total 进程总数
1 running 正在运行的进程数
28 sleeping 睡眠的进程数
0 stopped 停止的进程数
0 zombie 僵尸进程数
Cpu(s):
0.3% us 用户空间占用CPU百分比
1.0% sy 内核空间占用CPU百分比
0.0% ni 用户进程空间内改变过优先级的进程占用CPU百分比
98.7% id 空闲CPU百分比
0.0% wa 等待输入输出的CPU时间百分比
0.0% hi
0.0% si
0.0% wa 的百分比可以大致的体现出当前的磁盘io请求是否频繁。如果 wa的数量比较大,说明等待输入输出的的io比较多。
第二种:用vmstat
vmstat 命令报告关于线程、虚拟内存、磁盘、陷阱和 CPU 活动的统计信息。由 vmstat 命令生成的报告可以用于平衡系统负载活动。系统范围内的这些统计信息(所有的处理器中)都计算出以百分比表示的平均值,或者计算其总和。
输入命令:
vmstat 2 5
如果发现等待的进程和处在非中断睡眠状态的进程数非常多,并且发送到块设备的块数和从块设备接收到的块数非常大,那就说明磁盘io比较多。
vmstat参数解释:
Procs
r: 等待运行的进程数 b: 处在非中断睡眠状态的进程数 w: 被交换出去的可运行的进程数。此数由 linux 计算得出,但 linux 并不耗尽交换空间
Memory
swpd: 虚拟内存使用情况,单位:KB
free: 空闲的内存,单位KB
buff: 被用来做为缓存的内存数,单位:KB
Swap
si: 从磁盘交换到内存的交换页数量,单位:KB/秒
so: 从内存交换到磁盘的交换页数量,单位:KB/秒
IO
bi: 发送到块设备的块数,单位:块/秒
bo: 从块设备接收到的块数,单位:块/秒
System
in: 每秒的中断数,包括时钟中断
cs: 每秒的环境(上下文)切换次数
CPU
按 CPU 的总使用百分比来显示
us: CPU 使用时间
sy: CPU 系统使用时间
id: 闲置时间
㈧ 如何查看linux系统CPU信息
在Linux中,有许多命令行或基于GUI的工具就能来展示你的CPU硬件的相关具体信息。那么如何查看linux系统CPU信息呢?下面是我收集整理的如何查看linux系统CPU信息,希望对大家有帮助~~
查看linux系统CPU信息的方法
工具/原料
linux系统
方法/步骤
11. /proc/cpuinfo
最简单的方法就是查看 /proc/cpuinfo ,这个虚拟文件展示的是可用CPU硬件的配置。
通过查看这个文件,你能识别出物理处理器数(插槽)、每个CPU核心数、可用的CPU标志寄存器以及其它东西的数量。

12. x86info