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