Jump to content
Sign in to follow this  
Simon Linden

Region Idling coming to Second Life

Recommended Posts

Tomorrow, Second Life will enable a new feature called “region idling” designed to help system performance and efficiency.  Region idling allows Second Life regions to relinquish some of the script and CPU time when avatars are not present, which should improve performance for occupied areas sharing the same hardware.

This works like a modern building that automatically dims the lights when someone leaves a room. When no one is in the room, there is no need for the lights to be on, and energy can be saved by turning off the lights. With region idling, Second Life servers will automatically lower their frame rate when there are no Residents on or looking into a region.  The servers return to full speed the instant someone enters the area.

We expect this feature to be totally transparent to users. Residents will not see or be on regions that are idling. Scripts, however, may observe the effect if they are using the llGetRegionTimeDilation() function, and may require fixing.

Linden Lab will initially enable region idling to the Bluesteel RC channels and will eventually roll this out to the the full grid.  Further details about the server releases are posted in the release notes in the Second Life Server forum.

Share this post


Link to post
Share on other sites

Sounds like a good plan in principle.  Is there likely to be any effect on timed and server scripts (HTTP, email) that are independent of direct avatar interaction?

Oops, sorry about that - just read your other thread

Share this post


Link to post
Share on other sites

So regions with unregistered bots idling will never go idle? There seems to be a lot of that around.

Anyway this seems to be a quite reasonable strategy. How long does it take to come out of idle status when an avatar arrives?

Share this post


Link to post
Share on other sites

Sounds like a good idea Simon, and thanks for explaining it.

A couple of questions:

  • When will it speed up when a person is in an adjacent region - is this a set distance from the edge of the region (and if so what is it) or is it dependent on the draw distance or speed of that person towards the border?
  • Is the speed of returning to normal FPS usually sub-second or a bit longer?

Share this post


Link to post
Share on other sites

This is making the assumption that all scripts in a region only affect avatars in that region, which is of course completely false. If I have a server farm on my private sim that requires bursts of responsive activity, so that when the literally hundreds of avatars clicking away at kiosks all over the grid at any given moment expect item delivery in a responsive manner, are my servers going to get bogged down just because no one is on my private sim where the server happens to be? Will they be just as responsive when an http request or an email event comes in? What if the server farm is so large that it is using a significant percentage of the sims script resources, are they all going to suffer? Do I need to log in an alt bot when I'm not around to stop this, because you can bet that's exactly what is going to happen if this affects actual script performance in any way, which not only defeates the purpose but makes things worse, because now you have at least one agent with all kinds of updates going on continuously for no real reason but to stop the idle. Is it possible to have an llStart/StopRegionIdle API that can only be called by estate managers, if this does in fact affect server performance in any way?

 

Share this post


Link to post
Share on other sites

What effect do bots have with this update, actually? And if registered bots are not counted as avatars inside an idling region, will I be subjected to the lag if I am manually operating the bot?

 

Share this post


Link to post
Share on other sites

Regions can switch out of the idle state as soon as an AV starts the process of arriving via TP or connecting to the region.  The extra idle time at the end of each server frame is cut short, so it happens within milliseconds.

Share this post


Link to post
Share on other sites

Do you even know what needs to be active in a sim no matterv what, like breedables, subscribers, and delivery systems? What will happen to those?

Share this post


Link to post
Share on other sites

I'll try and lump some answers together here ... Please read the FAQ posted in another topic.  That should help explain the details better.

At this time, bots count as regular avatars and prevent a region from entering the idle state.  This is the safest approach since there are many different uses for bots.

Any resident on an adjacent region that sees into the region will block idling.   Seeing into another region depends on their location, view direction and draw distance.  Simply put, if they can see into the region, it won't idle.

A region that is sending or receiving external network messages in scripts will not idle for a short period of time to allow the scripts to execute normally.   We've made extra efforts to avoid problems in these situations, so please file a jira if you see any new behavior.

 

Share this post


Link to post
Share on other sites

i've read the faq and it all sounds good if the grid was running fairly good, but the shape that the grid is in and has been for the last 3 to 4 weeks kind of makes me wonder about just how good this throtling is gonna work if our regions don't function right without it since it's one more layer of something to go wrong

Share this post


Link to post
Share on other sites

more ways of shoving more sims onto a server with no reduction on tier. Does one get a refund on ideling time?

Will you be introducing a new level of sim , one with low users but the use of 15k prims? Or is this just more profit for SL with no benefit for a responsible sim owner sitting on the same server with a bling bling scripty club?

Share this post


Link to post
Share on other sites

LL should only roll this out on the mainland. They should let estate owners do what they want with their regions, they are after-all paying an arm and a leg for the service.

Share this post


Link to post
Share on other sites

Given the record of the last few weeks in the context of that of the last few years, I can only say I am not optimistic, this sounds a lot like the hype that preceeded the MONO introduction which we have really yet to recover from.  Hopefully, this works and fixes a lot of the mess you guys have created, or crashes the thing entirely so you have no choice but to fix it or end it.  We have had enough of the quick fixes and it is time to put up or shut up and get this fixed or justify why players should be spending money on accounts that are fast loosing their value.

Share this post


Link to post
Share on other sites

So, I hope this is the first step into virtualizing servers and running load balancers like Linode uses.

