diff options
author | intrigeri <intrigeri@boum.org> | 2008-11-12 01:08:57 +0100 |
---|---|---|
committer | intrigeri <intrigeri@boum.org> | 2008-11-12 01:08:57 +0100 |
commit | b19d0d3d245c7c2b605ac6c972c73c909a941db4 (patch) | |
tree | 4e8b120402eae5ebd2387f3c4439da77df8c8b99 /doc/todo | |
parent | ef536f46bdeee120c7a805d92490db5769ed372f (diff) | |
parent | 3937e1fb1679ab6ebdf3a00f52187e3581691f3f (diff) |
Merge commit 'upstream/po' into prv/po
Diffstat (limited to 'doc/todo')
-rw-r--r-- | doc/todo/avoid_thrashing.mdwn | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/doc/todo/avoid_thrashing.mdwn b/doc/todo/avoid_thrashing.mdwn new file mode 100644 index 000000000..45b11d872 --- /dev/null +++ b/doc/todo/avoid_thrashing.mdwn @@ -0,0 +1,22 @@ +Problem: Suppose a server has 256 mb ram. Each ikiwiki process needs about +15 mb, before it's loaded the index. (And maybe 25 after, but only one such +process runs at any time). That allows for about 16 ikiwiki processes to +run concurrently on a server, before it starts to swap. Of course, anything +else that runs on the server and eats memory will affect this. + +One could just set `MaxClients 16` in the apache config, but then it's also +limited to 16 clients serving static pages, which is silly. Also, 16 is +optimistic -- 8 might be a saner choice. And then, what if something on the +server decides to eat a lot of memory? Ikiwiki can again overflow memory +and thrash. + +It occurred to me that the ikiwiki cgi wrapper could instead do locking of +its own (say of `.ikiwiki/cgilock`). The wrapper only needs a few kb to +run, and it starts *fast*. So hundreds could be running waiting for a lock +with no ill effects. Crank `MaxClients` up to 256? No problem.. + +And there's no real reason to allow more than one ikiwiki cgi to run at a +time. Since almost all uses of the CGI lock the index, only one can really +be doing anything at a time. --[[Joey]] + +[[done]] |