0%

查询功耗,负载

查看CPU负载

uptime

这些字段显示:当前时间,系统已运行的时间,当前登录用户的数量,相应最近5、10和15分钟内的平均负载。

w

Linux w命令用于显示目前登入系统的用户信息。执行这项指令可得知目前登入系统的用户有哪些人,以及他们正在执行的程序。单独执行 w 指令会显示所有的用户,您也可指定用户名称,仅显示某位用户的相关信息。

top

top命令的顶部显示与uptime命令相似的输出,这些字段显示:当前时间,系统已运行的时间,当前登录用户的数量,相应最近5、10和15分钟内的平均负载。

任务(进程),系统现在共有457个进程,其中处于运行中的有1个,456个在休眠(sleep),stoped状态的有0个,zombie状态(僵尸)的有0个。

这里显示不同模式下所占cpu时间百分比,这些不同的cpu时间表示:

  • us, user: 运行(未调整优先级的) 用户进程的CPU时间

  • sy,system: 运行内核进程的CPU时间

  • ni,niced:运行已调整优先级的用户进程的CPU时间

  • wa,IO wait: 用于等待IO完成的CPU时间

  • hi:处理硬件中断的CPU时间

  • si: 处理软件中断的CPU时间

  • st:这个虚拟机被hypervisor偷去的CPU时间(译注:如果当前处于一个hypervisor下的vm,实际上hypervisor也是要消耗一部分CPU处理时间的)。

接下来两行显示内存使用率。第一行是物理内存,第二行是虚拟内存。物理内存显示如下:全部可用内存、已使用内存、空闲内存、缓冲内存。相似地,交换部分显示的是:全部、已使用、空闲和缓冲交换空间。

PID:进程ID,进程的唯一标识符

USER:进程所有者的实际用户名。

PR:进程的调度优先级。这个字段的一些值是’rt’。这意味这这些进程运行在实时态。

NI:进程的nice值(优先级)。越小的值意味着越高的优先级。负值表示高优先级,正值表示低优先级

VIRT:进程使用的虚拟内存。进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RES

RES:驻留内存大小。驻留内存是任务使用的非交换物理内存大小。进程使用的、未被换出的物理内存大小,单位kb。RES=CODE+DATA

SHR:SHR是进程使用的共享内存。共享内存大小,单位kb

S:这个是进程的状态。它有以下不同的值:

  • D - 不可中断的睡眠态。
  • R – 运行态
  • S – 睡眠态
  • T – 被跟踪或已停止
  • Z – 僵尸态

%CPU:自从上一次更新时到现在任务所使用的CPU时间百分比。

%MEM:进程使用的可用物理内存百分比。

TIME+:任务启动后到现在所使用的全部CPU时间,精确到百分之一秒。

COMMAND:运行进程所使用的命令。进程名称(命令名/命令行)

更多内容可以查看https://www.cnblogs.com/zhoug2020/p/6336453.html

压力测试工具:stress

安装

1
2
yum install -y epel-release
yum install -y stress