If simulators were allowed to burst CPU and burst RAM, we could see simulators support a lot more users at the same time, which would be very cool. I believe Linode can burst to double the CPU usage their physical CPUs provide if the other VPSes on the server are idle. A congested sim with a lot of people on it could really benefit from double the CPU power.

Hopefully this is used to lower the cost of tier for everyone too. More sims on less hardware should mean lower cost to the end user. I hope management has the foresight to realize that that's what SL needs to turn around the trend in grid shrinkage.

Share this post


Link to post
Share on other sites

Anyone who pays teir on a parcel falls into the same group (called land owners) Estate or Mainland. An idle region is the same either place and since estates routinely share servers with mainland regions it would make no sense to keep an idle estate active. Just sayin'

Share this post


Link to post
Share on other sites

What will these mean to those of us that have scripted breedable pets?  Will they be unable to eat, etc? Sounds well intentioned but may have serious side effects...

Share this post


Link to post
Share on other sites

What about llSetKeyframedMotion, which the wiki states:

llSetKeyframedMotion is implemented in terms of frames and not real time. To avoid a drift from the expected positions and rotations, use times which are integer multiples of 1/45, e.g. 20.0/45.0, 40.0/45.0, 90.0/45.0, etc.

with a link to the forum?

Share this post


Link to post
Share on other sites

I have a couple technical questions.

1) From what I remember, regions are CPU-locked. They're not allowed to use a CPU that they're not assigned to. In order for region idling to have any effect other than decreasing server energy consumption/heat generation, the simulator code would need to be able to use a second CPU that's been freed up. This would mean that the simulator code would need to support multi-processor/core threading. Since it was never a consideration before, if regions were CPU-locked, do the simulators support threading like this? Or is the current phase of this project simply limited to decreasing resource consumption on idle regions?

2) What is the reduced framerate for idle servers? Default is 45 frames per second, how low does an idle server go? Lowering the framerate will affect scripts (as I mention below) but without knowing the new framerate, we can't determine what will need modification. On the same vein, when frame rate is reduced, is frame time preserved at 0.022-ish seconds, or is it increased proportionally?

3) To be more specific about people's breedables question, as it effects other scripts. How does llSetTimerEvent() handle lower framerate? Does a timer of 0.5 seconds try to execute every half-second, or does it try to execute every 22-ish frames? This answer seems obvious, I just want to be sure.

4) I duplicate the previous question of "how will object keyframing be affected?" There may also be other functions that are framerate dependant. Did LL test these, and knows how they'll behave? Does it at least have a list so content creators can check their scripts? (Some answer is preferably to no answer, even if the answer is "no, you'll have to do that yourself.")

To answer people's questions about breedables (to the best of my knowledge), the short answer is: there shouldn't be any problems. They won't even notice that your region is idle.

The long answer is: unless they are poorly scripted and call the timer() event more often than the framerate supports, you should see no reduction in performance. That is, if framerate is lowered from 45 to 20 (or 10, or even 5), and the timer event is set for 0.5 seconds, you shouldn't see any notable change in behavior to your breedables while the region is idle.

However, if the timer is set for 0.1 seconds, and framerate goes below 10, you would start seeing events getting queued (eg, the script would lag and fall behind). That is an extreme situation, and I don't expect it will occur during region idle. Unless the breedable is poorly scripted, like I said, in which case you'll want to contract the creator and ask them to improve performance.

Share this post


Link to post
Share on other sites

This is a good idea. I know that LL is only doing it to improve the bottom line but as someone concerned about her carbon footprint i applaud all efforts to save energy. So .. for once LL does something i approve of !! Yayyy !!

Jeanne

Share this post


Link to post
Share on other sites

Great questions, Stickman ... here are some answers

Regions aren't "locked" to a CPU, as we let the OS kernel handle the low level scheduling.  It often effectively works that way, however, as shifting processes between nodes is expensive.   The extra CPU cycles made available by idling can also be used by other background processes, which will still help overall performance.

Idling regions will be running around 8 - 10 fps

Timers run in real-time, not frame time, so there's no reason to queue multiple events.  So when one is invoked, the next one comes along at the next interval, which might be the next frame.

There may be unexpected results with scripts that are written to be real-time based vs. frame based.   However, scripts like that will already have a problem with the lag occasionally seen in SL :matte-motes-agape: so hopefully that has been considered by the builder.

We are releasing this the same way we always roll out new code, on a small portion of the grid in an RC channel.   We will closely monitor it for errors, and not move forward until it is ready.

Share this post


Link to post
Share on other sites

nothing personal simon but with 2 people on junos rest region your throttling is alot unstable, the region has crashed at least once while i was standing there and as i post this now it's trying to again

Share this post


Link to post
Share on other sites

Hi Simon,

Thank you for your clear announcement. The downsides of idling are probably negligible (time will tell, hehe). The upsides are a bit of an all-or-nothing chance, depending on which sims share the host.

Will there be a mechanism to arrange sims in a such a way that quiet sims are grouped with crowded sims?

Also, please see https://jira.secondlife.com/browse/SCR-332, a proposal for more detailed feedback on idling.

Share this post


Link to post
Share on other sites

Junos Rest is on the Second Life RC LeTigre, which will not have idling enabled for some time.  It also hasn't been enabled yet on the BlueSteel RC.

If you are having ongoing problems with the region and can't detect any in-world content causing it, please file a support ticket.

 

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

×
×
  • Create New...