How well does SchoolTool run on multiple processor servers?

Asked by Tom Hoffman on 2008-04-25

What kind of server should I use?

Question information

English Edit question
SchoolTool Edit question
No assignee Edit question
Solved by:
Tom Hoffman
Last query:
Last reply:
Tom Hoffman (tom-hoffman) said : #1

Python, the language both Zope 3 and SchoolTool is written in, is multi-threaded, but, as the Python/C API Reference Manual explains:

    "The Python interpreter is not fully thread safe. In order to support multi-threaded Python programs, there's a global lock that must be held by the current thread before it can safely access Python objects. Without the lock, even the simplest operations could cause problems in a multi-threaded program: for example, when two threads simultaneously increment the reference count of the same object, the reference count could end up being incremented only once instead of twice."

This means that a SchoolTool server will only use one processor at a time. If you are selecting a server to run SchoolTool exclusively, do not pay extra for a multi-processor box (increasingly, you're going to get multiple cores on a server whether you want them or not). Get the fastest processor you can afford. If you are picking a server to run SchoolTool and several other concurrent processes, then a multi-processor box is a reasonable choice.

A lot of memory is always a good idea as well.

Also note that there are many high-volume enterprise deployments of Zope. They simply use clustering and other techniques which don't require multi-processor boxes.