From: Ian B. <ia...@co...> - 2003-03-05 21:18:49
|
On Wed, 2003-03-05 at 12:48, Geoff Gerrietts wrote: > I'm part of a small dev team working on a website with pretty big > traffic. Today, we have zope in front of ILU (yes, ILU) on Python > 1.5.2 as our platform. We have right around 30 servers deployed, over > twenty of them running Zope, and we're having problems keeping up > during peak ours. We expect to be completely overwhelmed by June. ILU like CORBA? Huh... > We have a fairly lengthy list of proposed requirements, but the > biggest is that our site is very dynamic on almost every page, and we > have a high volume of traffic that's climbing every day. It's also > worth noting that we plan to stop distributing processes in a > services-based architecture, and plan to distribute only the sessions: > everything else will run on a single box. I'm not entirely clear what you mean here -- do you mean each box will run the entire application? We've discussed this stuff on the list, but no one yet has actually had the need to implement it -- ultimately I think we decided the best way to use Webware with multiple servers is to put some sort of session affinity into mod_webkit (or somehow structure it so that another balancer like Pound could ensure session affinity). Then presumably only the database needs to be shared, and sharing a database is easy. > I'm concerned about performance, but less today than yesterday. My > biggest concern today is finding people who have proven technological > solutions in play at high-volume sites. I'd also appreciate a candid > evaluation of the "readiness state" of python technologies, including > WebKit's various components. Well, I don't think there's many very high volume sites using Webware, but I do think it is very robust. Lots of us have run Webware sites for long periods of time without problem -- I have a Webware AppServer that's been up for a month on a public site (I must have editing something a month ago, can't remember what), and it's not using too much memory or having any other problems; I'm sure other people have gone much longer. Under high load potentially there could be threading problems we haven't seen -- there actually was one that just came up, that Webware's __import__ overloading wasn't threadsafe, which it looks like Jason Hildebrand identified and solved (though it requires an update to Python itself, unfortunately). PSP seems pretty reliable. I'm not really sure where MiddleKit is. There really aren't all that many parts to Webware. Related projects like Cheetah or FunFormKit are not as well proven as Webware, but I they are pretty stable. > I would also appreciate any pointers to good solutions I might have > overlooked. > > I've examined mod_python and Twisted, and looked at new versions of > Zope, and at WebWare. The former don't appear to do what we want, and > I'm still trying to sort out the details of the latter two. My belief > is that Zope (because DTML is interpreted on the fly) will be too slow > for our needs. Well, given enough effort you can always fix performance. After all, you don't have to use DTML in Zope -- you could implement key parts as Python products, wrap them in other structures that are simpler than DTML, etc. Ditto ZODB, which may also be a big bottleneck. But at some point you're no longer getting Zope's benefits, while still being penalized for performance, and restricted in the structure of your programming. I don't think mod_python would have many advantages over Webware -- there's more infrastructure you'll have to build, and I don't think the performance will be significantly better. Twisted potentially could be faster than Webware, though I would question Twisted's stability as a platform, including the stability of its architecture. The asynchronous model seems to leave open more of a possibility that a bug in one part of the application will take down the entire server. The experience with Webware seems to be that the only fatal bugs like this are from buggy C modules (Postgres modules were a common problem at one time, though they must have improved since then). More comparable frameworks to Webware would be something like SkunkWeb or Quixote, which I believe will have similar performance and stability to Webware. The distinction is between these is mostly stylistic, though Webware is the oldest and I suspect most used of these. -- Ian Bicking ia...@co... http://colorstudy.com 4869 N. Talman Ave., Chicago, IL 60625 / 773-275-7241 "There is no flag large enough to cover the shame of killing innocent people" -- Howard Zinn |