A Zoomable Interactive Python Thread Visualization

David M Beazley (http://www.dabeaz.com)

512 I/O Bound Threads Running on 2 CPUs (Amazon EC2, Linux)

On February 11, 2010, I launched a single large EC2 instance running a custom HTTP server written entirely in Python. That server launched a pool 512 execution threads running inside a version of the interpreter modified to record thread and GIL traces. I then used Twitter and my blog to ask Python programmers to launch an all out assault on the server with the hope of bringing it to a crushing death.

The visualization on this page shows the result of the aftermath. The image shows thread scheduling over a range of about 1.7 billion interpreter ticks corresponding to a running time of around an hour.

Zoom in to see the mayhem. Pay close attention to the amount of GIL contention as the load gets high.

512 I/O Bound Threads on 2 CPUs

+ -

Acquired and running Busy Retry

Test Details

Tests were conducted on the following system:

Take Me To More Visualizations!