5 votes

Mémoire virtuelle Mac : comment faire pour qu'OS X crée des fichiers d'échange (pages) aussi librement avec un démarrage normal qu'avec un démarrage sécurisé (swapfile1 etc.)

Contexte

Quand mon MacBookPro5,2 avec 8 GB de mémoire démarre en mode sans échec Je vois que le système d'exploitation cause afficheur dynamique(8) pour créer des fichiers d'échange d'une manière relativement libre. Dans le système de fichiers que je dédie à l'échange, les frères et soeurs de

/Volumes/swap/swapfile0

sont créés très rapidement. L'utilisation simple d'une application semble entraîner une augmentation du nombre de fichiers d'échange par rapport à une utilisation comparable de cette application lors d'un démarrage normal.

Performance avec sûr démarrer - avec une masse supérieure à la normale de fichiers swap externes - est remarquablement bien . J'aimerais donc faire des expériences :

  • un même approche sans restriction des fichiers d'échange avec un normal botte.

Question

Comment puis-je faire en sorte que le système d'exploitation se comporte de telle sorte qu'une masse supérieure à la normale de swapfiles soit créée par dynamic_pager ?

Je suis prêt à accepter les risques qui peuvent être associés à un mauvais réglage.

Related

Pourquoi la mémoire peut-elle être plus importante en mode sécurisé qu'en mode normal ?

Les réponses apportées là-bas peuvent aider à trouver des réponses ici.


Enquête préliminaire

J'ai couru sysctl -a en mode normal et en mode sécurisé. Je vois des différences mais (à moins que je ne manque quelque chose) rien qui explique la liberté associée à un démarrage sécurisé.

https://apple.stackexchange.com/a/72732/8546 de @Quantumpanda donne à réfléchir, mais la question posée est, d'une certaine manière, à l'opposé de ce que je souhaite.

Dans Server Fault, Optimisation des performances de FreeBSD. Sysctls, loader.conf, noyau est populaire, mais une grande partie de cette information semble orientée vers les réseaux.

Premières expériences

L'essence de cette question était à l'origine :

  • Comment puis-je obtenir dynamic_pager pour se comporter avec un normal comme il se comporte avec un sûr Le démarrage ?

- et j'ai donc expérimenté des valeurs pour -S y -H .

option dynamic_pager -S

En 2003, lorsque -H y -L étaient hire_point y layoff_point la valeur par défaut file_size était de 20000000 Mac OS X en bref , page 595 ). Pour les versions plus récentes du système d'exploitation, certains utilisateurs préfèrent une filesize qui est environ cinquante fois plus grand, 1,07 Go sur le disque :

  • 1073741824

option dynamic_pager -H

Avec et sans une valeur pour -S j'ai expérimenté avec différents high-water-trigger y compris celle suggérée par dynamicpagerwrapper :

  • 209715200

Aucun n'a eu l'effet escompté.


Références

S'attaquer à la stratégie désuète de permutation et de pagination dans OSX ? | dropsafe (2010-03-01, mis à jour en 2012)

source_pager_wrapper dynamique de dynamicpagerwrapper - enveloppe de performance pour /sbin/dynamic_pager sur OSX

Dans la bibliothèque du développeur Mac :

2voto

Old Pro Points 5634

La raison pour laquelle tous ces fichiers d'échange ont été créés si rapidement en mode sans échec est que dynamic_pager est revenu à une taille d'échange initiale de 64 Mo. Combien de fichiers swap avez-vous vu ? Combien voulez-vous en voir ? Combien en voyez-vous ?

Actuellement, sur mon Mac Pro (ordinateur de bureau) fonctionnant sous OS 10.8.3, j'ai 7 fichiers d'échange (numérotés de 0 à 6). Est-ce que c'est ce que vous voulez ? En fait, puisque vous l'avez souligné, je vais essayer de réduire ce nombre à 2.

Si vous voulez vraiment créer beaucoup de fichiers d'échange, il suffit de définir -S 67108864

BTW, 1073741824 = 2^30 = 1 GiB

Suivi

Il s'avère qu'il y a un bug dans dynamic_pager (au moins sous Mountain Lion 10.8.4) où le paramètre -S 2147483648 (= 2 GiB) échoue à cause d'une sorte d'erreur de conversion de 32 bits.

Cannot extend paging file size /private/var/vm/swapfile0 to 18446744071562067968!

2147483648 en tant que 32 bits signé est en fait -2147483648 ou 0x80000000 qui est étendu à un nombre de 64 bits en étendant le MSB et transformé en 0xFFFFFFFF80000000 qui est ensuite converti en un 64 bits non signé qui est 18446744071562067968 ou 2 GiB * 8 GiB. C'est fou. Donc, après avoir modifié les options du pager dynamique, recherchez les messages d'erreur dans les journaux de la console.

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X