使用方式

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
`stress' imposes certain types of compute stress on your system

Usage: stress [OPTION [ARG]] ...
-?, --help show this help statement
--version show version statement
-v, --verbose be verbose
-q, --quiet be quiet //不显示运行信息
-n, --dry-run show what would have been done
-t, --timeout N timeout after N seconds
--backoff N wait factor of N microseconds before work starts
-c, --cpu N spawn N workers spinning on sqrt()
-i, --io N spawn N workers spinning on sync()
-m, --vm N spawn N workers spinning on malloc()/free()
--vm-bytes B malloc B bytes per vm worker (default is 256MB)
--vm-stride B touch a byte every B bytes (default is 4096)
--vm-hang N sleep N secs before free (default none, 0 is inf)
--vm-keep redirty memory instead of freeing and reallocating
-d, --hdd N spawn N workers spinning on write()/unlink()
--hdd-bytes B write B bytes per hdd worker (default is 1GB)

Example: stress --cpu 8 --io 4 --vm 2 --vm-bytes 128M --timeout 10s

Note: Numbers may be suffixed with s,m,h,d,y (time) or B,K,M,G (size).

查看CPU功耗

方法1:s-tui

安装

1
2
3
yum install python-pip stress
pip install s-tui //python2.X
pip3 install s-tui //python3.X

使用

需要root权限。需要以下命令启动:

1
s-tui

s-tui里面包含cpu的功耗,温度,频率,利用率等信息。

方法2:turbostat

需要root权限。需要以下命令使用:

1
turbostat

一、turboastat可以用来查看CPU核心处在C1 C3 C6 C7状态下时间。
在CPU超线程的核心中,如果某个核心处于工作状态,会阻止该超线程的另一个核心进入比C1更加深入的省电模式。

二、turbostat可以查看CPU的温度信息。
CoreTmp:每个物理cpu核心的温度。
PkgTmp:每个物理CPU的温度。

三、turbostat查看CPU的忙碌状态。
AVG_MHz 执行周期数除以经过的时间
%Busy 处于“ C0”状态的时间百分比。
Bzy_MHz cpu繁忙时的平均时钟频率。 (in “c0” state).
TSC_MHz TSC在整个时间间隔内运行的平均MHz。TSC是一个64bit的寄存器,用来记录cpu的cycle个数。

四、查看能耗消耗位置
PkgWatt 整个CPU消耗的瓦特数。
CorWatt 核心消耗的瓦特数。
GFXWatt 图像部分消耗的瓦特数。
RAMWatt DRAM DIMMS 部分消耗的瓦特数。

五、查看RAPL信息
RAPL是Running Average Power Limit的缩写。
PKG_% cpu RAPL节流活动间隔的百分比。
RAM_% cpu RAPL节流在DRAM上处于活动状态的时间间隔的百分比。

方法3:powertop

安装

1
yum install powertop

使用

Powertop需要root权限。详细可以参考https://linux.cn/article-10560-1.html。

方法4:MSR寄存器

MSR(Model Specific Register)是x86架构中的概念,指的是在x86架构处理器中,一系列用于控制CPU运行、功能开关、调试、跟踪程序执行、监测CPU性能等方面的寄存器。

RAPL

RAPL全称为: running average power limit
RAPL是x86处理器用于限制功耗、获取功耗的一组工具,rapl提供了一系列的设置接口用于限制和获取cpu的功耗以及CPU的能量消耗,而我们调用这些功能的入口就是学会读写msr寄存器。关于RAPL的操作说明,参考Intel开发者帮助手册第3卷14.9章节。

在RAPL中获取功耗的思路是:

  • 首先使用cpuid代码或者lscpu查看cpu是否支持msr (这个一般都支持)
  • 读取MSR_RAPL_POWER_UNIT寄存器的内容,得到能量的基本计算单元。
  • 读取MSR_PKG_ENERGY_STATUS寄存器的内容,用来乘以能量基本计算单元,得到具体的累积能量消耗(单位:焦耳)。
  • 程序暂停一段时间。
  • 再次读取MSR_PKG_ENERGY_STATUS寄存器的内容,乘以能量基本计算单元,得到累积能量消耗。
  • 用第二次得到的累积能量消耗减去第一次的,除以时间,就得到了这段时间的平均功耗。

详细可以参考https://blog.csdn.net/Xiaobai__Lee/article/details/100729269?spm=1001.2101.3001.6650.2&utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7Edefault-2.no_search_link&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7Edefault-2.no_search_link

查看服务器功耗

ipmitool

安装

1
yum install -y OpenIPMI ipmitool

使用

需要root权限。使用命令:

1
ipmitool -I open sdr elist

此命令可以获取传感器中的各种监测值和该值的监测阈值,包括(CPU温度,电压,风扇转速,电源调制模块温度,电源电压等信息)。

使用以下命令查看功耗:

1
ipmitool -I open sdr elist | grep Sys_Total_Power

更多ipmitool功能可以参考https://blog.csdn.net/xinqidian_xiao/article/details/80924897。

参考文献

https://www.cnblogs.com/zhoug2020/p/6336453.html

https://blog.csdn.net/weixin_44793395/article/details/106167831

https://linux.cn/article-10560-1.html

https://blog.csdn.net/xinqidian_xiao/article/details/80924897

https://blog.csdn.net/Xiaobai__Lee/article/details/100729269?spm=1001.2101.3001.6650.2&utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7Edefault-2.no_search_link&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7Edefault-2.no_search_link