La réponse la plus basique? Non. Le système d'exploitation gère la gestion de la mémoire de l'utilisateur - donnant à un processus autant de mémoire qu'il en a besoin et ne fournit pas grand-chose en termes de possibilité de modifier les performances du système. Cela n'aide pas beaucoup à essayer de comprendre si l'utilisation de la mémoire fait partie de l'équation pour expliquer pourquoi les serveurs Linux surpassent les serveurs Mac.
En raison du manque de "piratage" dans le système de mémoire virtuelle, vos meilleures options sont d'évaluer les performances de la mémoire virtuelle pour voir si c'est vraiment la raison pour laquelle vous rencontrez des problèmes de performances - le plus simple est d'utiliser vm_stat
ou d'utiliser le suivre en direct en utilisant vm_stat [number of seconds]
pour voir le nombre de pages qui se produisent. Le déplacement des pages inutilisées de la RAM vers le disque dur a un coût bien inférieur à celui de récupérer les pages du disque dur vers votre RAM. Une page en termes OS X fait référence à 4 Ko de données.
De plus, les processus 32 bits (par exemple Illustrator) ne peuvent pas accéder à plus de 4 Go, il est donc théoriquement possible d'avoir 2 Go d'espace libre et un processus à court de mémoire si vous avez installé 6 Go.
Sur votre bureau et sur les serveurs, je voudrais exécuter vm_stat 2
et vérifier la dernière colonne - en particulier lorsque vous rencontrez le délai de plusieurs secondes lorsque vous passez à dire Illustrator.
Pour savoir quelle est la taille réelle du swap, vous pouvez soit vérifier la taille du swap dans Activity Monitor, soit exécuter du -shc /var/vm/swap* | tail -n 1
.
L'utilisation du -sh /var/vm
a une mise en garde: sur les ordinateurs portables qui ont le mode de mise en veille prolongée (quoi que ce soit pour les 4 dernières années ou plus récent), il peut y avoir à sleepimage
peu près la taille de la quantité de mémoire que vous avez installée.
Jargon de la mémoire Mac OS X:
Filaire : cela fait référence au code du noyau et autres. Mémoire qui ne doit jamais être retirée de la RAM. Aussi connu comme mémoire résidente.
Partagé : mémoire partagée entre deux processus ou plus. Les deux processus afficheraient cette quantité de mémoire, il peut donc être un peu trompeur quant à la quantité de mémoire réellement utilisée.
Réel : il s'agit de l'utilisation de la mémoire "réelle" pour une application, telle que rapportée par task_info () - un décompte approximatif du nombre de pages physiques du processus en cours. (RSIZE)
Privé : il s'agit de la mémoire qu'un processus utilise uniquement de son propre chef et qui est utilisée dans la mémoire résidente. (RPRVT)
Virtuel : la quantité totale d'espace d'adressage dans le processus qui est mappée à quoi que ce soit - qu'il s'agisse d'un espace arbitrairement grand pour les variables ou quoi que ce soit - cela n'équivaut pas à l'utilisation réelle de la machine virtuelle. (VSIZE)
Actif : la mémoire actuellement étiquetée comme active et utilisée comme RAM.
Inactif : "La mémoire inactive n'est plus utilisée et a été mise en cache sur le disque. Elle restera en RAM jusqu'à ce qu'une autre application ait besoin d'espace. Laisser ces informations en RAM est à votre avantage si vous (ou un client de votre ordinateur) revenez plus tard. " - Aide Mac OS X
Gratuit : la quantité de RAM réellement disponible sans aucune donnée.
La meilleure documentation que je connaisse (et que j'ai pu trouver dans la recherche de suivi) est le propre article d' Apple sur la gestion de la mémoire sur leur site Web de développeur.
Autres sources utiles: liste de diffusion Darwin-dev: [ 1 ], [ 2 ] et un ancien article sur MacOSXHints . De plus, Mike Ash a publié une introduction de bon profane sur son blog
Il peut être possible (je ne l'ai pas essayé) de désactiver le système de mémoire virtuelle en exécutant sudo launchctl unload /System/Library/LaunchDaemons/com.apple.dynamic_pager.plist
puis en redémarrant afin que dynamic_pager (le programme qui effectue l'allocation de mémoire virtuelle) ne démarre pas. Cependant, parce que le système d'exploitation suppose qu'il dispose de mémoire virtuelle, vous pouvez vous retrouver très rapidement avec des problèmes. Pour le charger, exécutez la sauvegarde sudo launchctl load /System/Library/LaunchDaemons/com.apple.dynamic_pager.plist
(si nécessaire à partir du mode mono-utilisateur)