¿Problemas de desempeño y cuelgues en SOLIDWORKS?

¿Problemas de desempeño y cuelgues en SOLIDWORKS?

Las razones por las que una aplicación puede llegar a congelarse o bloquearse pueden ser muy variadas y pueden ir desde la falta de recursos de Hardware hasta defectos de software, archivos dañados o incluso malas prácticas de modelado, pero... ¿Cómo identificar si se trata de una u de otra?

Bien, en este articulo aprenderá como diagnosticar un equipo con problemas de desempeño a fin de identificar si se trata de un consumo de recursos.

No obstante, antes debe comprender que existe 3 componentes que determinan ampliamente el desempeño de su equipo, el procesador, la RAM o memoria física y la Tarjeta de video, todos ellos trabajan de manera conjunta por lo que no puede darse prioridad solo a uno, no puede esperar un buen desempeño de un equipo con mucha RAM si el procesador no es lo suficientemente rápido y del mismo modo no puede esperar un buen desempeño de un equipo con un gran procesador pero con poca RAM, o del mismo modo u gran desempeño de gráficos sin una tarjeta de video adecuada. El buen desempeño de un equipo es en realidad un equilibrio de las tres, erradamente se ha generalizado la idea de que a mayor RAM mejor es el desempeño, pero esto es solo parcialmente cierto.

Si usted está experimentando problemas de desempeño, ya sea con SOLIDWORKS o con cualquier otra aplicación, debe realizar el análisis del problema de la siguiente forma:
  1. Comprobar que su equipo cuenta con las características de Hardware requeridas por la aplicación, si cuenta con ellas entonces;
  2. Verificar si se está presentando un agotamiento de recursos de Hardware, si no entonces;
  3. Verificar si se existe un problema específico del archivo que está ejecutando (ya sea un daño o malas prácticas de modelado), si no;
  4. Verificar si el equipo cuenta con todas las aplicaciones prerrequisito instaladas y reparar el programa si se considera necesario;
  5. Si lo anterior no resuelve el problema Reinstalar la aplicación o reparar problemas con las aplicaciones prerrequisito o el Sistema.
La buena noticia es que no es necesario incendiar todo el bosque para encontrar al criminal, un buen análisis del problema le ayudara a localizar de forma específica la causa, y que, en una gran mayoría de casos, se trata solo de problemas de agotamiento de recursos ya sea por falta de recursos como tal o por malas prácticas en el diseño. Consulte el articulo Requerimientos de Sistema de SOLIDWORKS 2020.

¿Cómo verificar si se están agotando los recursos de Hardware?

TASK MANAGER

El Administrador de tareas o Task Manager es una poderosa herramienta que le sirve para rastrear problemas de este tipo, en este se enlistan todos los procesos en ejecución en su sistema tanto de su sesión como de otras sesiones de usuario, se lista también el consumo del procesador, de memoria, de disco, de red y de GPU por cada uno de los procesos en ejecución. 



Del mismo modo podrá encontrar otros datos importantes como el modelo exacto del procesador, su frecuencia base (velocidad mínima), su velocidad actual de operación, la cantidad de procesos e hilos en ejecución, la cantidad de núcleos y procesadores lógicos, las cantidades de memoria interna del procesador (nivel L1, L2 y L3), así como el tiempo que lleva en ejecución Windows desde la última vez que reinicio el sistema.




También podrá encontrar la cantidad de RAM o memoria instalada, la cantidad de memoria actualmente En uso por los procesos en ejecución, la cantidad de memoria en actualmente En cache que no está actualmente en uso, pero se encuentra ocupada, así como la cantidad disponible aun de memoria



