CoreFreq:一款强大的监控 CPU 的专业工具

简介:

CoreFreq 是一个用于英特尔 64 位处理器的 CPU 监控程序,并且支持 Atom、Core2、Nehalem、SandyBridge 及以上、还有 AMD 0F 家族。

它的核心建立在内核模块上,用于从每个 CPU 核心检索内部性能计数器,并且与收集数据的守护进程一起工作,一个小型控制台客户端连接到该守护程序并显示收集的数据。

CoreFreq CPU Monitoring

CoreFreq CPU Monitoring

它提供了高精度的重新捕获 CPU 数据的基础工作:

  1. 核心频率和比率;SpeedStep(EIST)、Turbo Boost、超线程(HTT)以及基本时钟Base Clock
  2. 性能计数器结合时间戳计数器Time Stamp Counter(TSC)、非停机核心周期Unhalted Core Cycles(UCC)、非停机引用周期Unhalted Reference Cycles(URC)。
  3. 每周期或每秒的指令数:IPS、IPC 或 CPI。
  4. CPU C 状态: C0 C1 C3 C6 C7 - C1E - C1、C3 的自动/非降级UnDemotion
  5. 带有 Tjunction Max 的 DTS 温度、热监测Thermal Monitoring TM1、TM2 状态。
  6. 包括用于自举的高速缓存和应用程序 CPU 拓扑图。
  7. 处理器特性、品牌、架构字符串。

注意:此工具更适用于 Linux 专家用户和经验丰富的系统管理员,但新手用户可以逐步学习如何使用它。

CoreFreq 如何工作

它通过调用一个 Linux 内核模块实现,它使用了:

  1. 汇编代码保持尽可能接近性能计数器读数。
  2. 按每个 CPU 影响的 slab 数据内存加上高分辨率定时器。
  3. 支持 CPU 暂停/恢复和 CPU 热插拔。
  4. 使用共享内存来保护内核免受来自用户空间程序的损害。
  5. 使用原子级同步的线程来消除互斥和死锁。

如何在 Linux 中安装 CoreFreq

要安装 CoreFreq,你首先需要安装依赖程序(开发工具)来编译并从源码构建程序。


 
 
  1. $ sudo yum group install 'Development Tools' [On CentOS/RHEL]
  2. $ sudo dnf group install 'Development Tools' [On Fedora 22+ Versions]
  3. # sudo apt-get install dkms git libpthread-stubs0-dev [On Debian/Ubuntu]

接下来克隆 Github 上 CoreFreq 源码,进入下载文件夹并编译构建程序:


 
 
  1. $ git clone https://github.com/cyring/CoreFreq.git
  2. $ cd CoreFreq
  3. $ make

构建 CoreFreq 程序

构建 CoreFreq 程序

注意:Arch Linux 用户可以从 AUR 中安装 corefreq-git

现在运行以下命令从本地目录加载 Linux 内核模块,接着运行守护程序:


 
 
  1. $ sudo insmod corefreqk.ko
  2. $ sudo ./corefreqd

接着使用普通用户启动客户端。


 
 
  1. $ ./corefreq-cli

CoreFreq Linux CPU 监控

CoreFreq Linux CPU 监控

在上面的界面中,你可以使用这些快捷键:

  1. 使用 F2 显示屏幕顶部显示的使用菜单。
  2. 使用  和  箭头移动菜单选项卡。
  3. 使用 和  箭头选择菜单项,然后单击回车。
  4. 使用 F4 关闭程序。
  5. 使用 h 打开快速参考。

要查看所有的使用选项,请输入以下命令:


 
 
  1. $ ./corefreq-cli -h

CoreFreq 选项:


 
 
  1. CoreFreq. Copyright (C) 2015-2017 CYRIL INGENIERIE
  2. usage: corefreq-cli [-option <arguments>]
  3. -t Show Top (default)
  4. -d Show Dashboard
  5. arguments: <left> <top> <marginWidth> <marginHeight>
  6. -c Monitor Counters
  7. -i Monitor Instructions
  8. -s Print System Information
  9. -M Print Memory Controller
  10. -m Print Topology
  11. -u Print CPUID
  12. -k Print Kernel
  13. -h Print out this message
  14. Exit status:
  15. 0 if OK,
  16. 1 if problems,
  17. >1 if serious trouble.
  18. Report bugs to labs[at]cyring.fr

