David M Beazley (http://www.dabeaz.com)
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.
Tests were conducted on the following system: