Alerta si la memoria RAM disponible es demasiado baja

Estoy buscando un programa de Windows 7 que pueda darme una alerta (por ejemplo, una ventana emergente alrededor de la bandeja de iconos) siempre que la relación RAM disponible/RAM total esté por debajo de un umbral configurable. Gratis es mejor.

¿Desactiva la memoria virtual (o la limita severamente)? De lo contrario, ¿Windows 7 no paginará siempre la memoria cuando esté baja?
@RockPaperLizard sí, la memoria virtual está apagada para evitar el intercambio
Bien, ¡ahora tiene sentido! ;)
En Linux, el 100% de la memoria que se usa es normal, en realidad es algo bueno. ¿No es lo mismo en Windows?
@NicolasRaoul es lo mismo. (memoria física libre vs disponible)

Respuestas (2)

Estoy usando una herramienta similar en forma de complemento liviano para el cliente de mensajería instantánea (el cliente se usa como una especie de contenedor), pero solo requiere unas pocas líneas de código, por lo que aquí está la versión "independiente": memwarning . No tiene configuración, por defecto avisa cuando el uso total de la memoria es > 90% comprobando el uso cada dos minutos. No muestra ninguna ventana, solo se ejecuta en segundo plano. Si se excede el uso de la memoria, emite tres pitidos con el altavoz de la computadora y vuelve a verificar después de 1 minuto. Use Code::Blocks/MinGW para cambiar la configuración (modificando ThreadProc()) y/o reconstruir.

Una desventaja de usar la función GlobalMemoryStatusEx() es que trata la memoria caché del sistema como usada, lo que puede dar una advertencia antes de lo esperado. No tengo idea de cómo verificar el uso de la memoria sin los búferes del sistema.

Aquí hay un script de Powershell que acabo de escribir. Para usarlo abre "Powershell" (Está en el menú de inicio, ya está instalado) y ejecútalo:

while ($true) {
    $available = (get-counter -counter "\Memory\Available Bytes").CounterSamples[0].CookedValue
    $thresholdInBytes = 100 * 1024*1024;

    echo $available

    if($available -lt $thresholdInBytes) {
        $wshell = New-Object -ComObject Wscript.Shell

        $wshell.Popup("Low RAM available",0,"Ok",0x1)   
    }
    start-sleep -s 5
}

Cambió el valor del umbral si desea un valor que no sea 100 MB de RAM. Lo estoy licenciando con la WTFPL.