Here are some benchmarks using different server types. The current release results are marked with light blue background.

CGI

All benchmarks run

ab -n 100 -c 10 http://localhost/wikiname/WhyWikiWorks

Request per second

95% requests served within

MoinMoin

Python

Web server

OS

Hardware

10.65

1185

PikiPiki1 1.6.2

2.4

Apache 2

Mac OS X 10.3.7

G5 2x2G 1.5G RAM

4.18

2665

1.2.4

2.4

Apache 1.3

Mac OS X 10.3.3

G5 2x2G 1.5G RAM

3.91

2864

1.1

2.3 (2.4 much slower)

Apache 1.3

Mac OS X 10.3.3

G5 2x2G 1.5G RAM

3.79

2956

1.3.3 dev patch-538+

2.4

Apache 1.3

Mac OS X 10.3.3

G5 2x2G 1.5G RAM

3.65

2988

1.3.2

2.4

Apache 2

Mac OS X 10.3.3

G5 2x2G 1.5G RAM

3.18

3476

1.3.1

2.4

Apache 1.3

Mac OS X 10.3.3

G5 2x2G 1.5G RAM

3.16

3312

1.3.4

2.3

Apache 1.3

Xandros Linux 2.0

Athlon XP 2000 512 MB

2.95

3741

1.3.0

2.4

Apache 1.3

Mac OS X 10.3.3

G5 2x2G 1.5G RAM

0.34

31888

1.3.4

2.3

Apache 1.3

Mac OS X 10.3.7

