現在の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

リクエストから 2 年経っても実装されていませんが、いつか実装されるかもしれません...

関連情報