Ho già cercato possibili soluzioni, come ad esempio How to monitor the computer's cpu, memory, and disk usage in Java?. Ma la memoria spesa in buffer e cache non è menzionata da nessuna parte?Come monitorare la memoria libera (compresi i buffer e la cache) in java?
Per esempio, su Linux, uscita di free -m: uscita
total used free shared buffers cached Mem: 2011 1835 175 0 309 847 -/+ buffers/cache: 678 1333 Swap: 1998 0 1998
ho già provato di sigar, che riporta la memoria libera come 175 MB.
La causa di questa domanda è come rilevare quando il sistema operativo ha poca memoria rimasta? Nell'output precedente di free -m
, 175 MB sembrano piuttosto bassi; ma aggiungendo buffer e cache è evidente che la memoria libera è in realtà 1333 MB su 2 GB.
Per riepilogare, utilizzando java, è possibile ottenere il valore 1333 MB come valore della memoria libera? Come ho già detto, finora so solo come ottenere un valore di 175 MB.
Poiché è probabile che la risposta sia specifica del sistema operativo, è possibile specificare quale sistema operativo (i) è necessario supportare. Solo Linux? – NPE
Bene, il target è linux, ma preferirei se si trattasse di una soluzione multipiattaforma. Non ho la macchina Windows a disposizione per controllare, quindi non so che Windows riporti anche la memoria cache/buffer separatamente. Gli esperti di Windows sono benvenuti: D – bbaja42
Da ciò che ho raccolto [qui] (http://www.codinghorror.com/blog/2006/09/why-does-vista-use-all-my-memory.html), basato su immagine che mostra Windows Task Manager, Windows ha anche la separazione della memoria totale, memoria libera e memoria cache. – bbaja42