Commit Graph

72 Commits (c7a02dc058018429fca8fb0c979785be34bebaf6)

Author SHA1 Message Date
UbitUmarov b5ad1b7dcc remove lludp throttle texture rate cannibal option. That rate is used by http, and beeing http is still trafic 2019-03-05 09:22:34 +00:00
UbitUmarov bcf05afd64 direct encode terseupdates 2019-02-27 10:07:25 +00:00
UbitUmarov 4de5e14e54 issues with udp buffers pool on heavy load 2019-02-26 15:02:57 +00:00
UbitUmarov 91fab70236 removed a redundant function; try to make a particular vi coder happy about removed comments 2019-02-25 23:05:11 +00:00
UbitUmarov d01165818d change UDPPacketBuffer pools (does waste a bit of memory) 2019-02-25 21:46:23 +00:00
Melanie Thielker b16abc8166 Massive tab and trailing space cleanup 2017-01-05 19:07:37 +00:00
UbitUmarov f794ab1a67 remove something VS decided to add 2016-11-21 01:22:01 +00:00
UbitUmarov b2c553b459 work around some warnings 2016-11-21 01:16:35 +00:00
UbitUmarov f1958e9f71 revert more object references removal on clients close because 2 many code paths don't have proper abort 2016-11-20 13:36:34 +00:00
UbitUmarov 200183caf7 HG protocol is still broken for large regions. work around it on teleport via lm 2016-11-20 02:49:40 +00:00
UbitUmarov 8010413e64 remove some potencial null refs i did add in last days :( 2016-11-19 21:06:42 +00:00
UbitUmarov 35b37510fc explicitly remove some references, and other useless changes 2016-11-17 19:15:28 +00:00
UbitUmarov e304acb06f fix unack bytes stats report 2016-11-14 05:15:41 +00:00
UbitUmarov 6bc76860d1 avoid a null ref, few changes to udp updates send 2016-11-05 23:56:55 +00:00
UbitUmarov c255c23981 move updates from updates queues into udp queues acording to their payload estimated size and udp sending capability on a time slice, instead always moving a arbitrary number of updates. 2016-08-07 21:13:29 +01:00
UbitUmarov e096b49dd7 check if a packet can be sent imediatly without accounting it as sent on throttles when it is enqueued for later send. 2015-11-10 23:17:56 +00:00
UbitUmarov 778793d77f fix GetPacketsQueuedCount typos in last commit 2015-09-22 19:24:58 +01:00
UbitUmarov ae70f61a64 let minimum wqburst be a bit larger than MTU 2015-09-22 18:56:03 +01:00
UbitUmarov a8dc07ff5c removed a protocol breaking lludp debug option that no one should try, changed terrain send throotle to be by packets in queue, reduced odds of MTU violation on terrain send (still bad). Most UDP protocol implementations may not mind much, but our code still does 2015-09-22 18:39:59 +01:00
UbitUmarov d9fafd9603 fix the missing initialization of the folish ProcessUnackedSends option 2015-09-06 17:12:31 +01:00
UbitUmarov a11edceb00 seems to compile ( tests comented out) 2015-09-02 19:54:53 +01:00
UbitUmarov 371c9dd2af bad merge? 2015-09-01 14:54:35 +01:00
UbitUmarov e3d82ad706 delay terrain sending if land queue is 2 busy 2015-08-22 04:08:30 +01:00
Justin Clark-Casey (justincc) 155da5aad2 Add debug ability to ignore reliably sent packets that are not acknowledged.
This is controlled via the console command "debug lludp client set process-unacked-sends true [<avatar-first-name> <avatar-last-name>]"
For debug purposes to see if this process for very bad connections is causing general outbound udp processing delays.
Relates to http://opensimulator.org/mantis/view.php?id=7393
2015-01-21 20:31:42 +00:00
Justin Clark-Casey (justincc) 8e1e8a0920 Make the performance controlling job processing threads introduced in conference code use a generic JobEngine class rather than 4 slightly different copy/pasted versions. 2015-01-12 20:56:37 +00:00
Mic Bowman 041a09ecb9 Enable runtime configuration of the minimum rate for adaptive
throttles. Setting adaptive_throttle_min_bps will change the
minimum rate that the adapative throttles will drop to in case
of network packet loss. The current rate default rate is 256kbps.
The viewer can throttle rates under that amount, but the dynamic
adaptation will not.
2014-12-29 18:46:33 -08:00
Justin Clark-Casey (justincc) ec8d21c434 Label all threadpool calls being made in core OpenSimulator. This is to add problem diagnosis.
"show threadpool calls" now also returns named (labelled), anonymous (unlabelled) and total call stats.
2014-11-25 23:23:10 +00:00
Justin Clark-Casey (justincc) 5ab5d7fe47 Fix recent regression where adaptive throttles stopped adjusting.
Extends regression tests to test response of adaptive throttles to ack'ed and expired packets.
2014-11-25 23:22:20 +00:00
Justin Clark-Casey (justincc) d33964222a Fix an issue where specifying both max client and server outgoing UDP throttles would cause client throttles to be lower than expected when total requests exceeded the scene limit.
This was because specifying a max client throttle would always request the max from the parent server throttle, no matter the actual total requests on the client throttle.
This would lead to a lower server multiplier than expected.
This change also adds a 'target' column to the "show throttles" output that shows the target rate (as set by client) if adaptive throttles is active.
This commit also re-adds the functionality lost in recent 5c1a1458 to set a max client throttle when adaptive is active.
This commit also adds TestClientThrottlePerClientAndRegionLimited and TestClientThrottleAdaptiveNoLimit regression tests
2014-11-25 23:21:38 +00:00
Justin Clark-Casey (justincc) 40314b56f2 Remove the unnecessary intermediate total token bucket.
This only had one child, which is the 'adaptive' token bucket.
So from testing and currently analysis, we can use that bucket directly which simplifies the code.
2014-11-25 23:21:37 +00:00
Justin Clark-Casey (justincc) 746defa094 Add basic regression test ThrottleTests.TestClientThrottleSetNoLimit 2014-11-25 23:18:40 +00:00
Justin Clark-Casey (justincc) a142edec03 minor: add apparant total to logging when client sets throttles 2014-11-25 23:18:39 +00:00
Justin Clark-Casey (justincc) c73e62ea3a minor: fix bug in throttle logging where arguments were mismatched 2014-11-25 23:18:39 +00:00
Justin Clark-Casey (justincc) 51eb8facd6 Add OutgoingPacketsQueuedCount clientstack stat.
This is the total of queued outgoing packets across all connections, as also seen in the "show queues" command.
Gives some early indication of whether the simulator can't send all outgoing packets fast enough.
Though then one would want to check that this isn't due to a few bad client connections.
2014-11-25 23:18:39 +00:00
UbitUmarov caddabb5c4 scale ChildAgentThrottles with distance (internal to child server and not
root as was done before )
2014-11-06 22:25:16 +00:00
Justin Clark-Casey (justincc) 05508b5c56 Add "debug lludp throttle log <level> <avatar-first-name> <avatar-last-name>" to control extra throttle related debug logging. 2014-10-02 22:30:44 +01:00
Justin Clark-Casey (justincc) d3578e2662 Add "debug lludp data out" console command for logging outgoing data just before it's put on the wire.
Unlike "debug lludp packet" which logs at the point where OpenSim first asks the clientstack to send a certain outgoing packet, this logs immediately before the actual send.
For low-level debugging purposes.
2014-09-24 23:44:55 +01:00
UbitUmarov 0514679b15 reduce MIN_CALLBACK_MS guard time. A value too high introduces a extra
throttle and makes more packets to be sent in bursts and not in steady
 state flow.
2014-09-02 18:51:49 +01:00
UbitUmarov 50433e089b *needs testing, not that good* change throttles math using floats and not
int64, etc. Limite brust bytes to the total rate client requested times a
look ahead estimation time, Avoid queues starvation with updates waiting...
2014-09-02 15:48:59 +01:00
UbitUmarov 7351d92a76 add method to get a category throttle rate 2014-08-29 16:19:30 +01:00
UbitUmarov 438798202f replace the tick() by a limit on the maximum number of tokens that can be
acumulated ( variable named BurtRate, not exactly a rate...)
2014-08-29 13:26:30 +01:00
UbitUmarov 986863a0cd try to reduce insane high data rate udp bursts. This needs testing on a
region with a lot of contents. Should not affect much average rates.
2014-08-28 22:26:03 +01:00
UbitUmarov 894b5c10c6 remove misplaced comment 2014-08-28 18:54:08 +01:00
UbitUmarov 9839904ebe try to make sense of throttle rate limits 2014-08-28 18:51:55 +01:00
UbitUmarov 5a2d4fd47f add some functions for estimation of number of bytes that can be send in a category in specified time 2014-08-28 16:49:32 +01:00
UbitUmarov ade4bf69b1 if we send wearables with ThrottleOutPacketType.HighPriority, then we
should send other avatarinformation with same priority on same Task category ( plus cleanup )
2014-08-28 10:38:31 +01:00
UbitUmarov 1e888d61ca enqueue also if m_nextPackets[category] is not null. This is really the
top element of a category queue, equivalente to using a queue.peek() if
 avaiable
2014-08-27 01:33:09 +01:00
Justin Clark-Casey (justincc) 84cea46c10 Add experimental OutgoingQueueRefillEngine to handle queue refill processing on a controlled number of threads rather than the threadpool.
Disabled by default.  Currently can only be enabled with console "debug lludp oqre start" command, though this can be started and stopped whilst simulator is running.
When a connection requires packet queue refill processing (used to populate queues with entity updates, entity prop updates and image queue updates), this is done via Threadpool requests.
However, with a very high number of connections (e.g. 100 root + 300 child) a very large number of simultaneous requests may be causing performance issues.
This commit adds an experimental engine for processing these requests from a queue with a persistent thread instead.
Unlike inbound processing, there are no network requests in this processing that might hold the thread up for a long time.
Early implementation - currently only one thread which may (or may not) get overloaded with requests.  Added for testing purposes.
2014-08-19 00:17:12 +01:00
Justin Clark-Casey (justincc) b375f86f11 Make LLUDPServer.Scene publicly gettable/privately settable instead of protected so that other logging code in the clientstack can record more useful information
Adds some commented out logging for use again in the future.
No functional change.
2014-08-19 00:17:12 +01:00
UbitUmarov 0ae8fed4c2 reduce ping cliping lower limit 2014-08-14 21:18:58 +01:00