GET /api/v2/video/1304
HTTP 200 OK Vary: Accept Content-Type: text/html; charset=utf-8 Allow: GET, PUT, PATCH, HEAD, OPTIONS
{ "category": "EuroPython 2012", "language": null, "slug": "healthy-webapps-through-continuous-introspection", "speakers": [ "Nicolas Venegas" ], "tags": [], "id": 1304, "state": 1, "title": "Healthy webapps through continuous introspection", "summary": "[EuroPython 2012] Nicolas Venegas - 4 JULY 2012 in \"Track Spaghetti\"\n\n", "description": "Every application has its hotspots \u2013 small portions of code that consume\nconsiderably more resources than all of the other code combined. Django apps\nare no different. Some pages, invoked with the just the right, or wrong input,\ncan bring a server to its knees, hogging the CPU and taking many seconds, or\nin extreme cases even minutes to render. By keeping workers tied up, the whole\nsystem can then become slow to respond, or collapse altogether. Many\nwebservers have a crude built-in failsafe to prevent this. They automatically\nkill workers that fail to complete their requests in time. As a result, you\nmay not fully appreciate, or indeed realize at all that you are routinely\nserving 500 pages, denying users access to your service, or leaving\nuncommitted database transactions \u2013 possibly even slowly corrupting data.\nWorkers killed by force leave virtually no forensic traces and so even when\nissues are suspected, it\u2019s hard to pin them down. The cause behind these\nhotspots can be poorly generated SQL queries from the ORM, an algorithm with\nnon-linear complexity, excessive disk or network IO, or lock contention in the\ndatabase \u2013 to name just a few. Oftentimes these problems escape a developer\u2019s\nattention, as dev and test environments simply don\u2019t have the dataset, level\nof concurrency or sheer size of the real thing. In this talk we\u2019ll address the\nchallenges of tuning your Django app with continuous automatic runtime\ninspection tools, including homegrown Dogslow. We\u2019ll uncover the pages that\nconsume disproportionate amounts of time and cycles to complete and the pages\nthat get killed altogether. We\u2019ll discuss several ways to help you identify\nand eliminate the hotspots, both passively through monitoring exclusively, as\nwell as actively by selectively interrupting workers before they get killed\nand examine how to effectively interpret the automatically collected forensic\nevidence.\n\n", "quality_notes": "", "copyright_text": "Standard YouTube License", "embed": "<object width=\"640\" height=\"390\"><param name=\"movie\" value=\"http://youtube.com/v/yxALwwDyWoA?version=3&amp;hl=en_US\"></param><param name=\"allowFullScreen\" value=\"true\"></param><param name=\"allowscriptaccess\" value=\"always\"></param><embed src=\"http://youtube.com/v/yxALwwDyWoA?version=3&amp;hl=en_US\" type=\"application/x-shockwave-flash\" width=\"640\" height=\"390\" allowscriptaccess=\"always\" allowfullscreen=\"true\"></embed></object>", "thumbnail_url": "http://i.ytimg.com/vi/yxALwwDyWoA/hqdefault.jpg", "duration": null, "video_ogv_length": null, "video_ogv_url": null, "video_ogv_download_only": false, "video_mp4_length": null, "video_mp4_url": null, "video_mp4_download_only": false, "video_webm_length": null, "video_webm_url": null, "video_webm_download_only": false, "video_flv_length": null, "video_flv_url": null, "video_flv_download_only": false, "source_url": "http://www.youtube.com/watch?v=yxALwwDyWoA", "whiteboard": "", "recorded": "2012-07-05", "added": "2012-09-06T22:33:19", "updated": "2014-04-08T20:28:27.244" }