<< Chapter < Page Chapter >> Page >

Después, requiere saber cuánta memoria tiene su sistema. Desafortunadamente, no existe un comando UNIX estándar para eso. En los sistemas RS/6000, /etc/lscfg se lo dice. En una máquina SGI, /etc/hinv lo hace. Muchas implementaciones de UNIX Sistema V tienen un comando /etc/memsize . En un derivado de Berkeley, puede teclear:


% ps aux

Este comando le devuelve un listado de todos los procesos ejecutándose en la máquina. Encuentre el proceso con el valor más grande en la columna %MEM . Divida el valor en el campo RSS entre el porcentaje de memoria usado, para obtener un valor aproximado de cuánta memoria tiene su máquina:


memory = RSS/(%MEM/100)

Por ejemplo, si el proceso más grande muestra un uso de memoria del 5% y un tamaño de conjunto residente (RSS, resident set size) de 840 KB, su máquina tiene 840000/(5/100) = 16 MB de memoria. ¡También puede usted reiniciar su máquina! Ella le dirá cuánta memoria tiene disponible al arranque. Si la respuesta del comando size muestra un total cercano a la cantidad de memoria que tiene, hay una buena posibilidad de que ocurra intercambio de páginas cuando lo ejecute - especialmente si está realizando otras cosas en la máquina al mismo tiempo.

Comprobando los fallos de página

Sus herramientas de monitoreo de rendimiento del sistema le indican si su programa está realizando intercambio de páginas. Algo de intercambio está bien; los fallos de página ocurren de manera natural conforme se ejecuta el programa. Sin embargo, sea cuidadoso si está compitiendo por los recursos del sistema con otros usuarios. La imagen que obtendrá no será la misma que cuando tenga la computadora para usted solo.

Para comprobar la actividad de intercambio de páginas en un sistema UNIX derivado de Berkeley, use el comando vmstat . Comúnmente la gente lo invoca con un incremento de tiempo, de forma que reporte el intercambio de páginas a intervalos regulares:


% vmstat 5

Este comando produce una línea de salida cada cinco segundos:


procs memory page disk faults cpu r b w avm fre re at pi po fr de sr s0 d1 d2 d3 in sy cs us sy id0 0 0 824 21568 0 0 0 0 0 0 0 0 0 0 0 20 37 13 0 1 98 0 0 0 840 21508 0 0 0 0 0 0 0 1 0 0 0 251 186 156 0 10 900 0 0 846 21460 0 0 0 0 0 0 0 2 0 0 0 248 149 152 1 9 89 0 0 0 918 21444 0 0 0 0 0 0 0 4 0 0 0 258 143 152 2 10 89

Como puede observar, produce mucha información. Para nuestros propósitos, los campos importantes son avm , que significa "memoria virtual activa" ( active virtual memory ), fre o "memoria real libre" ( free real memory ), y los campos pi y po , cuyos números muestran la actividad de paginación. Cuando la cantidad en fre cae a valores cercanos a cero, y el campo po muestra mucha actividad, es una indicación de que el sistema de memoria está saturándose.

En una máquina con SysV, la actividad de paginación puede observarse mediante el comando sar :


% sar -r 5 5

Este comando le muestra la cantidad de memoria libre y el espacio de intercambio disponible al instante. Si el valor de memoria libre está bajo, puede asumir que su programa realizará intercambio de páginas:


Sat Apr 18 20:42:19 [r]freemem freeswap 4032 82144

Como mencionamos previamente, su desea ejecutar un trabajo mayor que el tamaño de memoria que posee su máquina, debe aplicar para la actividad de intercambio de páginas el mismo consejo que aplica para la actividad de cache. Por cierto, ¿está recibiendo el mensaje “Out of memory?” Si está ejecutando csh , pruebe a teclear unlimit para ver si el mensaje desaparece. De otro modo, puede significar que no tiene suficiente espacio de intercambio disponible para ejecutar el trabajo. Trate de minimizar el tamaño de incremento en los bucles de su código, y cuando no pueda, bloquear las referencias a memoria ayudará muchísimo.

Una nota sobre las herramientas de monitoreo de rendimiento de la memoria: debe comprobar con el vendedor de su estación de trabajo si tienen disponible alguna herramienta además de vmstat o sar . Puede que exista alguna herramienta mucho más sofisticada (y tal vez gráfica) que le ayude a comprender cómo es que su programa utiliza la memoria.

Get Jobilize Job Search Mobile App in your pocket Now!

Get it on Google Play Download on the App Store Now




Source:  OpenStax, Cómputo de alto rendimiento. OpenStax CNX. Sep 02, 2011 Download for free at http://cnx.org/content/col11356/1.2
Google Play and the Google Play logo are trademarks of Google Inc.

Notification Switch

Would you like to follow the 'Cómputo de alto rendimiento' conversation and receive update notifications?

Ask