
К сожалению, похоже, что индикатор cpufreq показывает только значок, указывающий пропорциональную частоту, а не точное число, которое мне хотелось бы видеть.
Есть ли какой-нибудь индикатор, показывающий реальную частоту процессора в реальном времени? Может быть, для каждого ядра?
В идеале я хотел бы увидеть и частоту, и использование на ядро, но ответы на этот вопрос:
Есть ли в приложении индикатор загрузки ЦП по ядрам?
предполагают, что использование каждого ядра в настоящее время недостижимо.
решение1
Для такого пользовательского индикатора можно использовать indicator-sysmonitor
Установить
indicator-sysmonitor
sudo add-apt-repository ppa:fossfreedom/indicator-sysmonitor sudo apt-get update sudo apt-get install indicator-sysmonitor
Запустить его
- Нажмите на его индикатор → Настройки → вкладка Дополнительно.
Нажмите «Новый»:
Датчик:
freq
Команда:awk '/cpu MHz/{printf(" %d",$4)}' /proc/cpuinfo
- Измените метку нового датчика на:
cpu: {cpu} mem: {mem} freq:{freq}
. Сохранять
Использованная литература:
решение2
indicator-multiload
Для установки пользовательского индикатора можно использовать :
Установить
indicator-sysmonitor
:sudo apt-get install indicator-multiload
Запустить его
Нажмите на негоИндикатор→Предпочтения→Индикаторные элементы
НажмитеДобавлятьи введите:
freq $(frequency(cpufreq.cur1))
Переместите его на самый верх.
Добавьте еще один
freq
без значения.Закрыть, нажавЗакрывать
решение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 года после запроса, но, возможно, когда-нибудь...