Indicador que muestra la frecuencia y el uso actual de la CPU

Indicador que muestra la frecuencia y el uso actual de la CPU

Desafortunadamente, parece que el indicador cpufreq solo muestra un ícono que indica la frecuencia proporcional en lugar del número preciso que me gustaría ver.

¿Existe algún indicador que muestre la frecuencia real de la CPU en tiempo real? ¿Quizás para cada núcleo?

Idealmente me gustaría ver tanto la frecuencia como el uso por núcleo, pero las respuestas a esta pregunta:

¿Existe un indicador de aplicación para el uso de CPU por núcleo?

sugieren que el uso por núcleo está fuera de alcance en este momento.

Respuesta1

Puede utilizar Indicator-sysmonitor para dicho indicador personalizado.

  1. Instalarindicator-sysmonitor

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

  3. Haga clic en su indicador → Preferencias → pestaña Avanzado
  4. Haga clic en Nuevo:

    Sensor: freqComando:awk '/cpu MHz/{printf(" %d",$4)}' /proc/cpuinfo

  5. Cambie el nuevo sensor a la etiqueta: cpu: {cpu} mem: {mem} freq:{freq}.
  6. Ahorrar

    Indicador-sysmonitor frecuencia de núcleos de CPU

Referencias:

Respuesta2

Puede utilizar indicator-multiloadpara configurar un indicador personalizado:

  1. Instalar indicator-sysmonitor:

    sudo apt-get install indicator-multiload
    
  2. Ejecutarlo

  3. Haga clic en suIndicadorPreferenciasElementos indicadores

  4. Hacer clicAgregare ingresa:

    freq $(frequency(cpufreq.cur1))
    
  5. Muévelo hasta lo más alto.

  6. Añade otro freqsin valor.

  7. Cerrar haciendo clicCerca

Respuesta3

Seguí este tutorial sobre la creación de subprogramas de indicadores:

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

Y se le ocurrió el siguiente guión. Muestra un indicador con la frecuencia de cada núcleo según la salida de cpuinfo. No es muy robusto pero parece hacer el trabajo.

#!/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()

Por cierto, aquí se puede encontrar una idea para ampliar el indicador de carga múltiple para mostrar el uso por núcleo:

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

No implementado 2 años después de la solicitud, pero tal vez algún día...

información relacionada