{"id":9848,"date":"2020-11-09T21:11:35","date_gmt":"2020-11-10T02:11:35","guid":{"rendered":"https:\/\/www.blmovil.com\/?p=9848"},"modified":"2023-11-23T04:27:08","modified_gmt":"2023-11-23T10:27:08","slug":"apm-como-diagnosticar-problemas-progresivos","status":"publish","type":"post","link":"https:\/\/www.blmovil.com\/en\/apm-como-diagnosticar-problemas-progresivos\/","title":{"rendered":"APM \u2013 C\u00f3mo diagnosticar problemas progresivos"},"content":{"rendered":"<h2>APM \u2013 C\u00f3mo diagnosticar problemas progresivos<\/h2>\n<p>En este art\u00edculo indicamos c\u00f3mo podemos identificar los distintos tipos de problemas progresivos y c\u00f3mo debemos priorizar para solucionarlos.<\/p>\n<p>Un problema progresivo es uno que se degrada a lo largo del tiempo. El uso de los recursos, memoria y CPU se incrementa significativamente durante un problema progresivo, especialmente hacia el final del mismo. Hay que ser capaz de identificar los problemas que causan los problemas de rendimiento progresivos y los pasos que hay que tomar para resolver estos problemas.<\/p>\n<p>Despu\u00e9s de leer este art\u00edculo debes ser capaz de identificar los problemas progresivos y de priorizar los problemas progresivos basados en sus caracter\u00edsticas.<\/p>\n<h2>Definici\u00f3n de problema progresivo<\/h2>\n<p>Un problema progresivo es aquel en el que el rendimiento se degrada a lo largo del tiempo, el rango de severidad es alto, el uso de la CPU y de la memoria se incrementa, el problema afecta normalmente a todas las funciones y el servidor puede llegar a bloquearse.<\/p>\n<p>La soluci\u00f3n que se suele tomar es planificar reinicios del sistema.<\/p>\n<p>Un problema progresivo es una condici\u00f3n que degrada el uso de los recursos, memoria y CPU a lo largo del tiempo. Algunos problemas progresivos puen llevar a que el sistema termine cayendo en minutos, mientas que otros pueden tomar d\u00edas hasta que se empiece a notar el problema. EL uso de los recursos se incrementa significativamente durante un problema progresivo, especialmente al final del mismo. T\u00edpicamente, estos problemas terminan causando que el sistema termine cayendo y se necesite un reinicio del sisteme.<\/p>\n<h2>Causas Principales de los problemas progresivos<\/h2>\n<p>Hay tres causas por as que puede ocurrir un problema progresivo:<\/p>\n<ul>\n<li>Bloqueo de recursos<\/li>\n<li>Una estructura de datos creciente<\/li>\n<li>Un bloqueo<\/li>\n<\/ul>\n<p>Estos motivos est\u00e1n relacionados entre s\u00ed en la forma que las fugas terminan impactando al Garbage Collector, y las m\u00e9tricas y firmas de las mismas son id\u00e9nticas.<\/p>\n<p>La soluci\u00f3n que se suele tomar es planificar reinicios del sistema.<\/p>\n<p>Un problema progresivo es una condici\u00f3n que degrada el uso de los recursos, memoria y CPU a lo largo del tiempo. Algunos problemas progresivos puen llevar a que el sistema termine cayendo en minutos, mientas que otros pueden tomar d\u00edas hasta que se empiece a notar el problema. EL uso de los recursos se incrementa significativamente durante un problema progresivo, especialmente al final del mismo. T\u00edpicamente, estos problemas terminan causando que el sistema termine cayendo y se necesite un reinicio del sisteme.<\/p>\n<h2>Garbage Collector<\/h2>\n<p>Ahora que se han identificado los potenciales problemas progresivos, aprenderemos a identificarlos por sus m\u00e9tricas. Mediante esta identificaci\u00f3n, se podr\u00e1n priorizar y asegurarse de que los problemas que perjudiquen m\u00e1s al negocio son resueltos antes.<\/p>\n<p>Para comprender ciertos tipos de problemas progresivos, es \u00fatil explorar el Garbage Collector porque est\u00e1 impactado por los bloqueos de recursos, estructuras de datos crecientes y memory leaks.<\/p>\n<figure id=\"attachment_2698\" aria-describedby=\"caption-attachment-2698\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.blmovil.com\/wp-content\/uploads\/sites\/3\/2019\/08\/APM1.png\" alt=\"Diagnostico de problemas progresivos uso de GC\" width=\"477\" height=\"282\" data-pagespeed-url-hash=\"717951941\"><figcaption id=\"caption-attachment-2698\">Diagnostico de problemas progresivos uso de GC<\/figcaption><\/figure>\n<p>Como cualquier otro recurso, la memoria es un recurso limitado. Para asegurarse de que la memoria tiene un uso eficiente, hay muchos lenguajes de programaci\u00f3n que disponen de un garbage collector para determinar qu\u00e9 objetos ya no se referencian m\u00e1s y se pueden mover de la pila de la memoria.<\/p>\n<p>El gr\u00e1fico ilustra c\u00f3mo se selecciona un objeto del Garbage Collector. El objeto en el medio ya no tiene referencias que apunten a \u00e9l, lo que significa que&nbsp; no hay nda que tenga que ver con \u00e9l y est\u00e1 en la memoria sin ninguna raz\u00f3n que lo justifique. El resto de objetos tienen referencias y est\u00e1n por tanto activos. La siguiente vez que se ejecute el Garbage Collector, limpiar\u00e1 todos los objetos sin referencias.<\/p>\n<p>Normalmente los problemas progresivos se relacionan con el Garbage Collector. El Garbage Collector reclama memoria y determina qu\u00e9 objetos se est\u00e1n utilizando, y libera el espacio para ser utilizado por otros objetos.<\/p>\n<p>Si queda poco espacio ara liberar, el Garbage Collector se tiene que ejecutar con m\u00e1s frecuencia para liberar la memoria necesaria para que el software siga funcionando. Cuanta menos memoria quede libre, m\u00e1s veces se va a ejecutar el Garbage Collector para liberar memoria y m\u00e1s uso de CPU que va a utilizar este proceso, que adem\u00e1s es un proceso sincronizado que hace que el resto de procesos se detengan hasta que termine el proceso de Garbage Collector.<\/p>\n<h2>Bloqueo de recursos<\/h2>\n<p>La fuga de recursos suele ocurrir en componentes que est\u00e1n&nbsp; realizando procesos de E\/S o conect\u00e1ndose a un back end. Si la conexi\u00f3n o el socket&nbsp; se abre pero no se cierra, se gastan recursos de memoria. Las conexiones de la base de datos se liberan por el Garbage Collector despu\u00e9s de un tiempo de timeout predeterminado. Los sockets, sin embargo, no se liberan si no se cierran.<\/p>\n<p>La mayor\u00eda de los sistemas de Garbage Collection tienen un mecanismo de limpieza que se lanza cuando la memoria empieza a acabarse. Seg\u00fan se va ocupando la memoria por las fugas de recursos, la aplicaci\u00f3n empieza a ir lenta debido a dos razones, la falta de memoria, y la ejecuci\u00f3n frecuente del proceso de Garbage Collector.<\/p>\n<p>Los recursos que generalmente causan estos problemas son:<\/p>\n<ul>\n<li>Conexiones a sistemas back end<\/li>\n<li>E\/S de archivos<\/li>\n<li>Sockets<\/li>\n<li>Threads<\/li>\n<\/ul>\n<h2>Bloque de Recursos: Threads<\/h2>\n<p>El bloqueo de los recursos ocurre cuando dos threads se bloquean el uno al otro. Esto no bloquea otras peticiones. El problema de degradaci\u00f3n, se va dando cuando otros usuarios ejecutan el mismo proceso, y el n\u00famero de threads bloqueados va aumentando continuamente.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.blmovil.com\/wp-content\/uploads\/sites\/3\/2019\/08\/APM2.png\" alt=\"Bloqueo de Threads\" width=\"339\" height=\"230\" data-pagespeed-url-hash=\"1012451862\"><\/p>\n<p>Los deadlocks ocurren debido a problemas de programaci\u00f3n. Los componentes de JAva se pueden sincronizar, lo que significa que s\u00f3lo un thread puede utilizar el componente a la vez. Cuando un thread usa un componente sincronizado, lo bloquea de forma que ning\u00fan otro puede interferir.<\/p>\n<p>El diagrama muestra como ocurre un deadlock con los componentes sincronizados A y B. El thread 1 bloquea el componente A y el thread 2 bloquea el componente B. Con el componente A bloqueado, el thread 1 espera a que el thread 2 libere su bloqueo con el componente B. Al mismo tiempo, el thred 2 est\u00e1 esperando a que el bloqueo en el componente A se libere. Los threads est\u00e1n interbloqueados.<\/p>\n<p>En este art\u00edculo, se describen dos tipos de interbloqueo. El interbloqueo del gr\u00e1fico es un interbloqueo no bloqueante y ni es un interbloqeo serio. Los interbloqueos no bloqueantes afectan \u00fanicamente a dos hilos a la vez. El objeto o pieza del&nbsp; c\u00f3digo que est\u00e1 bloqueado no se usa por todo el sistema por lo que el interbloqueo no es tan severo. Si embargo por cada llamada al objeto en particular se gastan dos threads m\u00e1s y el problema empeora.<\/p>\n<h2>Las m\u00e9tricas que identifican el problema son las siguientes:<\/h2>\n<ul>\n<li>La m\u00e9trica de threads disponibles va disminuyendo de forma continua hasta eventualmente llegar a cero<\/li>\n<li>El tiempo medio de respuesta se va incrementando cada vez m\u00e1s<\/li>\n<li>El uso de CPU termina cayendo a cero, ya que no se puede ejecutar ning\u00fan trabajo<\/li>\n<li>Si se realiza un dump de threads, se identifica que todos est\u00e1n detenidos en los mismos m\u00e9todos<\/li>\n<\/ul>\n<p>Se puede sospechar que hay interbloqueos, cuando la m\u00e9trica de hilos disponibles tiende a cero, indicando que no se liberan los hilos. Como no hay threads disponibles, la aplicaci\u00f3n no puede realizar ning\u00fan trabajo. Este problema de servidor de aplicaciones bloqueado, hace que el uso de CPU sea anormalmente bajo.<\/p>\n<p>Adem\u00e1s de estas m\u00e9tricas, al realizar un dump de thread, se ver\u00e1n los threads bloqueados y el m\u00e9todo o m\u00e9todos que est\u00e1n generando dicho bloqueo.<\/p>\n<h2>Memory Leaks: Colecciones<\/h2>\n<p>Como los leaks de recursos, las estructuras de datos crecientes son una forma de leak que usan progresivamente m\u00e1s memoria. Esto ocuure cuando se est\u00e1n a\u00f1adiendo objetos a la estructura, pero no se eliminan. Esto por ejemplo puede ser un objeto de sesi\u00f3n que no se elimina ni expira debido a un c\u00f3digo pobremente escrito.<\/p>\n<p>Para identificar este tipo de problemas, lo que se puede realizar es un memory dump, donde se identifiquen los objetos que est\u00e1n consumiendo m\u00e1s memoria. Se puede adem\u00e1s con ciertas herramientas, realizarvarios memory dumps a lo largo del tiempo, e identificar las variables que van creciendo a lo largo del tiempo y no liberan memoria.<\/p>\n<h2>Memory Leaks: No colecciones<\/h2>\n<p>Los memory leaks tambi\u00e9n ocurren cuando se mantienen referencias a objetos que ya no se utilizan. Estos objetos deber\u00edan eliminarse con el Garbage Collection si la referencia ya o existe. Si un objeto mantiene una referencia a \u00e9l, no se marca para limpiar. Este memory leak resulta en un n\u00famero creciente de instancias del objeto. Como en el caso anterior, con un Memory Dump, se pueden ver las instancias de un objeto en memoria e identificar si van creciendo con el tiempo.<\/p>\n<h2>M\u00e9tricas que identifican los Memory Leaks<\/h2>\n<p>La mayor\u00eda de las m\u00e9tricas crecen mientras crece el leak. El uso de CPU se incrementa hasta llegar al 100% cuando el servidor va a caer, el tiempo de Garbage Collection, se incrementa al 100%, las m\u00e9tricas fluctuan seg\u00fan fluct\u00faa el Garbage Collection.<\/p>\n<p>Mientras el Garbage Collector intenta hacer lo que puede para mantener memoria libre, se va incrementando su uso de recursos, principalmente de la CPU, hasta que el problema e hace inmanejable, la CPU llega al 100% y se obtiene un mensaje de Out of memory.<\/p>\n<h2>Relaci\u00f3n entre Garbage Collection y CPU<\/h2>\n<p>Cuando se ejecuta el Garbage Collection, todo el procesamiento se detiene durante un tiempo determinado, desde una fracci\u00f3n de segundo a varios segundos. Adem\u00e1s, la CPU se dispara debido a las necesidades de procesamiento del Garbage Collector. Si la CPU se dispara en intervalos cada vez m\u00e1s cortos y y no se recupera mientras fluct\u00faa el Garbage Collector, tienes la prueba de que es un problema relacionado con la memoria.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.blmovil.com\/wp-content\/uploads\/sites\/3\/2019\/08\/Relacion-GC-CPU.png\" alt=\"Relci\u00f3n entre el CG y la CPU\" width=\"599\" height=\"219\" data-pagespeed-url-hash=\"4005312603\"><\/p>\n<h2>Objetos de sesi\u00f3n que no expiran<\/h2>\n<p>Las sesiones inactivas que no expiran son otro de los ejemplos de un memory leak. Observando el n\u00famero de sesiones activas que existen y las que expiran, se puede ver si la expiraci\u00f3n es incompleta, dejando objetos en memoria que ya no son necesarios.<\/p>\n<h2>Resoluci\u00f3n de problemas de Memory Leak<\/h2>\n<p>Los problemas de Memory Leak, siempre se deben a problemas de mala codificaci\u00f3n y se deben redirigir a un programador o a un arquitecto.<\/p>\n<p>Los problemas normalmente vienen de dos posibles escenarios:<\/p>\n<ul>\n<li>Una estructura de datos con objetos que se a\u00f1aden pero no se eliminan<\/li>\n<li>Una conexi\u00f3n o un socket que no se cierra convenientemente.<\/li>\n<\/ul>\n<p>Si necesita m\u00e1s informaci\u00f3n sobre APM, o configuraci\u00f3n de monitorizaci\u00f3n de sus aplicaciones no dude en contactar con nosotros en&nbsp;<a href=\"mailto:info@blmovil.com\">nuestro correo<\/a>.<\/p>\n<p>Tenemos m\u00e1s de 10 a\u00f1os de experiencia en monitoreo de aplicaciones en implantaciones de m\u00e1s de 10.000 servidores de aplicaciones en diferentes pa\u00edses.<\/p>\n<p><a href=\"https:\/\/www.blmovil.com\/ofertas-de-trabajo\/\" role=\"button\"><br \/>\nTrabaja con nosotros<br \/>\n<\/a><\/p>\n<p style=\"text-align: center\">Tanto si est\u00e1s buscando&nbsp;<strong>trabajar full time<\/strong>, como&nbsp;<strong>suplementar tus actuales ingresos<\/strong>&nbsp;con desarrollos adicionales a los que est\u00e1s haciendo en tu actual trabajo, o quieres implicarte en el desarrollo de&nbsp;<strong>proyectos opensource<\/strong>&nbsp;y apoyar a la comunidad, rellena el formulario que hay a continuaci\u00f3n y nos pondremos en contacto contigo para ver los proyectos en los que podemos colaborar.<\/p>\n","protected":false},"excerpt":{"rendered":"excerpt","protected":false},"author":1,"featured_media":4305,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"_uag_custom_page_level_css":"","_trash_the_other_posts":false,"_editorskit_title_hidden":false,"_editorskit_reading_time":7,"_editorskit_is_block_options_detached":false,"_editorskit_block_options_position":"{}","site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"episode_type":"","audio_file":"","podmotor_file_id":"","podmotor_episode_id":"","cover_image":"","cover_image_id":"","duration":"","filesize":"","filesize_raw":"","date_recorded":"","explicit":"","block":"","itunes_episode_number":"","itunes_title":"","itunes_season_number":"","itunes_episode_type":"","footnotes":""},"categories":[122],"tags":[110,130,131,115,132],"class_list":["post-9848","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-apm","tag-apm","tag-memory-leak","tag-problemas-progresivos","tag-rendimiento-de-aplicaciones","tag-resource-leak"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.3 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>APM \u2013 C\u00f3mo diagnosticar problemas progresivos - BLMovil<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.blmovil.com\/en\/apm-como-diagnosticar-problemas-progresivos\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"APM \u2013 C\u00f3mo diagnosticar problemas progresivos - BLMovil\" \/>\n<meta property=\"og:description\" content=\"APM \u2013 C\u00f3mo diagnosticar problemas progresivos En este art\u00edculo indicamos c\u00f3mo podemos identificar los distintos tipos de problemas progresivos y c\u00f3mo debemos priorizar para solucionarlos. Un problema progresivo es uno que se degrada a lo largo del tiempo. El uso de los recursos, memoria y CPU se incrementa significativamente durante un problema progresivo, especialmente hacia [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.blmovil.com\/en\/apm-como-diagnosticar-problemas-progresivos\/\" \/>\n<meta property=\"og:site_name\" content=\"BLMovil\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/BLMovil\" \/>\n<meta property=\"article:published_time\" content=\"2020-11-10T02:11:35+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2023-11-23T10:27:08+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.blmovil.com\/en\/wp-content\/uploads\/sites\/28\/2019\/10\/favicon.png\" \/>\n\t<meta property=\"og:image:width\" content=\"128\" \/>\n\t<meta property=\"og:image:height\" content=\"128\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Jorge Bernal\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Jorge Bernal\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"9 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.blmovil.com\\\/en\\\/apm-como-diagnosticar-problemas-progresivos\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.blmovil.com\\\/en\\\/apm-como-diagnosticar-problemas-progresivos\\\/\"},\"author\":{\"name\":\"Jorge Bernal\",\"@id\":\"https:\\\/\\\/www.blmovil.com\\\/en\\\/#\\\/schema\\\/person\\\/96dcb10c89b5c56f7e233af1cee4d28c\"},\"headline\":\"APM \u2013 C\u00f3mo diagnosticar problemas progresivos\",\"datePublished\":\"2020-11-10T02:11:35+00:00\",\"dateModified\":\"2023-11-23T10:27:08+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.blmovil.com\\\/en\\\/apm-como-diagnosticar-problemas-progresivos\\\/\"},\"wordCount\":1940,\"publisher\":{\"@id\":\"https:\\\/\\\/www.blmovil.com\\\/en\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/www.blmovil.com\\\/en\\\/apm-como-diagnosticar-problemas-progresivos\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.blmovil.com\\\/en\\\/wp-content\\\/uploads\\\/sites\\\/28\\\/2019\\\/10\\\/favicon.png\",\"keywords\":[\"APM\",\"memory leak\",\"Problemas progresivos\",\"rendimiento de aplicaciones\",\"resource leak\"],\"articleSection\":[\"APM\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.blmovil.com\\\/en\\\/apm-como-diagnosticar-problemas-progresivos\\\/\",\"url\":\"https:\\\/\\\/www.blmovil.com\\\/en\\\/apm-como-diagnosticar-problemas-progresivos\\\/\",\"name\":\"APM \u2013 C\u00f3mo diagnosticar problemas progresivos - BLMovil\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.blmovil.com\\\/en\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.blmovil.com\\\/en\\\/apm-como-diagnosticar-problemas-progresivos\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.blmovil.com\\\/en\\\/apm-como-diagnosticar-problemas-progresivos\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.blmovil.com\\\/en\\\/wp-content\\\/uploads\\\/sites\\\/28\\\/2019\\\/10\\\/favicon.png\",\"datePublished\":\"2020-11-10T02:11:35+00:00\",\"dateModified\":\"2023-11-23T10:27:08+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.blmovil.com\\\/en\\\/apm-como-diagnosticar-problemas-progresivos\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.blmovil.com\\\/en\\\/apm-como-diagnosticar-problemas-progresivos\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.blmovil.com\\\/en\\\/apm-como-diagnosticar-problemas-progresivos\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.blmovil.com\\\/en\\\/wp-content\\\/uploads\\\/sites\\\/28\\\/2019\\\/10\\\/favicon.png\",\"contentUrl\":\"https:\\\/\\\/www.blmovil.com\\\/en\\\/wp-content\\\/uploads\\\/sites\\\/28\\\/2019\\\/10\\\/favicon.png\",\"width\":128,\"height\":128,\"caption\":\"favicon\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.blmovil.com\\\/en\\\/apm-como-diagnosticar-problemas-progresivos\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Inicio\",\"item\":\"https:\\\/\\\/www.blmovil.com\\\/en\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"APM \u2013 C\u00f3mo diagnosticar problemas progresivos\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.blmovil.com\\\/en\\\/#website\",\"url\":\"https:\\\/\\\/www.blmovil.com\\\/en\\\/\",\"name\":\"BLMovil\",\"description\":\"Si tienes una idea nosotros te la desarrollamos\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.blmovil.com\\\/en\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.blmovil.com\\\/en\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.blmovil.com\\\/en\\\/#organization\",\"name\":\"BLMovil\",\"url\":\"https:\\\/\\\/www.blmovil.com\\\/en\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.blmovil.com\\\/en\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/www.blmovil.com\\\/wp-content\\\/uploads\\\/sites\\\/3\\\/2019\\\/10\\\/favicon.png\",\"contentUrl\":\"https:\\\/\\\/www.blmovil.com\\\/wp-content\\\/uploads\\\/sites\\\/3\\\/2019\\\/10\\\/favicon.png\",\"width\":128,\"height\":128,\"caption\":\"BLMovil\"},\"image\":{\"@id\":\"https:\\\/\\\/www.blmovil.com\\\/en\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/BLMovil\"]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.blmovil.com\\\/en\\\/#\\\/schema\\\/person\\\/96dcb10c89b5c56f7e233af1cee4d28c\",\"name\":\"Jorge Bernal\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/2717026f433619c619b7fc938083ba1cbc1a3ac6621296c94861a178546b2095?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/2717026f433619c619b7fc938083ba1cbc1a3ac6621296c94861a178546b2095?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/2717026f433619c619b7fc938083ba1cbc1a3ac6621296c94861a178546b2095?s=96&d=mm&r=g\",\"caption\":\"Jorge Bernal\"},\"url\":\"https:\\\/\\\/www.blmovil.com\\\/en\\\/author\\\/hovait\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"APM \u2013 C\u00f3mo diagnosticar problemas progresivos - BLMovil","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.blmovil.com\/en\/apm-como-diagnosticar-problemas-progresivos\/","og_locale":"en_US","og_type":"article","og_title":"APM \u2013 C\u00f3mo diagnosticar problemas progresivos - BLMovil","og_description":"APM \u2013 C\u00f3mo diagnosticar problemas progresivos En este art\u00edculo indicamos c\u00f3mo podemos identificar los distintos tipos de problemas progresivos y c\u00f3mo debemos priorizar para solucionarlos. Un problema progresivo es uno que se degrada a lo largo del tiempo. El uso de los recursos, memoria y CPU se incrementa significativamente durante un problema progresivo, especialmente hacia [&hellip;]","og_url":"https:\/\/www.blmovil.com\/en\/apm-como-diagnosticar-problemas-progresivos\/","og_site_name":"BLMovil","article_publisher":"https:\/\/www.facebook.com\/BLMovil","article_published_time":"2020-11-10T02:11:35+00:00","article_modified_time":"2023-11-23T10:27:08+00:00","og_image":[{"width":128,"height":128,"url":"https:\/\/www.blmovil.com\/en\/wp-content\/uploads\/sites\/28\/2019\/10\/favicon.png","type":"image\/png"}],"author":"Jorge Bernal","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Jorge Bernal","Est. reading time":"9 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.blmovil.com\/en\/apm-como-diagnosticar-problemas-progresivos\/#article","isPartOf":{"@id":"https:\/\/www.blmovil.com\/en\/apm-como-diagnosticar-problemas-progresivos\/"},"author":{"name":"Jorge Bernal","@id":"https:\/\/www.blmovil.com\/en\/#\/schema\/person\/96dcb10c89b5c56f7e233af1cee4d28c"},"headline":"APM \u2013 C\u00f3mo diagnosticar problemas progresivos","datePublished":"2020-11-10T02:11:35+00:00","dateModified":"2023-11-23T10:27:08+00:00","mainEntityOfPage":{"@id":"https:\/\/www.blmovil.com\/en\/apm-como-diagnosticar-problemas-progresivos\/"},"wordCount":1940,"publisher":{"@id":"https:\/\/www.blmovil.com\/en\/#organization"},"image":{"@id":"https:\/\/www.blmovil.com\/en\/apm-como-diagnosticar-problemas-progresivos\/#primaryimage"},"thumbnailUrl":"https:\/\/www.blmovil.com\/en\/wp-content\/uploads\/sites\/28\/2019\/10\/favicon.png","keywords":["APM","memory leak","Problemas progresivos","rendimiento de aplicaciones","resource leak"],"articleSection":["APM"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www.blmovil.com\/en\/apm-como-diagnosticar-problemas-progresivos\/","url":"https:\/\/www.blmovil.com\/en\/apm-como-diagnosticar-problemas-progresivos\/","name":"APM \u2013 C\u00f3mo diagnosticar problemas progresivos - BLMovil","isPartOf":{"@id":"https:\/\/www.blmovil.com\/en\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.blmovil.com\/en\/apm-como-diagnosticar-problemas-progresivos\/#primaryimage"},"image":{"@id":"https:\/\/www.blmovil.com\/en\/apm-como-diagnosticar-problemas-progresivos\/#primaryimage"},"thumbnailUrl":"https:\/\/www.blmovil.com\/en\/wp-content\/uploads\/sites\/28\/2019\/10\/favicon.png","datePublished":"2020-11-10T02:11:35+00:00","dateModified":"2023-11-23T10:27:08+00:00","breadcrumb":{"@id":"https:\/\/www.blmovil.com\/en\/apm-como-diagnosticar-problemas-progresivos\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.blmovil.com\/en\/apm-como-diagnosticar-problemas-progresivos\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.blmovil.com\/en\/apm-como-diagnosticar-problemas-progresivos\/#primaryimage","url":"https:\/\/www.blmovil.com\/en\/wp-content\/uploads\/sites\/28\/2019\/10\/favicon.png","contentUrl":"https:\/\/www.blmovil.com\/en\/wp-content\/uploads\/sites\/28\/2019\/10\/favicon.png","width":128,"height":128,"caption":"favicon"},{"@type":"BreadcrumbList","@id":"https:\/\/www.blmovil.com\/en\/apm-como-diagnosticar-problemas-progresivos\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Inicio","item":"https:\/\/www.blmovil.com\/en\/"},{"@type":"ListItem","position":2,"name":"APM \u2013 C\u00f3mo diagnosticar problemas progresivos"}]},{"@type":"WebSite","@id":"https:\/\/www.blmovil.com\/en\/#website","url":"https:\/\/www.blmovil.com\/en\/","name":"BLMovil","description":"Si tienes una idea nosotros te la desarrollamos","publisher":{"@id":"https:\/\/www.blmovil.com\/en\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.blmovil.com\/en\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.blmovil.com\/en\/#organization","name":"BLMovil","url":"https:\/\/www.blmovil.com\/en\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.blmovil.com\/en\/#\/schema\/logo\/image\/","url":"https:\/\/www.blmovil.com\/wp-content\/uploads\/sites\/3\/2019\/10\/favicon.png","contentUrl":"https:\/\/www.blmovil.com\/wp-content\/uploads\/sites\/3\/2019\/10\/favicon.png","width":128,"height":128,"caption":"BLMovil"},"image":{"@id":"https:\/\/www.blmovil.com\/en\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/BLMovil"]},{"@type":"Person","@id":"https:\/\/www.blmovil.com\/en\/#\/schema\/person\/96dcb10c89b5c56f7e233af1cee4d28c","name":"Jorge Bernal","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/2717026f433619c619b7fc938083ba1cbc1a3ac6621296c94861a178546b2095?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/2717026f433619c619b7fc938083ba1cbc1a3ac6621296c94861a178546b2095?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/2717026f433619c619b7fc938083ba1cbc1a3ac6621296c94861a178546b2095?s=96&d=mm&r=g","caption":"Jorge Bernal"},"url":"https:\/\/www.blmovil.com\/en\/author\/hovait\/"}]}},"featured_image_src":"https:\/\/www.blmovil.com\/en\/wp-content\/uploads\/sites\/28\/2019\/10\/favicon.png","featured_image_src_square":"https:\/\/www.blmovil.com\/en\/wp-content\/uploads\/sites\/28\/2019\/10\/favicon.png","author_info":{"display_name":"Jorge Bernal","author_link":"https:\/\/www.blmovil.com\/en\/author\/hovait\/"},"uagb_featured_image_src":{"full":["https:\/\/www.blmovil.com\/en\/wp-content\/uploads\/sites\/28\/2019\/10\/favicon.png",128,128,false],"thumbnail":["https:\/\/www.blmovil.com\/en\/wp-content\/uploads\/sites\/28\/2019\/10\/favicon.png",128,128,false],"medium":["https:\/\/www.blmovil.com\/en\/wp-content\/uploads\/sites\/28\/2019\/10\/favicon.png",128,128,false],"medium_large":["https:\/\/www.blmovil.com\/en\/wp-content\/uploads\/sites\/28\/2019\/10\/favicon.png",128,128,false],"large":["https:\/\/www.blmovil.com\/en\/wp-content\/uploads\/sites\/28\/2019\/10\/favicon.png",128,128,false],"course_archive_thumbnail":["https:\/\/www.blmovil.com\/en\/wp-content\/uploads\/sites\/28\/2019\/10\/favicon.png",100,100,false],"course_single_thumbnail":["https:\/\/www.blmovil.com\/en\/wp-content\/uploads\/sites\/28\/2019\/10\/favicon.png",100,100,false],"lesson_archive_thumbnail":["https:\/\/www.blmovil.com\/en\/wp-content\/uploads\/sites\/28\/2019\/10\/favicon.png",100,100,false],"lesson_single_thumbnail":["https:\/\/www.blmovil.com\/en\/wp-content\/uploads\/sites\/28\/2019\/10\/favicon.png",100,100,false],"1536x1536":["https:\/\/www.blmovil.com\/en\/wp-content\/uploads\/sites\/28\/2019\/10\/favicon.png",128,128,false],"2048x2048":["https:\/\/www.blmovil.com\/en\/wp-content\/uploads\/sites\/28\/2019\/10\/favicon.png",128,128,false],"gb-block-post-grid-landscape":["https:\/\/www.blmovil.com\/en\/wp-content\/uploads\/sites\/28\/2019\/10\/favicon.png",128,128,false],"gb-block-post-grid-square":["https:\/\/www.blmovil.com\/en\/wp-content\/uploads\/sites\/28\/2019\/10\/favicon.png",128,128,false],"woocommerce_thumbnail":["https:\/\/www.blmovil.com\/en\/wp-content\/uploads\/sites\/28\/2019\/10\/favicon.png",128,128,false],"woocommerce_single":["https:\/\/www.blmovil.com\/en\/wp-content\/uploads\/sites\/28\/2019\/10\/favicon.png",128,128,false],"woocommerce_gallery_thumbnail":["https:\/\/www.blmovil.com\/en\/wp-content\/uploads\/sites\/28\/2019\/10\/favicon.png",100,100,false],"awb_sm":["https:\/\/www.blmovil.com\/en\/wp-content\/uploads\/sites\/28\/2019\/10\/favicon.png",128,128,false],"awb_md":["https:\/\/www.blmovil.com\/en\/wp-content\/uploads\/sites\/28\/2019\/10\/favicon.png",128,128,false],"awb_lg":["https:\/\/www.blmovil.com\/en\/wp-content\/uploads\/sites\/28\/2019\/10\/favicon.png",128,128,false],"awb_xl":["https:\/\/www.blmovil.com\/en\/wp-content\/uploads\/sites\/28\/2019\/10\/favicon.png",128,128,false]},"uagb_author_info":{"display_name":"Jorge Bernal","author_link":"https:\/\/www.blmovil.com\/en\/author\/hovait\/"},"uagb_comment_info":0,"uagb_excerpt":"APM \u2013 C\u00f3mo diagnosticar problemas progresivos En este art\u00edculo indicamos c\u00f3mo podemos identificar los distintos tipos de problemas progresivos y c\u00f3mo debemos priorizar para solucionarlos. Un problema progresivo es uno que se degrada a lo largo del tiempo. El uso de los recursos, memoria y CPU se incrementa significativamente durante un problema progresivo, especialmente hacia&hellip;","_links":{"self":[{"href":"https:\/\/www.blmovil.com\/en\/wp-json\/wp\/v2\/posts\/9848","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.blmovil.com\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.blmovil.com\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.blmovil.com\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.blmovil.com\/en\/wp-json\/wp\/v2\/comments?post=9848"}],"version-history":[{"count":5,"href":"https:\/\/www.blmovil.com\/en\/wp-json\/wp\/v2\/posts\/9848\/revisions"}],"predecessor-version":[{"id":9856,"href":"https:\/\/www.blmovil.com\/en\/wp-json\/wp\/v2\/posts\/9848\/revisions\/9856"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.blmovil.com\/en\/wp-json\/wp\/v2\/media\/4305"}],"wp:attachment":[{"href":"https:\/\/www.blmovil.com\/en\/wp-json\/wp\/v2\/media?parent=9848"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.blmovil.com\/en\/wp-json\/wp\/v2\/categories?post=9848"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.blmovil.com\/en\/wp-json\/wp\/v2\/tags?post=9848"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}