zone breaching 'capped-memory' threshold

Calling upon all Solaris zone experts.

I have a Sun T3-1 that is running a few whole-root zones. I've set the 'capped-memory' setting on all the zones.

However, I have a problem on the one zone. Under load it uses more memory that has been allocated to it.

zonecfg -z sunrep02 export

...
add capped-memory
set physical=8G
end
...

When I run 'top' inside the zone it reports the correct memory

Memory: 8192M phys mem

Yesterday I had a problem with a rogue Oracle process and the zone managed to use more than the capped size of 8GB

The global zone has 16GB of RAM, so the sunrep02 zone should never use more than 50%.

Running 'prstat -Z' in the global zone returned the following:

...
     3      146   15G   10G    66%   3:40:36 0.5% sunrep02
...

In this instance it managed to grap 66% of the global zone's physical memory.

How is it possible for the zone to use more than 8GB of memory? Am I missing something in my zone's config?

Many thanks

I think you need to set locked attribute to some value.
Please post output of the following command

#zonecfg -z sunrep02 info
sundb02 root > zonecfg -z sunrep02 info
zonename: sunrep02
zonepath: /zones/sunrep02
brand: native
autoboot: true
bootargs:
pool: oracle-pool
limitpriv:
scheduling-class:
ip-type: shared
hostid:
fs:
        dir: /dpp/live01
        special: pool01/dpp_live01
        raw not specified
        type: zfs
        options: []
fs:
        dir: /dpp/live02
        special: pool01/dpp_live02
        raw not specified
        type: zfs
        options: []
fs:
        dir: /dpp/live03
        special: pool01/dpp_live03
        raw not specified
        type: zfs
        options: []
fs:
        dir: /dpp/live04
        special: pool01/dpp_live04
        raw not specified
        type: zfs
        options: []
fs:
        dir: /dpp/uat01
        special: pool02/dpp_uat01
        raw not specified
        type: zfs
        options: []
fs:
        dir: /dpp/uat02
        special: pool02/dpp_uat02
        raw not specified
        type: zfs
        options: []
fs:
        dir: /dpp/uat03
        special: pool02/dpp_uat03
        raw not specified
        type: zfs
        options: []
fs:
        dir: /tpp/oracle
        special: pool02/tpp_oracle
        raw not specified
        type: zfs
        options: []
fs:
        dir: /dpp/test01
        special: pool03/dpp_test01
        raw not specified
        type: zfs
        options: []
fs:
        dir: /dpp/test02
        special: pool03/dpp_test02
        raw not specified
        type: zfs
        options: []
fs:
        dir: /dpp/test03
        special: pool03/dpp_test03
        raw not specified
        type: zfs
        options: []
fs:
        dir: /app/first
        special: pool03/app_first
        raw not specified
        type: zfs
        options: []
net:
        address: x.x.x.x
        physical: igb0
        defrouter not specified
capped-memory:
        physical: 8G
attr:
        name: comment
        type: string
        value: "SUNREP02 zone"
#rcapadm -z sunrep02  -m 8G
# zonecfg -z sunrep02

    zonecfg:my-zone> select capped-memory
    zonecfg:zone:capped-memory> set physical=8G
    zonecfg:zone:capped-memory> set swap=10G
    zonecfg:zone:capped-memory> set locked=8G
    zonecfg:zone:capped-memory> end
    zonecfg:zone:> commit

Thanks h@foorsa.biz