Nós incorporamos o sistema Linux sem troca.
Atualmente, devemos acionar o alarme quando o% de uso da memória aumentar durante um limite de threashold. E reinicie quando o uso da memória% aumentar acima de um limite (mais alto).
Por que queremos fazer isso: Se algum programa vazar, poderemos reiniciar com segurança, antes que o kernel comece a matar nossos processos (o que pode levar à corrupção ou indisponibilidade dos dados).
Mas temos um problema:
Como contar o uso de memória em% que pode ser usado para nosso propósito?
Tentamos contar o uso da memória usando valores de / proc / meminfo:
/ # cat /proc/meminfo
MemTotal: 126744 kB
MemFree: 58256 kB
Buffers: 16740 kB
Cached: 31308 kB
SwapCached: 0 kB
Active: 37580 kB
Inactive: 24000 kB
Sem sucesso:
(MemTotal - MemFree)
não é utilizável, porque contém, por exemplo, caches.
(MemTotal - MemFree - Buffers - Cached)
ignorou o efeito de Inactive
. Por isso, também fornece valores de uso de memória muito grandes.
(MemTotal - MemFree - Buffers - Cached - Inactive)
é inutilizável, porque o resultado pode ser negativo.