A problemática começa aqui, ou seja, não basta fazermos ajustes no servidor Zope, é importante tornar o seu interpretador mais poderoso.
Os recursos mais comuns quando precisamos de mais poder de processamento são: multi-thread http://www.python.org/doc/2.4/api/threads.html e multi-cpu. O python nasceu com multi-thread, porém não com multi-cpu. Isto tem um preço quando a performace é requisito. Na prática quando executamos o Zope, zope.conf padrão, verificamos que é criado 4 threads sob o controle de um único processo python, controlado pelo Global interpreter lock ou GIL http://www.python.org/moin/PythonGlossary. Em um ambiente multi-cpu o GIL restringe a cada thread utilizar a mesma área de memória Zope/python, não tirando proveito do multi-processamento.
O lock usado pelo Python assegurar que somente uma thread pode ser executada em um dado momento. Isto simplifica o gerenciamento de theads do Python, assegurando que nenhum dos dois processos possam acessar o mesmo endereço de memória ao mesmo tempo. O que justifica restringir o interpretador para tornar o ambiente multi-threads, contudo não deixa de utilizar o paralelismo de máquinas com multi-processadores. Na história do python tentou-se desenvolver um "free-thread", porém a performace em ambiente uni-processo foi muito baixa.
krishna 2005-09-16