También podrá encontrar el modelo de su tarjeta de video, la cantidad de memoria y porcentaje que está actualmente en uso, así como la cantidad total de memoria dedicada (interna de la tarjeta), también encontrará datos como el total de memoria compartida con el sistema (RAM) así como la memoria total (Suma de memoria dedicada más memoria compartida)


  
Toda esta información es relevante ya que con ella puede revisar si el equipo cuenta con las características mínimas de Hardware para SOLIDWORKS. Revise el articulo Características de Hardware. Sin embargo, el hecho que el equipo cuente con los requerimientos mínimos de Hardware no impedirá que el equipo sufra un agotamiento de los recursos en algún momento, por ello, debe saber cómo identificar si los recursos de hardware se están agotando

Monitor de Recursos

El Task Manager también cuenta con el acceso al Monitor de Recursos, aplicación que muestra de forma más clara el uso de recursos tanto de forma general por el sistema como de forma individual por cada proceso. Aunque este ofrece mucha información útil, quizá, la pestaña más importante del Monitor de recursos es la pestaña de Memoria, pues esta pestaña es donde podrá identificar de forma más fácil si está experimentando problemas de agotamiento de RAM.

Dentro de esta pestaña usted podrá encontrar una escala de colores que muestran el uso de la memoria RAM de su equipo. En color verde (memoria en uso) podrá apreciar la cantidad de RAM que está siendo empleada actualmente por Windows, así como por todas aquellas aplicaciones y servicios de terceros en ejecución. 

En azul oscuro (memoria en espera) podrá ver la cantidad de RAM que está ocupada pero que actualmente no está siendo empleada. A diferencia de la memoria en uso, la memoria en espera puede ser liberada en caso de ser requerida por una nueva aplicación o proceso. Normalmente esta memoria corresponde a procesos, archivos, sitios web entre otros que recientemente ha ocupado y cerrado o minimizado y que por tanto no están en uso activo.

Finalmente, en azul claro (memoria libre), podrá ver la memoria que realmente se encuentra libre de datos o información y que puede ser empleada de forma inmediata por cualquier aplicación que decida ejecutar. 



Note que en este ejemplo hay una cantidad considerable de memoria libre disponible ya que el equipo cuenta con 32GB de RAM instalada, por ello, alrededor de 19GB (19,852MB) están disponibles para ser empleados por cualquier aplicación o proceso que decida ejecutar en el momento.

No obstante, ese podría no ser el caso de su equipo si contará con tan solo 16GB de RAM, ya que ello reduciría ampliamente la cantidad de memoria disponible a cerca de solo 3.4GB (3,468MB aproximadamente para este ejemplo). Si su equipo contará con solo 12, 8 o 4 GB de RAM instalada, en este punto el equipo seguro ya estaría experimentando problemas de bloqueo o congelamiento y dispondría de solo unos pocos Megabytes libres de la memoria. Es por ello que actualmente SOLIDWORKS recomienda emplear no menos de 16GB.

Observe además que el proceso SLDWORKS.exe correspondiente al programa SOLIDWORKS consume un aproximado de 270MB de memoria privada y adicionalmente también está empleando 285MB de memoria compartida. La memoria privada es la cantidad de memoria que normalmente corresponde al programa y que no puede liberarse si otro proceso demanda memoria, mientras que la memoria compartida es normalmente la cantidad de memoria correspondiente a los archivos en ejecución y que puede ser liberada por Windows si es requerida por otro proceso.

La suma de memoria privada y compartida, mejor conocida como el espacio de trabajo, es la cantidad de memoria requerida para ejecutar SOLIDWORKS y sus archivos, siendo aproximadamente 555MB en este ejemplo. 

Si usted abre uno o varios documentos estos podrían cargar desde solo unos pocos Megabytes hasta varios Gigabytes en la memoria dependiendo del tipo de archivo abierto y lo complejo del mismo. Por ello, en el hipotético caso de que su equipo cuente con tan solo 16GB y ejecute un documento o un nuevo proceso cuyo espacio requerido en RAM demande más memoria que la disponible (en la memoria libre) Windows tendrá que recurrir al uso de la memoria virtual (virtualización de memoria) a fin de obtener más espacio de trabajo.



La virtualización de memoria es en realidad una técnica empleada por muchos sistemas operativos modernos a fin emplear un espacio del disco duro como memoria secundaria y emular así las funciones de la memoria física (RAM). La virtualización de memoria (memoria virtual) es implementada típicamente empleando una estrategia conocida como paginación.  

La paginación organiza los datos en la memoria física en porciones del mismo tamaño (4096 Bytes), las cuales son conocidas como marcos de página o páginas físicas. Cada página es identificada por un número y cada página es asignada exclusivamente a un proceso.  A su vez Windows asigna a cada proceso su propio espacio de páginas lógicas o memoria virtual.

Este espacio de memoria virtual está compuesto por direcciones (direcciones de memoria virtual) que pueden ir desde 0 hasta 18,446,744,073,709,551,616 en sistemas operativos de 64 Bits (2^64) y que es el equivalente a 17 179 869 184 gigabytes o 16 exabytes de RAM. Para efectos prácticos, se podría decir que la memoria virtual es infinita, sin embargo, en la práctica todos los procesadores del mercado tienen actualmente un límite artificial en la cantidad de memoria que pueden reconocer, pues las limitaciones físicas hacen imposible soportar los 16 exabytes de teóricos de capacidad.

Así cada página lógica esta mapeada a una página física o marco de página mediante una tabla conocida como tabla de paginación que es igualmente almacenada en la memoria física.  En resumen para cada proceso se crea una página o marco de página, así como una tabla de paginación que se almacenan en la memoria física y a su vez se le asigna un espacio de direcciones de memoria virtual.

Así cuando la cantidad de memoria que usan todos los procesos existentes supera la RAM disponible, el sistema operativo mueve las páginas de la memoria física de uno o más espacios de direcciones virtuales a la unidad de disco duro del equipo. Esto libera dicho marco de página con lo que puede asignarse nuevo proceso.

Para ello, Windows utiliza el archivo PageFile.Sys localizado en la unidad de disco local C:\ mejor conocido como el archivo de paginación, donde Windows transfiere todas las paginas correspondientes a los procesos de menor prioridad o que no están en uso (memoria en espera). Posteriormente cuando la información es nuevamente requerida en la memoria física el traductor de memoria paginada que forma parte de la arquitectura de Windows emplea la dirección lógica y por medio de la tabla de paginación, obtiene la dirección física real.
 



Desafortunadamente liberar la memoria en espera es un proceso que no ocurre rápidamente ya que el proceso de escritura en disco no es igual de rápido que el proceso de escritura en RAM, es por ello que un disco duro de estado sólido (SSD) siempre resulta más ventajoso. Típicamente, la velocidad de liberación de la memoria en espera suele ser de entre 2 a 9MB/s, así, si usted requiere liberar 1000MB de la memoria en espera debido a que ha agotado toda la memoria libre esto ocurrirá aproximadamente en 111 segundos en el mejor de los casos.

La memoria virtual tiene además otras funciones como la de precargar la información de un archivo o un proceso antes ejecutarlo en la RAM, ello a fin de identificar si cuenta con espacio suficiente para ejecutar el proceso en la RAM o si será necesario emplear la virtualización de memoria. En resumen, la memoria virtual, mas que un espacio de trabajo adicional es en realidad un espacio de almacenamiento empleado por Windows para intercambiar información con la RAM según se requiera. Considere por ello que los procesos siempre se ejecutan en la memoria física. 

El efecto inmediato que vera al consumir toda la memoria física será un lento desempeño de SOLIDWORKS acompañado de la ventana emergente del monitor de recursos como la que mostrada a continuación. 



La forma más eficiente de combatir este problema es simplemente incrementando la cantidad de RAM del equipo.

