On Tue, Nov 05, 2002 at 04:53:07PM +0000, Matthew Toseland wrote:
> > Anyway, I just noticed freenet figures out the loadaverage NOT by the 
> > operating system, but by the amount of threads in use vs threads not in 
> > use. This means settings greater than 1 are useless, for obvious 
> Well, we don't think they are completely _useless_. But java does not
> provide us with anything useful like CPU usage, so we have to make do.
Hmm. My lack of knowledge of java rears it's ugly head here. I simply 
had assumed it was capable of getting the information from the operating 
system not realizing java (Nor windows for that matter) doesn't have 
that ability. Dohmeter++

> > reasons. This also means that the configuration setting is misleading, 
> > confusing, and basically useless for a real world config. We (I most 
> > certaintly at least) cannot rely on a setting that doesn't actually do 
> > anything useful. I believe currently the only real way to reduce the 
> > amount of cpu used in a REAL way is to actually lower the amount of 
> > threads and the amount of connections to other servers that can be used.
> Nodes have often run with many connections without hogging the whole CPU 
> or the whole network connection. Connections really aren't that
> expensive. The threads are mostly idle, likewise, since most of them are
> used for blocking comms. We could rewrite fred to use nonblocking I/O,
> and we may eventually, but it would be an enormous amount of work and
> have portability-to-free-JVMs issues (although the current code has
> those too)

Hmm. I'm not saying rewrite it, and I didn't mean to attack you. I'll 
be the first to admit that when I was writing this last night I was a 
bit tired and wasn't thinking completely clearly, nor did I bother to 
read what I wrote. As I read my own writing, I notice my frustration 
was making me quite a bit more hostile than I intended. Please accept 
my apologies.

Let me try to explain what I'm seeing here.

With the default settings of 60 server connections and 120 threads, my 
computer after it's being accessed for a while bogs down considerably 
and my load average soars above 15, sometimes as high as 20 depending on 
if I'm trying to do something else. (Nearly anything, really.)

I've tried a number of things that have helped in minor ways: I've 
disabled datastore encryption (Which I *KNOW* I shouldn't advocate but 
it did help) hacked the startup file to run the daemon niced 19 (Which 
helped me take control of my system back whenever the daemon would go 
basically insane...)

(Note I discribe 'basically insane' as while watching my gkrellm meter 
without freenet running I get ~70 procs running. With freenet running 
for a while, I have well over *300* procs running around. I uh. Don't 
think it's supposed to be doing that.)

While doing these things both decreased the daemon's response time, and 
enabled me to control the machine whenever the daemon would lose it's 
mind, freenet still makes the load average soar to around 14-18. I can't 
have the daemon running and do other things like this.

The only *really* noticable way I found to lower the loadaverage was 
when I decreased the amount of threads running to 1. I suddenly had a 
practically useless daemon, but it gave me ideas, so I experimented with 
the thread settings as I watched my gkrellm meter to give me the amount 
of procs in use. I quickly learned that despite the threads setting, I'd 
still spawn a large number of threads whenever an outside connection 
contacted my server, (I'm watching it via iptraf) and I realized the 
server connections setting controlled this.

I experimented, and experimented, and experimented.

I've found that no matter what I do, if I increase *either* the server 
connections to somewhere above 20 (lowest I tried above that was 30) or 
the maximum amount of threads above 20, (again, lowest I tried 
above this was 30) things start to overload my machine really fast.

It's a large difference between 20 and 30. For either setting. My load 
average maximum is generally very low when at 20, between 0.5 and 1, 
sometimes as high as 2 when a lot of servers get lucky and get in the 
queue. When I try setting 30 on either server connections or maximum 
threads, my load average suddenly has this annoying tendency to soar 
past 4 or even 5. I don't really understand what's going on here so 
comments are appreciated.

Now before I go any further, I'd like to humbly ask, since I don't 
understand, how the Overloadlow/high settings are useful. When the 
low/high thresholds in threads are hit what is supposed to happen? 

It seems to me - *seems* as I don't actually *know* - that 
when the threshold is reached, the remaining 'free' threads aren't used 
by anything. I'm starting to think my assumptions are wrong here and that 
maybe I should do 20/120 and put that as my low threshold point and 
leave the maxthreads setting alone. I'm worried that setting the threads 
this low is a bad idea and the general feeling I'm getting from people 
is such.

However, before I do anything else I'd like comments, and 
recommondations on what I should do before I mess up anything else. :)

Some information about the system this is running on:
K6-III 400 with 320MB of ram running debian linux 2.4.19.
I'm using sun's jvm version j2re1.4.1_01

I can't think of anything else that would be useful for you to know. Ask 
and ye shall recieve, I'll even send my freenet.conf on request.

Tim McGrath

> > I guess the real question is why he expected anything different. ;-)
Because I think I know everything and then realize I'm inexperienced 
with using java applications? :)

I'm going to *try* to send this to the freenet support list, but I don't 
know if it's going to work. My ISP's email server has been rather 
finicky of late.


_______________________________________________
support mailing list
[EMAIL PROTECTED]
http://hawk.freenetproject.org/cgi-bin/mailman/listinfo/support

Reply via email to