[sldev] Script/Parcel/Memory Limits - Memory Limit Configuration

Aleric Inglewood aleric.inglewood at gmail.com
Wed Dec 16 07:59:14 PST 2009


Those are not problems with *dynamic* limits.

Dynamic here means that the limits are not enforced until
REALLY necessary (and then accordingly to how the estate
manager thinks is reasonable to devide the resources).

Fixed limits means that each group (each parcel and each
avatar only gets the memory that would be available if
everything else and all others would be using their MAXIMUM
resources. That will result in a limit that is a factor 4 to
8 LOWER than it can be on average, a limit that will be
MUCH lower than what you can have now most of the time.

So, let me rephrase your "problems"

On Wed, Dec 16, 2009 at 03:54:20PM +0200, Imaze Rhiano wrote:
> There is some problems what I can see in dynamic limits:
> 1) If avatar rezzes attachments in region that have lot's of available
> memory and then teleports to region that doesn't have enough memory for
> avatar's attachments then either teleportation fails ("Not enough memory
> in target region error message") or alternatively randomly some of
> scripted attachments don't rezz in target region?

With fixed limits:
The avatar rezzes attachments in region that have lot's of available
memory, but it fails nevertheless while before everything worked
just fine in this region!

What is worse?

> 2) If avatar rezzes attachments in region that have lot's of available
> memory and then logouts. What happens for her attachments when she log's
> back and region doesn't have enough memory for attachments anymore? Is
> avatar moved to some staging region or are attachment randomly removed
> until avatar fits to memory limits?

With fixed limits:
The avatar rezzes attachments in region that have lot's of available
memory, but it fails nevertheless while before everything worked
just fine in this region!

What is worse?

> 3) Let's imagine that you are organizing some kind event that requires
> you to rezz some scripted objects after participants are arrived. You
> test that object rezzes properly before participants arrive - everything
> seems to be okay. Then event starts - and there is coming much more
> participants than you were able to dream of. When time comes, you try to
> rezz scripted objects, but region is reporting back "Not enough memory".

That wouldn't happen if those objects use their fair share.
If they do NOT use their fair share, it also wouldn't work with fixed
limits. What you can do in this case is test in advance how much
memory your objects need in that parcel and then have the estate manager
allocate that amount. In that case you have the right for those resources
and what would happen if you rez the objects is that avatar scripts
(and then starting with those that run most scripts) will have their
scripts stopped. If a lot of the guests have 'scripted hair' then those
will the first to go, and since those scripts should really have been
deleted in the first place, nobody would really notice it anyway.

In the event that people DO notice it, then well - then you ARE overloading
the region with your event and should ask people to turn off scripts or
leave, because the region IS overloaded.

> 4) You decide upgrade your parcel larger. You rent/buy empty parcel from
> another estate. After rezzing your house you start rezzing furnitures.
> Sofa to living room rezzes fine - but when you try to rezz bed to
> bedroom - you get error "Not enough memory". You are wondering what just
> happened? Everything was rezzing fine to parcel that was much more
> smaller. After talking with estate owner: It turns out that your
> neighbors are using most of regions memory already. Actually - tenant
> who rented first parcel in region is using 80% of regions memory to her
> chicken farm. Estate owner doesn't want to remove those chickens because
> she is biggest tier payer, she is also having lot's of fun with her in
> her bed and those chickens are from very valuable prize winning pedigree.

Like I said, once the region runs out of memory, THOSE parcels / avatars
will be limited that use most memory of course. So, this would never
happen to you. What would happen is that your neighbors chicken farm
would stop working after you rez your bed. The neighbor would go to the
estate manager and he'd tell her that she was lucky that the estate
was empty before, but that from now on she'll have to settle with her
fair share of memory.

Note that she would have known in advance that this would happen,
because the tools will be (should be) there to tell her that she's
using too much resources (it just wouldn't be enforced as long as the
resources are available).

Compare this to how I run my sim:

I have 500 prims "reserve", they are not allocated to parcels.
Every parcel can rez prims till the region is FULL. There are no
limits. People keep track of what they MAY rez (what they pay for),
if they go over it for a longer period of time they are asked to
delete stuff (they never do in practise by the way).

However, it OFTEN happens that someone rezzes something temporarily
ie - "look at this"... or whatever, we have bike contest (each bike
is 100 prims!). Because of the reserve of 500, we never get "region
is full" when we want to play... just as long as you clean up
afterwards.

This situation iS WAYYYYY better than when I'd have set a FIXED
limit and had given everyone a slice of those 500 and enforced
that ... ie, everyone got 100 "reserve" prims and could never
rez more JUST IN CASE all the neighbors wanted to rez their 100 too.

Come on!

But that is exactly what LL is going to do :(

> 5) If I have understood correctly you can't choose homesteads that are
> running in same server. Also you homestead might occasionally moved to
> another server. Because of server maintenance or some geek in LL server
> farm just want to play with his god powers.

Then that is something that needs fixing too.
If someone wants to hire a server and run four homesteads on it
then that should be possible, of course. Hell, you're paying for it no?

> I agree that there should be ways to set PARCEL memory limitations,
> before limitations are going to enforced. For example estate manager
> doesn't want to waste region's PARCEL memory to empty street parcels -
> she wants to allocate all available PARCEL memory to building parcels
> where her tenants are living and have their shops, houses and clubs.

Yes, but this is orthogonal to NOT enforcing limits before they
are really needed (the server starts swapping). Although, if the estate
manager COULD change the memory allocation, then that would be pseudo
dynamic: in case of disasters (party has to be cancelled), he could
CHANGE the limits so that the bloody server wouldn't start to tell
people that it's out of memory while it's NOT out of memory.

> AVATAR memory limits should be fixed - so that there is no problems with
> border crossing, logging in or teleporting. However, estate manager
> should be able to set maximal amount avatars in region - thus allocating
> more/less PARCEL memory for scripts in parcels. But these shouldn't be
> dynamic - that cause nondeterministic behavior.

If you think that setting a fixed amount of memory PER avatar is
going to help then think again:

LL is a business... memory costs money. Why would they want to never USE
the memory that they put into the servers? What you want is to reserve
on EVERY server the amount of memory needed to serve the MAXIMUM number
of avatars (configurable or not) each using their MAXIMUM amount of memory!
So you can always teleport... right.

Lets see... Suppose that currently the average avatar uses x Megabytes of
memory. Lets also assume that if you use 10 times as much as the average,
it still isn't ABUSE, because their are very good reasons in some cases
to do that. So, the limit is set to 10x per avatar.

Furthermore, MOST regions are empty - but they COULD theoretically
host 20 to 100 avatars (haha, ok 20 -- officially it's 100 I think).

So, there you are walking around with your partner in an otherwise
empty sim using x MB each, and instead of having almost unlimited amount
of resources, the region tries to keep 180 * x MB in reserve --
THAT IS NINETY TIMES THE AMOUNT OF MEMORY YOU ARE USING! -- JUST
in case suddenly 18 others loaded with the maximum number of scripts
simultaneously wanted to popup next to you!
What does that mean? It means that this region effectively has MUCH
MUCH less memory available, and you will MUCH MUCH sooner seen those
"limits" take effect then you'd ever before.

I'll take lagging due to swapping ANYTIME (I'll just tp away) over
having to deal with "out of memory" non-stop in almost every region
that used to work fine before!


More information about the SLDev mailing list