En algunos casos, el consumo de memoria puede darse debido a que ha abierto y cerrado ya demasiados archivos y principalmente ocurre cuando el equipo no se reinicia con regularidad. A medida que usted va abriendo y cerrando archivos la memoria en espera va incrementando de tamaño ya que Windows retiene cierta información en caso de que vuelva a acceder al archivo en breve. Eventualmente llegará el momento en que no cuente con suficiente memoria libre y experimentará problemas de desempeño. Por lo anterior se recomienda reiniciar frecuentemente el equipo, al menos una vez cada 3 día y preferentemente contar con al menos 32GB de RAM a fin de evitar cuelgues.



Complicaciones al emplear Memoria Virtual

Cuando se ha empleado la virtualización de memoria y el procesador invoca una dirección de memoria virtual, el traductor de memoria paginada emplea el la tabla de paginación a fin de obtener nuevamente la dirección de memoria física.



Sin embargo al invocar una dirección de memoria virtual en realidad puede llegar a obtener cualquiera de dos resultados:
  1. la dirección real de memoria (dirección física).
  2. una indicación de que la dirección de memoria deseada no se encuentra en memoria física (llamado excepción de memoria virtual).
En el primer caso, la referencia a la memoria es completada, se obtiene la dirección física como si la memoria virtual nunca se hubiera utilizado y el software accede y se ejecuta normalmente. En el segundo caso, el sistema operativo es invocado para manejar la situación y decide si el proceso se ejecuta o se aborta.

En tal caso podrá ver un colapso de la aplicación y ello es debido a que la memoria virtual no ha podido acceder al marco de página ya sea por que el mismo se encuentra ya ocupado con información no paginable o por que la dirección ha sido protegida contra escritura, debido a ello la aplicación simplemente dejara de responder. 



El síntoma más evidente de que está ocurriendo esto es que el programa se quedará ejecutando algún comando sin avanzar, podrá observar incluso suficiente memoria libre e el procesador en uso, sin embargo, al cabo de un tiempo SOLIDWORKS se cerrará. En el informe de errores podrá localizar un mensaje como el siguiente: 



AT es el acrónimo para Anormal Termination y que significa que se ha presentado un cierre anormal durante la ejecución de SOLIDWORKS, por su parte el mensaje Access Violation at 00000XXXXX (virtual address ac000000XXXX), attempt to read from memory significa que el proceso ejecutado intento acceder un marco de página que ya estaba en uso por otra aplicación o proceso en ejecución. 


Referencias: 




    • Related Articles

    • Problemas de consumo excesivo de memoria RAM por SolidWorks.

      Aunque sabemos que es normal que SolidWorks utilice bastante memoria RAM, también puede haber ocasiones en las que pueda consumir menos memoria, principalmente con solo abrir el programa y el hecho de que con solo abrir el programa consuma mucha ...
    • Problemas de reconocimiento de contraseña en SOLIDWORKS Connected.

      El nuevo licenciamiento de 3DExperience SolidWorks depende directamente de la cuenta de 3DExperience de la plataforma, por lo que, es normal que algunas veces solicite ingresar el correo y contraseña de la cuenta al momento de abrirlo desde el acceso ...
    • ¿Qué equipo necesito para manejar ensambles muy grandes?

      Por qué un buen desempeño de la aplicación es importante para trabajar sin contratiempos, es necesario asegurar que tu equipo cuenta con las características adecuadas a fin de abrir, manipular y editar grandes ensambles sin problemas. En SOLIDWORKS, ...
    • Problemas de creación manual de tuberías en SolidWorks Connected.

      Como todos sabemos, SOLIDWORKS Connected permite abrir datos del disco local y guardarlos en la nube, también permite exportar en todos los formatos de archivo típicos necesarios. Combina la colaboración en línea con la nube y la herramienta de CAD ...
    • Problema de apertura de SOLIDWORKS

      Si recientemente has comenzado a experimentar problemas con la apertura de SOLIDWORKS, concretamente, el mensaje mostrado abajo: Seguido del siguiente mensaje siguiente: Este es un indicio de que tu sistema operativo se ha actualizado recientemente y ...