How many systems? What kind of disk is the system running on? If it's a slower SATA type, you might look at relocating the /var/lib/cobbler directory to another partition, especially if your server is busy (lots of http requests to /var/www for instance).
It's about 3000 systems. This is actually a sync'd copy of a production system that doesn't get any http requests at all. It's running in VMware, and I have a feeling that the bottleneck here is the back-end storage. It takes about 15 seconds just to do this:
allservers = xmlrpclib.Server("http://localhost/cobbler_api%22).get_systems()
I managed to resolve this by using the cPickle module to suck allservers into a pickle dump file. To speed it up even further we put the dump file on a ram disk. Now the graphs that were previously taking 30 seconds to render come up in 3-4 seconds.
I would like to publish the code for this at some point, I just have to check with the corporate overlords to make sure it's ok. ;-)