Swap énorme avec SSD et beaucoup de RAM

<...>
A noter cependant, côté gestion pourrie de la mémoire : entre le moment où j'ai mis en place le purge croné ( :) ) et mon reboot, j'avais toujours beaucoup de mémoire libre (plusieurs Go) et très peu de mémoire inactive, mais le swap est toujours resté très important (> 4 Go), donc une fois qu'il a utilisé le swap il ne le lâche plus, le bougre.

Donc tout baigne dans le bonheur :zen:
Normalement, le programme s'occupant de gérer la pagination de la mémoire doit, quand il a un peu de temps devant lui, rapatrier ce qu'il peut pour condenser le swap (le défragmenter, en quelque sorte).
Ça marche un peu mais pas si bien que ça. Du coup, effectivement, quand il y a du swap, il est quasiment impossible de revenir en arrière, en-deça d'un certain seuil.
Par exemple, en ce moment précis, mon MBP utilise 3.4 MB de swap (alors qu'il a 2.27 GB de libre et 1.04 d'inactive...) Néanmoins, il a alloué un deuxième fichier de 64 MB, portant le swap à 128 MB. Le fait d'appeler le programme de purge à la rescousse permet de limiter les degâts, mais pas de recouvrer un fonctionnement correct.

C'est sans doute dû à une optimisation fautive (conservation des bibliothèques en mémoire pour lancement plus rapide des applications), qui se révèle contre-productive. Il est assez navrant que Apple n'ait jamais fait l'effort de régler ça, depuis le temps.
 
Je voulais quand même en rajouter une couche : après reboot, la méthode du purge cronisé conserve un résultat est spectaculaire, j'en suis à 3 jours 4 heures de uptime et côté mémoire :

Capture%20d%E2%80%99%C3%A9cran%202013-01-27%20%C3%A0%2017.54.20.png


Voila qui est plus que satisfaisant !
 
Je vais en rajouter une autre couche : ça fait 13 jours depuis mon dernier reboot et je suis pratiquement sur un seul projet boinc (suite à une action de groupe à laquelle j'ai participé durant 2 semaines), donc exit les vas et vient permanents de pleins d'applications boinc différente en taille (et durée). Donc l'état de la mémoire était à peu près comme ci-dessus.

Puis ce week-end l'action de groupe s'est terminée, je suis revenu en mode normal (plein de projets différents qui font charger et décharger des applis différentes en mémoire tout le temps), et là, horreur, avant hier j'ai constaté le retour du swap et de la grosse mémoire inactive et de la mémoire libre rikiki. Mon sang ne fit qu'un tour, je me suis dit que le cron du purge ne marchait peut-être plus (je n'ai d'ailleurs toujours pas trouvé de moyen de confirmer quand il marche, ou pas, dans la console par exemple), du coup je l'ai passé à 15 mn et revalidé depuis cronix. Sans rebooter.

Et là, 1 jour plus tard, non seulement c'est revenu "à la normale" (bonne mémoire libre et peu d'inactive), mais en plus, contrairement à ce que j'avais dit plus haut, le swap a été peu à peu (presque) résorbé : j'avais presque 3 Go de swap et je constate que je suis retombé à 1 Go.

Comme quoi il ne faut jamais vendre la peau de l'ours avant de l'avoir nettoyée.
 
Si tu veux être averti, enrobe la commande de purge d'un script qui enverra un mail (ou une notification quelconque).
 
