[freenet-support] Insane load averages again. (build 535)
For a while, for a long while actually, freenet builds have been working without pegging my cpu meters at 100%... for whatever reason, build 535 likes doing absolutely absurd things to my load average. I can have no activity for minutes and suddenly BAM! up to loadaverage 12 in seconds. Whatever is going on is getting a little silly. :/ I'm running debian unstable (kernel 2.4.19) with sun's j2re1.4.1_01 and freenet 535. I am using a K6-III 400 with 320MB of ram and a 512MB store. Another thing. I noted this before, but nobody has replied about it in a while... When I set bandwidth to 1 or use the default using BandwidthLimit in the configuration file, freenet does NOT limit itself to using 10Kb/S - it winds up using my entire upstream (15Kb/S) more than half the time for uploading data. And I was not using other programs at the time other than an IRC client, and that uses less than a kilobyte per second. I have tried other things, and found by setting this at 5000, it works. I don't know WHY it works and the 1 setting doesn't, only that it does work at setting 5000. Finally, I tried using the independent bandwidth settings for input and output (inputBandwidthLimit and outputBandwidthLimit) - setting input to 15000 and output to 5000 again, works. Now don't forget that I'm currently running the 535 build and I've been seeing this behavior since 532, which is when I first started using freenet. I would appreciate ideas, and general discussion of these problems as they're annoying me quite a bit. :) Tim McGrath ___ support mailing list [EMAIL PROTECTED] http://hawk.freenetproject.org/cgi-bin/mailman/listinfo/support
Re: [freenet-support] Bandwidth settings
On Sat, Nov 09, 2002 at 08:33:57AM -0500, Greg Wooledge wrote: [EMAIL PROTECTED] ([EMAIL PROTECTED]) wrote: The default of 1 doesn't seem to properly limit the amount of use to 1 - my outgoing data stream winds up using everything it has (15K) for long periods of time while I have freenet running. A side effect of this seems to be that my freenet node has load spikes where normally it'll be sitting at around load average 2 or 3 and suddenly spike to around 15 or even as high as 20 sometimes. Using which build of Freenet? The high load average problem is fixed in build 533. Sorry for neglecting to say that. I'm using build 534 currently. Tim McGrath ___ support mailing list [EMAIL PROTECTED] http://hawk.freenetproject.org/cgi-bin/mailman/listinfo/support
[freenet-support] Re: Freenet uses java and I'm a loon.
I am surprised and delighted to report that after upgrading to the current freenet update my performance problems have disappeared completely. I am now able to work with the default thread and server connection settings. Apparently earlier versions to the just released version weren't working right! Tim McGrath ___ support mailing list [EMAIL PROTECTED] http://hawk.freenetproject.org/cgi-bin/mailman/listinfo/support
[freenet-support] Freenet bug?
While the current release (531) works great here cpuwise, I just noticed something extremely odd here in http://localhost:/servlet/nodeinfo/performance/general : # Active pooled jobs: 136 (113.36%) [Rejecting incoming connections and requests!] # Available threads: 54 Now, I understand that it's rejecting requests to do other work, right? ... ... It's not actually serving any data at all, although it has quite a few connections in iptraf. I've been monitoring it for around six minutes and the load isn't going down very quickly, I only saw one job drop off the queue. Very little data is being sent or recieved, and the cpu use of the daemon is practically negligible. (load average is 0.00 actually. Oy.) Also as I watch it now, the daemon is only connected to 5 servers. It's hard to watch it through iptraf, but it doesn't look to me like any of the servers are sending or recieving any data at all. The server isn't even responding to local requests for information. Something seems very wrong. Errors I've recieved recently (The last 24 hrs) in the logs: Nov 6, 2002 1:57:49 AM (freenet.node.ds.FSDataStoreElement$KeyInputStreamImpl, Finalizer): Please close() me manually in finalizer: Key: 683f38303336237daf9543e23b285c04e703751b100302 Buffer: freenet.fs.dir.NativeFSDirectory$ExternalNativeBuffer@7b4703 New: true ( 0 of 65600 read) java.lang.IllegalStateException: unclosed at freenet.node.ds.FSDataStoreElement$KeyInputStreamImpl.finalize(FSDataStoreElement.java:312) at java.lang.ref.Finalizer.invokeFinalizeMethod(Native Method) at java.lang.ref.Finalizer.runFinalizer(Finalizer.java:83) at java.lang.ref.Finalizer.access$100(Finalizer.java:14) at java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:160) === StateChain started at Wed Nov 06 01:48:20 EST 2002 Current state: Request Done @ f95052bb7196f417 === Nov 6, 2002 4:53:24 AM (freenet.node.states.request.TransferReply, QThread-1538): Upstream node sent bad data! Nov 6, 2002 4:53:24 AM (freenet.node.states.request.TransferReply, QThread-1537): Failed to send data with CB 0x81 (CB_BAD_DATA), on chain 9a94e18541637251 If you need any other information, please let me know. ___ support mailing list [EMAIL PROTECTED] http://hawk.freenetproject.org/cgi-bin/mailman/listinfo/support
[freenet-support] Re: Freenet bug?
Hmm. I've noticed something recently. I have had the two same connections 'open' according to http://localhost:/servlet/nodeinfo/networking/ocm for a insanely long amount of time. Iptraf reports no connections are currently running, certaintly not by those ip addresses. Peer addrOpenSend CountReceivingLifetimeMessages ThreadTypeID tcp/194.153.168.129:52196 yes 0 yes 34422575 1 QThread-1783 Inbound 1a00355 tcp/213.153.48.24:2561 yes 0 no 13584673 3 QThread-1817 Inbound 3af8a6 My daemon is still using no cpu and is still according to it overloaded severely. Diagnostics reports really weird values in some bits: insufficient threads says there have never been an occurence of no thread being available for a task. http://localhost:/servlet/nodestatus/diagnostics/jobsPerQThread/hour also shows the 'qthreads' stopped doing tasks at around 7am, and all entries afterwards are NaN hour1036573200 11.555084745762711 14.051661415214742 1.0 46.0472 hour1036576800 15.421875 16.5401368186334NaN NaN 384 hour1036580400 14.341708542713567 14.385171205150542 NaN NaN 199 hour1036584000 NaN NaN NaN NaN 0 hour1036587600 NaN NaN NaN NaN 0 http://localhost:/servlet/nodestatus/diagnostics/globalQueryTrafficDeviation/hour shows some interesting information, although I can't understand heads or tails of what it's trying to say. Again, after 7am, interesting information occurs. in this instance however, all entries match eachother exactly! (no std deviation. minimum is exactly the same as maximum... really odd) I'd include examples here but copy and pasting is producing strange results. wait, let me see... I think this will work: hour1036580400 3893.9370370370366 2.9721561091352338 3890.1 3895.85554 6 hour1036584000 3895.85554 0.0 3895.85554 3895.85554 6 hour1036587600 3895.85554 0.0 3895.85554 3895.85554 6 ... That sort of worked. Anyway, I think you can see that all the entries match. In fact, every single one matches after 7am. :/ I can't think of any other data I can include that would help. If you need something let me know, I'm leaving this node running as it's basically not productive, but also not hurting anything by running in this state. In the last four hours, the amount of jobs to do has not gone down by more than one, and in some cases it has increased. :/ I think something is seriously fubared somewhere important in this thing ^^; Tim McGrath ___ support mailing list [EMAIL PROTECTED] http://hawk.freenetproject.org/cgi-bin/mailman/listinfo/support
Re: [freenet-support] Re: Freenet bug?
I *was* using 501. I think 503 fixed this. I've been running it for a few hours and it's both functioning at low cpu use *and* it's working too. Tim McGrath ___ support mailing list [EMAIL PROTECTED] http://hawk.freenetproject.org/cgi-bin/mailman/listinfo/support
[freenet-support] Freenet uses java and I'm a loon.
On Tue, Nov 05, 2002 at 04:53:07PM +, 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