A diferença é se as memórias "buffers" e "cacheadas" estão ou não incluídas na contagem "usada".
Geralmente, a memória do sistema Linux é usada pelo kernel para duas finalidades: processos e cache / buffers de arquivo / rede. Se você olhar de perto para a saída de free
, isso já é mostrado:
total used free shared buffers cached
Mem: 3994908 3962396 32512 0 100852 1477032
-/+ buffers/cache: 2384512 1610396
Swap: 8000328 28468 7971860
Se você adicionar "buffers" e "cache" e, em seguida, subtrair isso da coluna "used", você obterá a segunda linha em "used" (a linha que começa com -/+ buffers/cache
), que mostra 2.3G (2384512) em uso, que corresponde à memória relatada em uso que o Monitor do Sistema está relatando (está ignorando os buffers / armazenados em cache porque eles irão embora para liberar espaço para mais processos).
Seu grep contra /proc/meminfo
corresponde realmente à coluna "livre" da primeira linha (32512 está perto o suficiente de 34536 - provavelmente mudou entre as duas saídas de comando).