Hum, un enrobage un peu trop avancé pour mes capacités je le crains... je me suis arrêté aux batchs MS-DOS il y a bien des années (j'en faisais de beaux pourtant), la pratique d'OS X m'a rendu bien paresseux j'en ai peur...
 
Pour compléter un peu, en fait ça marchait pas si bien que ça avec cron, des fois le purge ne faisait plus du tout (*).

J'ai remplacé (après quelques galères) ça par du launchctl et maintenant ça marche tout le temps.

(*) j'ai des problèmes avec cron, le lancement journalier de mon clone système avec SuperDuper cesse régulièrement de fonctionner, leur support me dit "qu'ils ne font qu'utiliser cron" mais j'ai lu que cron n'est pas la préco Apple qui pousse à l'usage de launchctl, mais j'ai pas réussi à le configurer pour SuperDuper, pour le purge c'était beaucoup plus simple (pas de paramètres, etc) et ça marche.
 
cron reste pratique et, d'une certaine manière, complémentaire de launchd qui est plutôt touffu.

D'ailleurs, cron est lancé par launchd : il est donc inclus dans la configuration générale où il garde sa place. Si un jour Apple s'en débarrassait, il serait aisé de le réinstaller.
 
Bizarre...mais n'est-ce pas que ces swaps affectent la durée de vie du SSD qui n'est pas habitué à des entrées et sorties de données trop fréquentes ?
 
@bompi : Peut-être mais "mon cron" cesse de fonctionner, parfois, et repart.

Je pense que ça date justement de l'époque ou j'ai déplacé le système et les applis sur mon SSD externe et que mon profil est sur le DD, mais j'ignore la raison.

Avec launchctl le purge marche en permanence, le SuperDuper je n'ai pas réussi à le configurer avec launchctl et "des fois il marche, des fois il marche pas" (avec cron). Le support / dev de SD m'avait pas mal aidé il y a plusieurs mois et aucune solution n'était apparue. La par exemple ça fait une semaine que SD marche bien (le backup se fait toutes les nuits), il peut y avoir des périodes de plusieurs jours où il cesse de fonctionner, même si je redéfinis le schedule...

@Djipsy5 : je comprends pas trop ta question, quand il swappait de trop bien sûr que ce n'était pas bon... mais ça, c'était avant.
 
Il est possible que le 'cron ça marche ou pas' dépende de l'heure à laquelle l'action est planifiée et si l'ordinateur est, ou non, actif.
Apparemment tu es toujours sous Snow Leopard, pour lequel (si ma mémoire est bonne) les tâches programmées avec cron ne sont exécutées que si l'ordinateur est actif au moment prévu.

Si on veut que les actions soient exécutées dès que possible, il faut alors ajouter anacron qui sait bien rattraper le coup
 
24/24 7/7 mais la je suis en wacances, la derniere semaine avant mon depart il a marche tous les jours, le crontab est ok et pourtant des fois ca le fait pas...
 
Dans ce cas, il faut regarder les journaux ; voire adapter l'action en l'encapsulant dans un script qui logge l'action effectuée.
 
Histoire de rigoler un peu, pourquoi pas...
 
Depuis que je suis reviendu de vacances, il marche... à l'époque j'avais cherché dans les journaux mais rien trouvé de probant.

Quant à faire un script qui encapsule, pendant mes vacances je me suis surtout occupé de décapsuler des bières :D
 
Certes.

Le premier commentaire est judicieux. Le troisième est incomplet : depuis Lion, purge est intégré au système et XCode n'est plus nécessaire (purge est dans le paquetage com.apple.pkg.BSD).
 
Effectivement précision qui a son importance.
Ceci-dit il son vieux MacPro à semble t'il mal vécu sa MAJ vers lion ... ce qui explique peut-être cela :D

;)
 
Par contre, chez moi, je n'arrive pas a avoir du swap :D
Depuis que je suis ce post je m&#8217;évertue à essayer de créer un swap (avec moult applications : Toast/handbrake...) sans succès !

Au mieux j'arrive à ça :



Etonnant non ?
 
Si je ne lance pas le programme de purge régulièrement, ça finit toujours avec du swap.
Même dans ce cas, le système finit par s'en approcher dangereusement au bout d'un moment,c-à-d que la partie libre diminue et que la partie inactive augmente et ne diminue plus, mais c'est aussi lié à la nature d'UNIX. J'ai ML et 8 GB de RAM.
Reste que, tout en ayant des GB de mémoire libre (pas seulement inactive mais libre !), certains processus réussissent à provoquer la création d'un peu de swap (ça monte jusqu'à 512 MB en général). Ça doit pouvoir s'expliquer mais c'est clairement un bug. Je n'ai pas identifié le coupable avec assurance mais ça semble bien être lié à la doublette fatidique Spotlight/Time Machine.