找回密码
 骑士注册

QQ登录

微博登录

搜索
❏ 站外平台:

Linux中国开源社区 技术 查看内容

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

2017-02-26 19:43    评论: 8 收藏: 1    

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

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

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,你首先需要安装依赖程序(开发工具)来编译并从源码构建程序。

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

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

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

Build CoreFreq Program

构建 CoreFreq 程序

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

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

$ sudo insmod corefreqk.ko
$ sudo ./corefreqd

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

$ ./corefreq-cli

CoreFreq Linux CPU Monitoring

CoreFreq Linux CPU 监控

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

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

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

$ ./corefreq-cli -h

CoreFreq 选项:

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

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

$ ./corefreq-cli -k

打印 CPU 细节信息:

$ ./corefreq-cli -u

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

$ ./corefreq-cli -i

如下启用计数器追踪:

$ ./corefreq-cli -c

有关更多信息和用法,请访问 CoreFreq 的 Github 仓库:https://github.com/cyring/CoreFreq

在本文中,我们评估了一个强大的 CPU 监控工具,这对于 Linux 专家或经验丰富的系统管理员来说可能比新手用户更有用。

通过下面的评论栏与我们分享你对这个工具或任何相关的想法。


作者简介:

Aaron Kili 是 Linux 和 F.O.S.S 爱好者,将来的 Linux 系统管理员和网络开发人员,目前是 TecMint 的内容创作者,他喜欢用电脑工作,并坚信分享知识。


via: http://www.tecmint.com/corefreq-linux-cpu-monitoring-tool/

作者:Aaron Kili 译者:geekpi 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

最新评论

我也要发表评论

来自法国的 Chrome 61.0|GNU/Linux 用户 2017-10-01 20:14 回复
System interrupts; voltage; memory controller : get last CoreFreq version in github.com/cyring/CoreFreq
[1]
编程浪子 [Chrome 56.0|GNU/Linux] 发表于 2017-02-28 09:22 的评论:
在我的机器上为什么运行起来后就core了?ubuntu 1604,完全按照步骤做的。
[2]
linux [Chrome 56.0|Mac 10.11] 发表于 2017-02-28 13:47 的评论:
github 上的 issue 有汇报这类问题么?
[3]
编程浪子 [Chrome 56.0|GNU/Linux] 发表于 2017-02-28 16:24 的评论:
暂时没有
[4]
linux [Chrome 56.0|Mac 10.11] 发表于 2017-03-01 21:17 的评论:
那建议你去提交 issue
编程浪子 [Chrome 56.0|GNU/Linux] 2017-03-02 09:52 9 回复
好,谢谢
来自湖南长沙的 QQ Browser 9.5|Windows 7 用户 2017-02-27 19:16 回复
很强,期待合并进上游的可能
kashu [Chromium 66.0|Xubuntu 14.04] 2017-02-27 08:47 回复
可以收藏一下

LCTT 译者

geekpi 💎 💎
共计翻译: 613 篇 | 共计贡献: 1515
贡献时间:2013-10-25 -> 2017-12-18
访问我的 LCTT 主页 | 在 GitHub 上关注我

收藏

返回顶部

分享到微信

打开微信,点击顶部的“╋”,
使用“扫一扫”将网页分享至微信。