web-dev-qa-db-fra.com

Transférer pour échanger les données de la mémoire du logiciel inactif fonctionnant en arrière-plan tout en conservant la RAM uniquement active?

Tout en exécutant 5 à 6 programmes en même temps (navigateur, machines virtuelles, terminal, éditeur de texte, explorateur de fichiers), certains d’entre eux (de temps en temps, toutes les 15 minutes) sont inactifs/inactifs (n'interagissent pas avec l'utilisateur, ne pas faire de calculs, etc.). Est-ce possible de:

  • faire transférer automatiquement les données de la mémoire des programmes inactifs de RAM vers Swap, et
  • "activation" instantanée (ou quelques secondes peut-être) (données en mémoire de Swap to RAM) lorsque l'utilisateur commence à interagir avec un logiciel (ou devient actif/est mis en avant-plan).

En gardant à l'esprit que la mémoire de swap est plus lente que RAM mais toujours suffisamment rapide pour ne pas geler l'interface utilisateur, il serait très utile de déplacer "l'attention de la RAM" sur de nombreux ordinateurs, pour différents programmes ou même au sein d'un seul programme (Imagine Navigateur consommant beaucoup de RAM Échangez les données de la mémoire des onglets ouverts en arrière-plan en conservant dans Ram uniquement l'onglet actif).

Est-ce quelque chose qui peut être fait aujourd'hui par n'importe quel moyen ou peut-être est-ce déjà partiellement ainsi?

2
Coding_is_Art

Automatiquement:

  • Oui, et c'est ce que vous avez maintenant: , le gestionnaire de mémoire Linux échange les programmes inutilisés sur disque et les programmes utilisés.
  • Cependant, le noyau est optimisé pour un serveur , pas un ordinateur de bureau, donc si vous voulez que le noyau permute plus tôt/plus tard, vous devez adapter votre swap et swappiness à votre cas d'utilisation.

Manuellement:

  • C’est possible en utilisant cgroups: vous pouvez choisir le programme qui reçoit ou n’obtient pas de RAM et qui a la priorité du processeur par rapport à un autre.
  • Les méthodes simples sont:
    • pour fermer tous les programmes que vous n'utilisez pas/dont vous n'avez pas besoin maintenant.
    • achetez plus RAM si vous devez tous les exécuter, le noyau ne se souciant pas des applications de premier plan ou d'arrière-plan, il se fera un plaisir d'échanger LibreOffice si un transfert FTP volumineux s'exécute en arrière-plan.

¯\_ (ツ) _/¯

3
Fabby