要打印内核的信息,运行:


 
 
  1. $ ./corefreq-cli -k

打印 CPU 细节信息:


 
 
  1. $ ./corefreq-cli -u

你也可以实时监控 CPU 指令:


 
 
  1. $ ./corefreq-cli -i

如下启用计数器追踪:


 
 
  1. $ ./corefreq-cli -c

原文发布时间为:2017-02-26

本文来自云栖社区合作伙伴“Linux中国”

相关文章
|
4月前
|
监控 异构计算
Jetson 学习笔记(八):htop查看CPU占用情况和jtop监控CPU和GPU
在NVIDIA Jetson平台上使用htop和jtop工具来监控CPU、GPU和内存的使用情况,并提供了安装和使用这些工具的具体命令。
320 0
|
9月前
|
存储 弹性计算 监控
监控CPU
【4月更文挑战第30天】
92 0
|
7月前
|
数据采集 并行计算 数据处理
工具人必看:Python并发编程工具箱大揭秘,IO与CPU密集型任务的最佳拍档!
【7月更文挑战第16天】Python并发编程助力IO密集型(asyncio+aiohttp,异步Web爬虫示例)和CPU密集型(multiprocessing,并行计算数组和)任务。asyncio利用单线程异步IO提升Web应用效率,multiprocessing通过多进程克服GIL限制,实现多核并行计算。善用这些工具,可优化不同场景下的程序性能。
72 1
|
7月前
|
监控 Python
paramiko 模块 ---Python脚本监控当前系统的CPU、内存、根目录、IP地址等信息
paramiko 模块 ---Python脚本监控当前系统的CPU、内存、根目录、IP地址等信息
|
7月前
|
监控
主机状态监控,通过top命令查看CPU、内存使用情况,ctrl + c退出,输入top整个页面就变成一个任务管理器的形式了,Ctrl + C直接退出,Q也可以退掉了
主机状态监控,通过top命令查看CPU、内存使用情况,ctrl + c退出,输入top整个页面就变成一个任务管理器的形式了,Ctrl + C直接退出,Q也可以退掉了
|
9月前
|
监控 Linux API
LabVIEW监控实时嵌入式目标上的CPU和内存使用情况
LabVIEW监控实时嵌入式目标上的CPU和内存使用情况
302 4
|
2月前
|
存储 缓存 监控
Docker容器性能调优的关键技巧,涵盖CPU、内存、网络及磁盘I/O的优化策略,结合实战案例,旨在帮助读者有效提升Docker容器的性能与稳定性。
本文介绍了Docker容器性能调优的关键技巧,涵盖CPU、内存、网络及磁盘I/O的优化策略,结合实战案例,旨在帮助读者有效提升Docker容器的性能与稳定性。
203 7
|
3月前
|
弹性计算 Kubernetes Perl
k8s 设置pod 的cpu 和内存
在 Kubernetes (k8s) 中,设置 Pod 的 CPU 和内存资源限制和请求是非常重要的,因为这有助于确保集群资源的合理分配和有效利用。你可以通过定义 Pod 的 `resources` 字段来设置这些限制。 以下是一个示例 YAML 文件,展示了如何为一个 Pod 设置 CPU 和内存资源请求(requests)和限制(limits): ```yaml apiVersion: v1 kind: Pod metadata: name: example-pod spec: containers: - name: example-container image:
460 1
|
3月前
|
存储 关系型数据库 MySQL
查询服务器CPU、内存、磁盘、网络IO、队列、数据库占用空间等等信息
查询服务器CPU、内存、磁盘、网络IO、队列、数据库占用空间等等信息
1178 2
|
5月前
|
存储 关系型数据库 MySQL
查询服务器CPU、内存、磁盘、网络IO、队列、数据库占用空间等等信息
查询服务器CPU、内存、磁盘、网络IO、队列、数据库占用空间等等信息
281 5