显示当前 CPU 频率和使用情况的指示器

显示当前 CPU 频率和使用情况的指示器

不幸的是,cpufreq 指示器似乎只显示一个表示比例频率的图标,而不是我希望看到的精确数字。

有没有实时显示实际 CPU 频率的指标?也许每个核心都有?

理想情况下,我希望看到每个核心的频率和使用情况,但这个问题的答案是:

是否有一个应用程序指标可以显示核心的 CPU 使用率?

这表明现在每个核心的使用量已经超出了预期。

答案1

您可以使用 indicator-sysmonitor 来实现此类自定义指标

  1. 安装indicator-sysmonitor

    sudo add-apt-repository ppa:fossfreedom/indicator-sysmonitor
    sudo apt-get update
    sudo apt-get install indicator-sysmonitor
    
  2. 运行

  3. 点击其指示器 → 首选项 → 高级选项卡
  4. 单击“新建”:

    传感器:freq命令:awk '/cpu MHz/{printf(" %d",$4)}' /proc/cpuinfo

  5. 将新的传感器更改为标签:cpu: {cpu} mem: {mem} freq:{freq}
  6. 节省

    指标-sysmonitor cpu核心频率

参考:

答案2

您可以使用indicator-multiload设置自定义指标:

  1. 安装indicator-sysmonitor

    sudo apt-get install indicator-multiload
    
  2. 运行

  3. 点击其指标优先指标项目

  4. 点击添加并输入:

    freq $(frequency(cpufreq.cur1))
    
  5. 将其移至最顶部。

  6. 添加另一个freq没有值的。

  7. 点击关闭关闭

答案3

我按照这个教程创建了指示器小程序:

http://conjurecode.com/create-indicator-applet-for-ubuntu-unity-with-python/

并想出了以下脚本。它根据 cpuinfo 输出显示每个核心的频率指示器。不是很强大,但似乎可以完成工作。

#!/usr/bin/env python

import sys
import gtk
import appindicator
import random
import time
import os
import re

PING_FREQUENCY_MS = 1000
INDICATOR_NAME = "cpu-indicator"
ICON_PATH = "/usr/share/unity/icons/panel-shadow.png"
APP_CATHEGORY = appindicator.CATEGORY_APPLICATION_STATUS

def cpu_freqs_string():
    return os.popen("cat /proc/cpuinfo | grep MHz").read()

def extract_freqs(s):
    return re.sub("[^(0-9|\t|.)]", "", s).strip().split("\t") 

def cpu_freqs():
    freqs_only = extract_freqs(cpu_freqs_string())
    freqs_in_ghz = [float(x) / 1000 for x in freqs_only if x != ""]
    return " | ".join(["%.1f" % freq for freq in freqs_in_ghz]) 

class CpuIndicator:
    def __init__(self):
        self.ind = appindicator.Indicator(INDICATOR_NAME, ICON_PATH, APP_CATHEGORY)
        self.ind.set_status(appindicator.STATUS_ACTIVE)
        self.ind.set_menu(gtk.Menu())

    def main(self):
        gtk.timeout_add(PING_FREQUENCY_MS, self.update_value)
        gtk.main()

    def update_value(self):
       self.ind.set_label(cpu_freqs())
       return True

    def quit(self, widget):
        sys.exit(0)

indicator = CpuIndicator()
indicator.main()

顺便说一下,扩展 indicator-multiload 以显示每个核心的使用情况的想法可以在这里找到:

https://bugs.launchpad.net/ubuntu/+source/indicator-multiload/+bug/1173972

提出请求两年后仍未实施,但也许有一天会实施……

相关内容