On Thu, Jun 18, 2009 at 8:50 PM, Evan Daniel<evanbd at gmail.com> wrote: > On Thu, Jun 18, 2009 at 8:00 PM, Matthew > Toseland<toad at amphibian.dyndns.org> wrote: >> Are you doing more testing? >> >> On Saturday 13 June 2009 19:05:36 Evan Daniel wrote: >>> On Sat, Jun 13, 2009 at 1:08 PM, Matthew >>> Toseland<toad at amphibian.dyndns.org> wrote: >>> > Now that 0.7.5 has shipped, we can start making disruptive changes again >>> > in a few days. The number one item on freenet.uservoice.com has been for >>> > some time to allow more opennet peers for fast nodes. We have discussed >>> > this in the past, and the conclusions which I agree with and some others >>> > do: >>> > - This is feasible. >>> > - It will not seriously break routing. >>> > - Reducing the number of connections on slow nodes may actually be a gain >>> > in security, by increasing opportunities for coalescing. It will improve >>> > payload percentages, improve average transfer rates, let slow nodes >>> > accept more requests from each connection, and should improve overall >>> > performance. >>> > - The network should be less impacted by the speed of the slower nodes. >>> > - But we have tested using fewer connections on slow nodes in the past >>> > and had anecdotal evidence that it is slower. We need to evaluate it more >>> > rigorously somehow. >>> > - Increasing the number of peers allowed for fast opennet nodes, within >>> > reason, should not have a severe security impact. It should improve >>> > routing (by a smaller network diameter). It will of course allow fast >>> > nodes to contribute more to the network. We do need to be careful to >>> > avoid overreliance on ubernodes (hence an upper limit of maybe 50 peers). >>> > - Routing security: FOAF routing allows you to capture most of the >>> > traffic from a node already, the only thing stopping this is the >>> > 30%-to-one-peer limit. >>> > - Coalescing security: Increasing the number of peers without increasing >>> > the bandwidth usage does increase vulnerability to traffic analysis by >>> > doing less coalescing. On the other hand, this is not a problem if the >>> > bandwidth usage scales with the number of nodes. >>> > >>> > How can we move forward? We need some reliable test results on whether a >>> > 10KB/sec node is better off with 10 peers or with 20 peers. I think it's >>> > a fair assumption for faster nodes. Suggestions? >>> >>> I haven't tested at numbers that low. ?At 15KiB/s, the stats page >>> suggests your slightly better off with 12-15 peers than 20. ?I saw no >>> subjective difference in browsing speed either way. >>> >>> I'm happy to do some testing here, if you tell me what data you want >>> me to collect. ?More testers would obviously be good. >>> >>> > >>> > We also need to set some arbitrary parameters. There is an argument for >>> > linearity, to avoid penalising nodes with different bandwidth levels, but >>> > nodes with more peers and the same amount of bandwidth per peer are >>> > likely to be favoured by opennet anyway... Non-linearity, in the sense of >>> > having a lower threshold and an upper threshold and linearly add peers >>> > between them but not necessarily consistently with the lower threshold, >>> > would mean fewer nodes with lots of peers, and might achieve better >>> > results? E.g. >>> > >>> > 10 peers at 10KB/sec ... 20 peers at 20KB/sec (1 per KB/sec) >>> > 20 peers at 20KB/sec ... 50 peers at 80KB/sec (1 per 3KB/sec) >>> >>> I wouldn't go as low as 10 peers, simply because I haven't tested it. >>> Other than that, those seem perfectly sensible to me. >>> >>> We should also watch for excessive cpu usage. ?If there's lots of bw >>> available, we'd want to have just enough connections to not quite >>> limit on available cpu power. ?Of course, I don't really know how many >>> connections / how much bw it is before that becomes a concern. >>> >>> Evan Daniel >> > > I'd been running the Spider, and trying to get a complete run out of > it in order to provide a full set of bug reports. ?Unfortunately, > after spidering over 100k keys (representing over a week of runtime), > the .dbs file became unrecoverably corrupted, and it won't write index > files. ?I had started rerunning it; I've since paused that and started > taking data on connections. > > I've got a little data so far at 12KiB/s limit, 10 and 12 peers. > Basically, I don't see a difference between 10 and 12 peers. ?Both > produce reasonable performance numbers. ?My node has 2 darknet peers, > remainder opennet. ?I'm not using the node much during these tests; it > has a few MiB of downloads queued that aren't making progress (old > files that have probably dropped off). > > Evan Daniel > > > 12 peers, 12 KiB/s limit > > # bwlimitDelayTime: 91ms > # nodeAveragePingTime: 408ms > # darknetSizeEstimateSession: 0 nodes > # opennetSizeEstimateSession: 63 nodes > # nodeUptime: 1h37m > > # Connected: 10 > # Backed off: 2 > > # Input Rate: 2.54 KiB/s (of 60.0 KiB/s) > # Output Rate: 12.9 KiB/s (of 12.0 KiB/s) > # Total Input: 31.3 MiB (5.5 KiB/s average) > # Total Output: 47.5 MiB (8.34 KiB/s average) > # Payload Output: 32.6 MiB (5.73 KiB/sec)(68%) > > 1469 ? ?Output bandwidth liability > 18 ? ? ?>SUB_MAX_PING_TIME > > Success rates > Group ? P(success) ? ? ?Count > All requests ? ?3.329% ?10,633 > CHKs ? ?9.654% ?3,377 > SSKs ? ?0.386% ?7,256 > Local requests ?2.022% ?2,176 > Remote requests ? ? ? ? 3.666% ?8,457 > Block transfers ? ? ? ? 95.646% ? ? ? ? 666 > Turtled downstream ? ? ?87.500% ? ? ? ? 8 > Transfers timed out ? ? 0.000% ?8 > Turtle requests ? ? ? ? 100.000% ? ? ? ?6 > > Detailed timings (local CHK fetches) > Successful ? ? ?9.503s > Unsuccessful ? ?6.656s > Average ? ? ? ? 6.700s > > > > 12 peers, 12 KiB/s limit > > # bwlimitDelayTime: 108ms > # nodeAveragePingTime: 380ms > # darknetSizeEstimateSession: 20 nodes > # opennetSizeEstimateSession: 107 nodes > # nodeUptime: 4h4m > > ? ?* Connected: 10 > ? ?* Backed off: 2 > > # Input Rate: 4.51 KiB/s (of 60.0 KiB/s) > # Output Rate: 12.9 KiB/s (of 12.0 KiB/s) > # Total Input: 95.3 MiB (6.64 KiB/s average) > # Total Output: 144 MiB (10.0 KiB/s average) > # Payload Output: 102 MiB (7.13 KiB/sec)(70%) > > 8661 ? ?Output bandwidth liability > 26 ? ? ?>SUB_MAX_PING_TIME > > Success rates > Group ? P(success) ? ? ?Count > All requests ? ?3.497% ?30,738 > CHKs ? ?9.048% ?11,119 > SSKs ? ?0.352% ?19,619 > Local requests ?4.497% ?4,025 > Remote requests ? ? ? ? 3.347% ?26,713 > Block transfers ? ? ? ? 96.388% ? ? ? ? 2,021 > Turtled downstream ? ? ?79.545% ? ? ? ? 44 > Transfers timed out ? ? 0.000% ?44 > Turtle requests ? ? ? ? 50.000% ? ? ? ? 16 > > Detailed timings (local CHK fetches) > Successful ? ? ?12.386s > Unsuccessful ? ?7.091s > Average ? ? ? ? 7.128s > > > > 10 peers, 12 KiB/s limit > > # bwlimitDelayTime: 78ms > # nodeAveragePingTime: 385ms > # darknetSizeEstimateSession: 0 nodes > # opennetSizeEstimateSession: 79 nodes > # nodeUptime: 3h31m > > ? ?* Connected: 9 > ? ?* Backed off: 1 > > # Input Rate: 8.25 KiB/s (of 60.0 KiB/s) > # Output Rate: 13.1 KiB/s (of 12.0 KiB/s) > # Total Input: 91.2 MiB (7.37 KiB/s average) > # Total Output: 127 MiB (10.3 KiB/s average) > # Payload Output: 92.9 MiB (7.50 KiB/sec)(72%) > > 4208 ? ?Output bandwidth liability > 8 ? ? ? >SUB_MAX_PING_TIME > 1 ? ? ? Insufficient output bandwidth > > Success rates > Group ? P(success) ? ? ?Count > All requests ? ?4.811% ?25,400 > CHKs ? ?11.310% ? ? ? ? 10,115 > SSKs ? ?0.510% ?15,285 > Local requests ?8.772% ?2,679 > Remote requests ? ? ? ? 4.344% ?22,721 > Block transfers ? ? ? ? 95.744% ? ? ? ? 2,091 > Turtled downstream ? ? ?81.481% ? ? ? ? 54 > Transfers timed out ? ? 0.000% ?54 > Turtle requests ? ? ? ? 33.333% ? ? ? ? 9 > > Detailed timings (local CHK fetches) > Successful ? ? ?7.040s > Unsuccessful ? ?13.240s > Average ? ? ? ? 13.220s >
Update with additional data: 12 KiB/s, 20 peers # bwlimitDelayTime: 87ms # nodeAveragePingTime: 456ms # darknetSizeEstimateSession: 0 nodes # opennetSizeEstimateSession: 913 nodes # nodeUptime: 3h53s # Connected: 12 # Backed off: 6 # Input Rate: 2.68 KiB/s (of 60.0 KiB/s) # Output Rate: 10.9 KiB/s (of 12.0 KiB/s) # Total Input: 90.9 MiB (8.58 KiB/s average) # Total Output: 126 MiB (11.9 KiB/s average) # Payload Output: 78.7 MiB (7.42 KiB/sec)(62%) 11077 Output bandwidth liability Success rates Group P(success) Count All requests 4.310% 25,872 CHKs 12.214% 7,950 SSKs 0.803% 17,922 Local requests 6.115% 2,633 Remote requests 4.105% 23,239 Block transfers 97.431% 1,518 Turtled downstream 86.667% 30 Transfers timed out 0.000% 30 Turtle requests 50.000% 4 Detailed timings (local CHK fetches) Successful 12.723s Unsuccessful 12.790s Average 12.789s 12 KiB/s, 20 peers # bwlimitDelayTime: 62ms # nodeAveragePingTime: 359ms # darknetSizeEstimateSession: 0 nodes # opennetSizeEstimateSession: 1661 nodes # nodeUptime: 8h31m * Connected: 14 * Backed off: 3 # Input Rate: 14.3 KiB/s (of 60.0 KiB/s) # Output Rate: 13.2 KiB/s (of 12.0 KiB/s) # Total Input: 250 MiB (8.35 KiB/s average) # Total Output: 349 MiB (11.6 KiB/s average) # Payload Output: 222 MiB (7.41 KiB/sec)(63%) 31310 Output bandwidth liability Success rates Group P(success) Count All requests 5.131% 65,481 CHKs 14.236% 21,038 SSKs 0.821% 44,443 Local requests 6.523% 6,485 Remote requests 4.978% 58,996 Block transfers 96.367% 4,459 Turtled downstream 86.290% 124 Transfers timed out 0.806% 124 Turtle requests 36.364% 11 Detailed timings (local CHK fetches) Successful 15.514s Unsuccessful 12.646s Average 12.673s 20 peers, 20 KiB/s # bwlimitDelayTime: 50ms # nodeAveragePingTime: 433ms # darknetSizeEstimateSession: 0 nodes # opennetSizeEstimateSession: 1758 nodes # nodeUptime: 8h27m # Connected: 13 # Backed off: 6 # Input Rate: 7.99 KiB/s (of 60.0 KiB/s) # Output Rate: 21.1 KiB/s (of 20.0 KiB/s) # Total Input: 431 MiB (14.5 KiB/s average) # Total Output: 577 MiB (19.4 KiB/s average) # Payload Output: 384 MiB (12.9 KiB/sec)(66%) Success rates Group P(success) Count All requests 5.234% 119,096 CHKs 13.031% 43,373 SSKs 0.769% 75,723 Local requests 7.479% 10,295 Remote requests 5.022% 108,801 Block transfers 95.967% 8,628 Turtled downstream 82.773% 238 Transfers timed out 1.681% 238 Turtle requests 49.020% 51 Detailed timings (local CHK fetches) Successful 18.917s Unsuccessful 12.768s Average 12.803s 20 peers, 20 KiB/s # bwlimitDelayTime: 56ms # nodeAveragePingTime: 371ms # darknetSizeEstimateSession: 0 nodes # opennetSizeEstimateSession: 1285 nodes # nodeUptime: 6h43m # Connected: 16 # Backed off: 4 # Input Rate: 7.02 KiB/s (of 60.0 KiB/s) # Output Rate: 20.9 KiB/s (of 20.0 KiB/s) # Total Input: 308 MiB (13.0 KiB/s average) # Total Output: 452 MiB (19.1 KiB/s average) # Payload Output: 310 MiB (13.1 KiB/sec)(68%) Success rates Group P(success) Count All requests 4.048% 94,150 CHKs 8.544% 41,524 SSKs 0.500% 52,626 Local requests 7.341% 8,541 Remote requests 3.719% 85,609 Block transfers 95.561% 6,128 Turtled downstream 81.176% 170 Transfers timed out 2.353% 170 Turtle requests 72.727% 55 Detailed timings (local CHK fetches) Successful 20.007s Unsuccessful 6.894s Average 6.942s 15 peers, 20 KiB/s # bwlimitDelayTime: 48ms # nodeAveragePingTime: 402ms # darknetSizeEstimateSession: 0 nodes # opennetSizeEstimateSession: 1988 nodes # nodeUptime: 5h48m # Connected: 12 # Backed off: 3 # Input Rate: 15.2 KiB/s (of 60.0 KiB/s) # Output Rate: 19.0 KiB/s (of 20.0 KiB/s) # Total Input: 255 MiB (12.4 KiB/s average) # Total Output: 372 MiB (18.2 KiB/s average) # Payload Output: 246 MiB (12.0 KiB/sec)(66%) Success rates Group P(success) Count All requests 4.594% 69,998 CHKs 9.933% 30,274 SSKs 0.526% 39,724 Local requests 6.951% 6,848 Remote requests 4.339% 63,150 Block transfers 96.622% 4,826 Turtled downstream 87.619% 105 Transfers timed out 0.000% 105 Turtle requests 50.000% 6 Detailed timings (local CHK fetches) Successful 8.490s Unsuccessful 6.634s Average 6.638s