2010-11-23 38 views
5

Plus précisément: Je veux trouver cette information à l'intérieur du programme, de préférence juste avant de commencer à échanger pour pouvoir réagir. Jusqu'à présent, je trouve:Comment obtenir des informations sur Linux, que mon programme permute ou non?

  • information à l'intérieur /proc, ce qui est très utile

  • mincore syscall qui semble être disponible sur linux et bsd, mais me demande de passer dans toutes les pages que je suis intéressé par (peut-être assez, mais c'est un peu fastidieux)

Plus d'idées?

+0

En plus de la surveillance (qui vous pouvez ensuite configurer pour les alarmes), vous pouvez également jeter un oeil à/proc/sys/vm/swappiness, mais cela dépend de votre application et des autres utilisations de votre machine. Peut-être que vous pouvez également désactiver complètement l'échange (si votre application peut gérer les situations OOM). – Zlatko

+0

Cela n'a pas de sens. Je parle de PyPy (qui est un interpréteur python) qui peut échanger de la mémoire pour la vitesse. Il est peu probable d'avoir des privilèges de réglage swapiness. – fijal

Répondre

2

vmstat

Pour exécuter toutes les 2 secondes, vous dites "vmstat 2". Il vous donne une sortie comme:

procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu------ 
r b swpd free buff cache si so bi bo in cs us sy id wa st 
0 0  0 16124 431352 439000 0 0  4  2 37 18 0 0 100 0 0 

Le "si" et "si" colonnes sont "swap in" et "swap out". Swapd correspond à la quantité de mémoire disponible dans le périphérique d'échange. Swapd devrait être stable, et si et donc zéro.

Rappelez-vous:

Vous ne devriez pas vraiment demander "est mon swapping programme" - par opposition à "est le système swapping". Vous programmez peut provoquer l'échange des autres - d'autres peuvent faire permuter le vôtre, etc. De toute façon, quand cela arrive - performance d ... i..e ... s

+0

Oui, c'est ce que je voulais dire :-) – fijal