ID |
Date |
Icon |
Author |
Author Email |
Category |
OS |
ELOG Version |
Subject |
450
|
Wed Nov 12 12:25:44 2003 |
| Heiko Scheit | h.scheit@mpi-hd.mpg.de | Bug fix | Linux | 2.3.9 | speed is very slow if logbook contains many entries | This is not really a bug, but elogd was getting really slow with our
logbook. It took about 4 1/2 seconds just to get the default page in
threaded mode with 15 entries. The logbook has in total about 2000
entries, though.
After playing around with the compiler option '-gp' and gprof the
problem was found: loc() is called about 18000 times per logbook
access! (Attached you can find the gprof output. There might be
other places where to save time: e.g. getcfg().) The function loc()
calls stat every time to check if the language file was updated and
this takes a long time especially over NFS.
The quick solution for me was to just replace loc() with 'char
*loc(char *orig) {return orig;}'. Therefore, I cannot use the
localization that I used anymore, which is not a big problem at the
moment. After that the time to download the default page was only
0.16 s; almost a factor of 30 faster!
I would suggest to only read the language file (AND also the config
file!) once upon startup. After changing things one has to restart
elogd, which is not so nice, but the long delay is not acceptable.
Another option not to restart elogd is to make elogd respond to a
signal (e.g. kill -HUP) to reread the config and language files. |
451
|
Wed Nov 12 12:34:02 2003 |
| Stefan Ritt | stefan.ritt@psi.ch | Bug fix | Linux | 2.3.9 | Re: speed is very slow if logbook contains many entries | This is a very nice measurement you made and helps me a lot. I will
incorporte your suggestions into the next version. Under Windows however,
there is no -HUP signal, so that won't work for them. But what I can easily
do is to check for new configuration/language file once every access, not
once every loc() or getcfg(). I till think about.
Thanks again,
Stefan |
452
|
Tue Nov 18 23:19:57 2003 |
| Justin Dieters | enderak@yahoo.com | Comment | Linux | 2.3.9 | Update request for Admin Guide | Heya, I've been using elog for a year or so, with a proxy through Apache,
but recently I've ran into some trouble with my Apache config, where
spammers were using my incorrectly configured proxy to send spam.
I have
some requests for the Administrator's Guide: "Running elogd under Apache".
I'm hoping a few little notes will save others the trouble I've gone
through. Neither of these are any fault of elog's or Apache's, but of my own
ignorance. (I am using elog 2.3.9, and Apache 2.something, if that matters)
1) When doing "ProxyPass ..." when setting up elog under Apache, do NOT put
"ProxyRequests On". This is not needed, if it is enabled and not set up
correctly, it allows spammers to send spam via Apache's proxy. More
information on this is here: http://www.apacheweek.com/issues/03-07-25,
about halfway down the page, under "Spammers use open Apache proxies"
Even though it doesn't mention ProxyRequests in the guide, I think there
should be a little side note mentioning that "ProxyRequests On" is NOT
needed, because I put it in, thinking it was - I am probably not the only one.
2) I have found that mod_proxy_http.c must be loaded in addition to
mod_proxy.c and mod_alias.c for the proxy to work, otherwise I get a 403
error. I think this should be mentioned as well. |
454
|
Thu Nov 20 17:51:53 2003 |
| Stefan Ritt | stefan.ritt@psi.ch | Comment | Linux | 2.3.9 | Re: Update request for Admin Guide | Thanks, I added a note into the admin guide. |
455
|
Thu Nov 20 17:55:57 2003 |
| Stefan Ritt | stefan.ritt@psi.ch | Bug fix | Linux | 2.3.9 | Re: speed is very slow if logbook contains many entries | I implemented the new scheme where
- under Windows, the configuration is only checked once every access
- under Unix, the configuration is read initially, and on every -HUP signal
This should speed up the server considerably. The next bottleneck is the
rsputs2() function, which requires quite some computing power in order to find
any "http://", "//", etc. strings in every output. If anybody knows a
more clever way of coding that, please let me know.
The new version is under CVS. |
457
|
Mon Nov 24 10:25:10 2003 |
| Etienne Van Caillie | etienne.vancaillie@mba.be | Bug fix | Linux | 2.3.9 | Re: speed is very slow if logbook contains many entries | > I implemented the new scheme where
>
> - under Windows, the configuration is only checked once every access
>
> - under Unix, the configuration is read initially, and on every -HUP signal
>
> This should speed up the server considerably. The next bottleneck is the
> rsputs2() function, which requires quite some computing power in order to find
> any "http://", "//", etc. strings in every output. If anybody knows a
> more clever way of coding that, please let me know.
>
> The new version is under CVS.
may be use the logic in the 'format' attribute
like 'email', http, ftp
so elog will test only on these attributes |
467
|
Fri Feb 13 12:18:19 2004 |
| Heiko Scheit | h.scheit@mpi-hd.mpg.de | | Linux | 2.5.0 | segmentation fault |
Around line 2240 (in loc()) in elogd.c the following is written,
which results in an infinite loop, since loc() recursively with
the same argument "Change %s".
/* special case: "Change %s" */
if (strstr(orig, "Change ")) {
sprintf(result, loc("Change %s"), orig + 7);
return result;
}
For now I just commented these lines. |
468
|
Fri Feb 13 12:21:25 2004 |
| Heiko Scheit | h.scheit@mpi-hd.mpg.de | | Linux | 2.5.0 | elog (not elogd) submit does not work anymore | Somehow elog does not use the -s option (subdir) anymore,
resulting in a 'HTTP/1.1 404 Not Found' error.
For now I am using elog from version 2.3.9 together with elogd v2.5.0,
which seems to work OK. |
|