[Twisted-web] Multithread SSL

Yann Pomarede yann.pomarede_twisted at gadz.org
Wed Jun 24 15:25:45 EDT 2009

Thanks for your reply.
I already thought about that but I'll have other problems if I do so:
- I need some variables to be common between the instances (Maybe it's
not so difficult with RPC or a DB or shared memory).
- I also need to keep a pool of all the outgoing the connections (to
perform some real time stats and to limit the number of connection per

But if I do not have other choices, it's certainly what I'll have to do...


On Wed, Jun 24, 2009 at 21:08, Duncan M.
McGreggor<duncan.mcgreggor at gmail.com> wrote:
> Yann Pomarede wrote:
>> Hello,
>> I used Twisted to write some kind of proxy and it's working great,
>> it's so easy to develop and understand.
>> But I have a problem. I use SSL (on both side of this app) and the
>> bandwidth available is limited to the power of one of my CPU due to
>> the high cost of the SSL encryption.
>> I would like to use both core of my CPU to increase the bandwidth of
>> this application but it does not seem easy to do.
>> # Here is the server definition in myapp.tac
>> from twisted.application import internet, service
>> application = service.Application('MyApp', uid=1001, gid=1001)
>> internet.SSLServer(80, serverFactory, MySSLContext(), 50,
>> 'xxx.xxx.xxx.xxx').setServiceParent(service.IServiceCollection(application))
>> # And here the clients connections
>> from twisted.internet import reactor, ssl
>> mySSLContext = ssl.ClientContextFactory()
>> mySSLContext.method = SSL.SSLv23_METHOD
>> reactor.connectSSL(self.HOST, self.PORT, self, mySSLContext)
>> Does anyone already have this kind of problem? Is there an easy way to
>> multithread the SSL encryption part?
> You could run two instances and load balance them...
> d
> _______________________________________________
> Twisted-web mailing list
> Twisted-web at twistedmatrix.com
> http://twistedmatrix.com/cgi-bin/mailman/listinfo/twisted-web

More information about the Twisted-web mailing list