Quand dois-je utiliser /dev/shm/
et quand dois-je utiliser /tmp/
? Puis-je toujours compter sur leur présence à l'Unicef ?
Réponses
Trop de publicités?/dev/shm est utilisé pour la mémoire virtuelle partagée des pilotes de périphériques et des programmes spécifiques au système.
Si vous créez un programme qui nécessite un tas de mémoire virtuelle, celui-ci doit être mappé en mémoire virtuelle. Cela vaut doublement si vous avez besoin que plusieurs processus ou threads puissent accéder à cette mémoire en toute sécurité.
Le fait est que ce n'est pas parce que le pilote utilise une version spéciale de tmpfs que vous devez l'utiliser comme une partition tmpfs générique. Au lieu de cela, vous devriez simplement créer une autre partition tmpfs si vous en voulez une pour votre répertoire temporaire.
En PERL, avec un minimum de 8 Go sur chaque machine (toutes sous Linux Mint), j'ai pris l'habitude de faire des algorithmes complexes basés sur DB_File (structure de données dans un fichier) avec des millions de lectures et d'écritures en utilisant /dev/shm.
Dans d'autres langues, n'ayant pas de gigether partout, pour éviter les démarrages et arrêts dans le transfert de réseau (travaillant localement sur un fichier qui est situé sur un serveur dans une atmosphère client-serveur), en utilisant un fichier batch d'un certain type, je copierai le fichier entier (300-900MB) en une fois à /dev/shm, exécuterai le programme avec la sortie à /dev/shm, écrira les résultats en arrière au serveur, et supprimera de /dev/shm
Naturellement, si j'avais moins de RAM, je ne ferais pas cela. Normalement, le système de fichiers en mémoire de /dev/shm est lu comme une taille correspondant à la moitié de votre RAM disponible. Cependant, l'utilisation ordinaire de la RAM est constante. Vous ne pourriez donc pas vraiment faire cela sur un périphérique de 2 Go ou moins. Pour transformer la paraphrase en hyperbole, il y a souvent des choses dans la RAM que même le système ne signale pas bien.
- Réponses précédentes
- Plus de réponses