2010-11-23 5 views
5

Más específicamente: Quiero encontrar esta información desde dentro del programa, preferiblemente justo antes de que comience a intercambiarse para que pueda reaccionar. Hasta ahora he encontrado:¿Cómo obtengo información sobre Linux si mi programa está intercambiando o no?

  • información dentro /proc, que no es muy útil

  • mincore llamada al sistema que parece estar disponible en Linux y BSD, pero me obliga a pasar en todas las Páginas que sigo interesado en (podría ser suficiente, pero es un poco tedioso)

¿Alguna idea más?

+0

Además de la supervisión (que luego puede configurar las alarmas) también puede ver/proc/sys/vm/swappiness, pero esto depende de su aplicación y de los demás usos que tenga su máquina. Quizás también puedas desactivar el intercambio por completo (si tu aplicación puede manejar situaciones OOM). – Zlatko

+0

Eso no tiene sentido. Estoy hablando de PyPy (que es un intérprete de Python) que puede intercambiar memoria por velocidad. Es poco probable que tenga privilegios de establecer swapiness. – fijal

Respuesta

2

vmstat

Para ejecutar cada 2 segundos, se dice "vmstat 2". Se le da una salida como:

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 

El "si" y "por lo que" las columnas son "intercambio-in" y "Cambio de equipo". Swapd es la cantidad de memoria que hay en el dispositivo de intercambio. Swapd debe ser estable, y si y tan cero.

Recuerde:

realidad no se debe preguntar "¿es mi programa de intercambio" - en contraposición a "es el sistema de intercambio". Tu programa puede hacer que otros intercambien - otros pueden hacer que los tuyos intercambien, etc. De cualquier manera, cuando eso suceda - performance d ... i..e ... s ....

+0

Bien, esto es lo que quise decir :-) – fijal

Cuestiones relacionadas