G4 800 MHz 512MB

  1. PikiPiki (http://sourcefrog.net/projects/piki/) is the father of MoinMoin. Its a one file, 580 lines wiki without many features. (1)

Standalone

WhyWikiWorks

All benchmarks run

ab -n 1000 -c 10 http://localhost:8000/WhyWikiWorks

Request per second

95% requests served within

MoinMoin

Python

OS

Hardware

32.99

354

1.2.4

2.4

Mac OS X 10.3.3

G5 2x2G 1.5G RAM

29.71

390

1.3.5 dev (2 2x SimpleServer)

2.4

Mac OS X 10.3.7

G5 2x2G 1.5G RAM

26.36

667

1.3.5 (1 2x SimpleServer)

2.4

Mac OS X 10.3.7

G5 2x2G 1.5G RAM

17.22

671

1.3.3 dev patch-538+

2.4

Mac OS X 10.3.3

G5 2x2G 1.5G RAM

16.14

624

1.3.5 (SimpleServer)

2.4

Mac OS X 10.3.7

G5 2x2G 1.5G RAM

13.42

815

1.3.2

2.4

Mac OS X 10.3.3

G5 2x2G 1.5G RAM

12.42

887

1.3.5 (ThreadPoolServer)

2.4

Mac OS X 10.3.7

G5 2x2G 1.5G RAM

11.20

996

1.3.5 (ThreadingServer)

2.4

Mac OS X 10.3.7

G5 2x2G 1.5G RAM

9.47

1676

1.3.4

2.3

Xandros Linux 2.0

Athlon XP 2000 512MB

6.55

1713

1.3.1

2.4

Mac OS X 10.3.3

G5 2x2G 1.5G RAM

4.64

2409

1.3.0

2.4

Mac OS X 10.3.3

G5 2x2G 1.5G RAM

3.90

2760

1.3.5 (ForkingServer)

2.4

Mac OS X 10.3.7

G5 2x2G 1.5G RAM

  1. - running 2 SimpleServer processes and pound load balancer.

  2. - running 2 SimpleServer processes and PLB load balancer using 1.3.5 dev code that add transparent url mapping when using a proxy.

All benchmarks run

ab -n 100 -c 10 'http://localhost:8000/?action=fullsearch&context=180&value=mail&titlesearch=Titles'

Moin-1.2 run:

http://localhost:8000/FrontPage?action=inlinesearch&text_title=mail

Request per second

95% requests served within

MoinMoin

Python

OS

Hardware

47.94*

258

1.2.4

2.4

Mac OS X 10.3.3

G5 2x2G 1.5G RAM

12.58

991

1.3.3 dev patch-538+

2.4

Mac OS X 10.3.3

G5 2x2G 1.5G RAM

11.37

1045

1.3.2 dev patch-537

2.4

Mac OS X 10.3.3

G5 2x2G 1.5G RAM

10.80

1144

1.3.2

2.4

Mac OS X 10.3.3

G5 2x2G 1.5G RAM

1.04

18896

1.3.1

2.4

Mac OS X 10.3.3

G5 2x2G 1.5G RAM

NoSuchPage

Visiting non existing page, Show the MissingPage content. In 1.2, this was done in the code, in 1.3, an underlay page called MissingPage is rendered (much slower). This page contain two macros that need the full page list - painfully slow on 1.3, called twice on this page, because macro can't share data.

ab -n 100 -c 10 http://localhost:8000/NoSuchPage

Request per second

95% requests served within

MoinMoin

Python

OS

Hardware

19.77*

649

1.2.4

2.4

Mac OS X 10.3.3

G5 2x2G 1.5G RAM

7.18

1517

1.3.3 dev patch-538+

2.4

Mac OS X 10.3.3

G5 2x2G 1.5G RAM

6.09

1840

1.3.2 dev patch-537

2.4

Mac OS X 10.3.3

G5 2x2G 1.5G RAM

5.44

1981

1.3.2

2.4

Mac OS X 10.3.3

G5 2x2G 1.5G RAM

0.55

18715

1.3.1

2.4

Mac OS X 10.3.3

G5 2x2G 1.5G RAM

Twisted

All benchmarks run

ab -n 1000 -c 10 http://localhost:8080/WhyWikiWorks

Twisted configured with the default 10 threads.

Request per second

95% requests served within

MoinMoin

Python

OS

Hardware

9.83

1941

1.3.2

2.4, Twisted 1.3.0

Mac OS X 10.3.3

G5 2x2G 1.5G RAM

7.78

2085

1.3.5

2.4, Twisted 2.0.1

Mac OS X 10.3.7

G5 2x2G 1.5G RAM

3.84

3780

1.3.5

2.4, Twisted 2.0.0, Psyco 1.4

Gentoo Linux 2.6.14.2

Celeron (Mendocino) 550Mhz 384M RAM

2.76

6149

1.3.5

2.4, Twisted 1.2.0, Psyco 1.4

Gentoo Linux 2.6.14.2

Celeron (Mendocino) 376Mhz 384M RAM

Fast CGI

Multiple processes

All benchmarks run

ab -n 1000 -c 10 http://localhost/wikiname/WhyWikiWorks

Request per second

95% requests served within

MoinMoin

Python

Web server

OS

Hardware

27.97

373

1.3.5

Python 2.4

Apache 2.0.54 mod_fastcgi 2.4.2 static server, 2 processes

Mac OS X 10.3.7

G5 Dual 2G 1.5G RAM

27.07

383

1.3.3

2.4

Apache 2.0.54 mod_fastcgi 2.4.2 static server, 2 processes

Mac OS X 10.3.7

G5 Dual 2G 1.5G RAM

26.61

391

1.3.4

2.4

Apache 2.0.54 mod_fastcgi 2.4.2 static server, 2 processes

Mac OS X 10.3.7

G5 Dual 2G 1.5G RAM

26.43

466

1.3.5

2.4

Apache 2.0.54 mod_fastcgi 2.4.2 static server, 4 processes

Mac OS X 10.3.7

G5 Dual 2G 1.5G RAM

26.18

597

1.3.5

2.4

Apache 2.0.54 mod_fastcgi 2.4.2 static server, 8 processes

Mac OS X 10.3.7

G5 Dual 2G 1.5G RAM

Threaded

Using Apache 1.3 with static fast CGI server with 2 threaded processes (multiple cpus used).

All benchmarks run

ab -n 1000 -c 10 http://localhost/wikiname/WhyWikiWorks

Request per second

95% requests served within

MoinMoin

Python

Web server

OS

Hardware

24.26

912

1.3.2 dev patch-515

2.4

Apache 1.3

Mac OS X 10.3.3

G5 2x2G 1.5G RAM

Mod Python

All benchmarks run

ab -n 1000 -c 10 http://localhost/wikiname/WhyWikiWorks

Request per second

95% requests served within

MoinMoin

Python

Web server

OS

Hardware

22.15

836

1.3.2 dev patch-537

2.3

Apache 1.3, Mod Python 2.7.10

Mac OS X 10.3.3

G5 2x2G 1.5G RAM

21.27

911

1.3.2

2.4

Apache 2, Mod Python 3.1.3

Mac OS X 10.3.3

G5 2x2G 1.5G RAM

20.75

929

1.3.5

2.4

Apache 2, Mod Python 3.1.3

Mac OS X 10.3.7

G5 2x2G 1.5G RAM

18.45

1042

1.3.4

2.4

Apache 2, Mod Python 3.1.3

Mac OS X 10.3.7

G5 2x2G 1.5G RAM

13.21

812

1.3.4

2.4.1

Apache 2.0.54, Mod Python 3.2.0 dev (2005-06-28)

WinXP Pro SP2

P4-3GHz, 512 MB

11.86

1120

1.3.4

2.3

Apache 1.3, Mod Python 2.7.8

Xandros Linux 2.0

Athlon XP 2000 512 MB

OrphanedPages Speed

Python CPU time for Standalone startup and OrphanedPages rendering with fresh underlay dir:

MoinMoin 1.3.2 devel, patch 537

~ 2 min. 10 seconds

570 pages

MoinMoin 1.3.2 devel, somewhere ~ patch 500

~ 5 min.

593 pages

MoinMoin 1.3 rc1

~ 7 min.

593 pages

MoinMoin 1.3 beta1

~ 1 min. 40 seconds

447 pages

Build Lupy index

running moin-build-index on a fresh new 1.3.5 wiki. This include rendering of pagelinks cache files, indexing page text and optimizing the index.

Seconds

MoinMoin

Python

OS

Hardware

103s

1.3.5

2.3.5

Debian GNU/Linux

Dual Athlon 2000 (according to /proc/cpuinfo)

Serving Static Files

This is not an issue usually, as browsers cache images and css files.

ab -n 1000 -c 10 http://localhost/wiki/modern/css/screen.css

Request per second

95% requests served within

MoinMoin

Web Server

Python

OS

Hardware

1510

10

1.3.5 dev

CGI Apache 2.0.54

2.4

Mac OS X 10.3.7

G5 2x2G 1.5G RAM

794

16

1.3.5 dev

Standalone SimpleServer

2.4

Mac OS X 10.3.7

G5 2x2G 1.5G RAM

603

36

1.3.5 dev

1 Standalone 2x SimpleServer

2.4

Mac OS X 10.3.7

G5 2x2G 1.5G RAM

475

31

1.3.5 dev

Standalone ThreadPoolServer

2.4

Mac OS X 10.3.7

G5 2x2G 1.5G RAM

  1. - running 2 SimpleServer processes and PLB load balancer.

Discussion

Some of the server use all cpus by using multiple processes, thus they give better results. Currently we don't have a way to use 2 standalone or twisted processes serving the same address, so you multiple cpu server will be idle with these servers. -- NirSoffer 2005-01-05 00:09:59

Results are a bit suprising to me - the mod_python/fastcgi figures appear believable against the CGI ones (although I'd prefer to see these against a current 2.0.x Apache and current mod_python). However the Twisted figures seem very strangely low. What am I missing? -- NigelMetheringham 2005-01-05 13:20:31

You don't miss anyting - this is what you get from twisted on this platform. Maybe it run better on other platforms. Add your results here. About current 2.0.x Apache and mod_python, somebody with this setup will have to add the results. -- NirSoffer 2005-01-05 14:08:17

Yeah, even if you double the value it is not very much for Twisted. So any other persistent server is faster. But be aware of the fact that standalone does not serve static files very fast.

Maybe Twisted is slow on Mac OS X because it hits some pitfalls of the libc on that platform. Or it is really our wrapper code. -- AlexanderSchremmer 2005-01-09 11:45:08

1.3.3 results are based on patch-538 with replacement of get_rev, get_rev_dir, getPageBasePath and getPageStatus with simpler and more efficient code, including page state caching in request. With this code, disk access is done only once per page, even if you create multiple instances of the same page.

Request

Please could someone with 1.3.5 try to test a page with lots of attachments (e.g. 200). They need to be only attached not used in the text. I have some very strange behaviours here. Sometimes I think it takes seconds to get actions called on such a page e.g. open in the editor. My feeling is that is was different in 1.3.4. May be there is a bottleneck. -- ReimarBauer 2005-08-18 15:12:01

MoinMoin: MoinBenchmarks (last edited 2007-10-29 19:06:11 by localhost)