> I have a twisted Perspective Broker based server. Recently with an > increased number of clients we are seeing a decrease in throughput. > Profiling the server it seems that it is spending the majority of time > sending messages to the clients (unsuprisingly).
PyPy might speed this up quite a bit; http://speed.pypy.org suggests PyPy can send PB messages 3 times as fast as CPython. You could also switch to a protocol that has a faster serialization, which shouldn't be too hard if your usage of PB is sufficiently simple. > Messages are sent to the client from the server using a callRemote, > invoked from the event queue using reactor.callFromThread - nice and > simple. What designs have people used to improve throughput in a heavily > loaded server? My experience is telling me that I need to implement some > sort of thread/process pool to divide the messaging to clients. Various > documents on the twisted website strongly suggets that this is not a good > idea. Threading won't help much if you're CPU bound, since Python can only run one Python thread at once. Process pooling probably would help, though will involve a more complex infrastructure. Which part of the docs made you think that process pooling is a bad idea? _______________________________________________ Twisted-Python mailing list Twisted-Python@twistedmatrix.com http://twistedmatrix.com/cgi-bin/mailman/listinfo/twisted-python