O uso de memória de software típico é exagerado?

O uso de memória de software típico é exagerado?

Suponha que vários processos estejam usando a mesma biblioteca compartilhada (como Gtk). Presumivelmente, eles são mmapo arquivo da biblioteca e, fisicamente, a RAM é compartilhada?

Porém, o tamanho da biblioteca é adicionado ao tamanho da memória de cada processo, conforme mostrado no monitor do sistema, levando a números exagerados. Isso é preciso?

Responder1

A contabilidade de memória real separa a memória compartilhada da memória privada, mas algumas ferramentas as agregam ao exibir o uso da memória do processo. Além disso, os cgroups cobrarão o processo pelo uso da memória, portanto, se você tiver um limite máximo de memória nos cgroups, isso conta.

Isso não exagera o uso de memória do processo – ele realmente está usando essa memória. Mas se você observar o uso total de memória de um grupo de processos e observar apenas os totais combinados, os resultados serão inflacionados em relação ao uso real. Não há uma maneira simples de saber quantas vezes uma biblioteca compartilhada está sendo reutilizada sem pesquisar nas bibliotecas que cada processo está usando, embora isso deva ser contabilizado corretamente em cgroups.

Portanto, se você deseja saber o verdadeiro uso da memória de um grupo de processos e se sente justificado em adicioná-los todos ao mesmo cgroup de memória, isso deve lhe dar uma resposta correta.

informação relacionada