Você parece ter dois requisitos conflitantes. "Eu quero alocar 4G para este host" e "Eu não quero que o host use 4G".
Além desse fato, o que faz você pensar que perder esses caches faz com que o hipervisor deixe cair a memória no mapa?
No hypervisor (host virtualbox), pode haver demanda por paging acontecendo - isso é bom, mas o que você acha que está acontecendo provavelmente não é.
Existem dois estágios quando a memória virtual é solicitada.
- O que é confirmado
- O que é alocado
Quando a VM inicia, ela se compromete a 4G de memória. Isso é o quanto pode ter, mas não necessariamente o quanto ele realmente usará.
Quando a VM começar a consumir memória, ela alocará as páginas conforme necessário, até o que foi confirmado. A alocação coloca a memória no ram / swap.
Em seu cenário, na verdade, a VM pode (eu não sei o modelo de caixa virtual, mas vou tomar sua palavra para ele) comprometer-se a 4G de memória. Conforme a VM preenche a pagecache, ela alocará toda a memória, como você mencionou. O que não acontecerá acontece, no entanto, é o virtualbox liberando a memória que foi alocada quando você coloca os caches na VM.
Assim, ao liberar o cache de páginas, enquanto parece que a memória está livre na VM, a memória ainda está alocada e usada para o hipervisor.
Como tal, você não salvou nenhuma memória no laptop host, na verdade, você acabou de desperdiçar, porque a memória que poderia ter sido usada para impedir pesquisas de E / S na VM não está mais disponível.