IDP clustering with Terracotta 3.6
Russell Beall
beall at usc.edu
Mon Dec 26 18:29:31 GMT 2011
Resiliency is determined by the backing store. The data in each node is still sent to the TC server and can be recovered upon restart or upon a user switching to a new IdP node.
With the distributed map there is simply less traffic among IdP nodes that don't need a copy of the data -- (all passive TC servers will still get a copy).
Additionally, the garbage collection is much smoother, in particular this is probably with the lock objects that are handled better.
Russ.
(iPhone)
On Dec 23, 2011, at 2:50 AM, Mark Cairney <mark.cairney at ed.ac.uk> wrote:
> Hi Russell,
>
> That's really interesting- it's been a while since I looked at this page and there's been quite a lot of new information added to it since.
>
> Is there anything else to bear in mind if you change to using the ConcurrentDistributedMap instead of the ConcurrentHashMap? In particular is there a trade-off in terms of resiliency?
>
> On 22 Dec 2011, at 22:58, Russell Beall wrote:
>
>> Sorry for the delay on this.
>>
>> I've written the instructions for improving the EventingMapBasedStorageService to use the ConcurrentDistributedMap object. It got to be long enough that I pulled it out of this e-mail that I was writing and added it to the end of the IdPClusterIssues page:
>>
>> <https://wiki.shibboleth.net/confluence/display/SHIB2/IdPClusterIssues#IdPClusterIssues-ConfiguringtheTerracottaConcurrentDistributedMap>
>>
>> For those still using TC, the performance improvement is definitely worth considering.
>>
>> Regards,
>> Russ.
>>
>> On Dec 15, 2011, at 11:59 AM, Christopher Bongaarts wrote:
>>
>>> On 12/15/2011 1:18 PM, Russell Beall wrote:
>>>
>>>> I alleviated this and other issues by converting the
>>>> EventingMapBasedStorageService to use the Terracotta recommended
>>>> ConcurrentDistributedHashMap instead of the java built-in
>>>> ConcurrentHashMap. It is a simple tweak to the IdP code actually and
>>> [...]
>>>> I can publish the patch for this if desired.
>>>
>>> Yes please (or send it to me privately), assuming it is more involved
>>> than simply changing the inheritance of the EMBSS class.
>>>
>>>> I currently have been staging and load testing a RedHat Linux cluster
>>>> of 2.3.3 IdP nodes clustered with 3.5.1 TC.
>>>
>>> We have been doing load testing with RedHat Linux with 2.3.5 against TC
>>> 3.5.3 (current production is IdP 2.1.3, TC 3.5.2).
>>>
>>>> I encountered some problems with the settings currently published and
>>>> had to tweak them to get it to stabilize. In particular the setting
>>>> which specifies the pause interval for the garbage collector became a
>>>> real problem and I had to get rid of it: -XX:MaxGCPauseMillis=5000
>>>>
>>>> On Linux, this setting started being used with a vengeance (whereas
>>>> it basically was ignored in Solaris) and my TC server would enter
>>>> continuous Full GC cycles even though the heap was not full, trying
>>>> to make sure that it always did its GC at 5000 ms or less. This
>>>> resulted in severe unworkability because really it ended up keeping
>>>> itself in one continuous stream of GC.
>>>
>>> We saw something like this when I added that option to the Terracotta
>>> JVM on Solaris in production. After restarting Tomcat, the load on the
>>> machine would spike up to around 5-6 (compared to a normal load of 1-2).
>>> But the system was still responding acceptably, so I let it run.
>>> After a day or two, the load had settled back down to 1-2. My current
>>> conclusion is that it takes a while for the JVM to figure out the sweet
>>> spot, and if it gets behind it stays behind until the load eases up
>>> enough to catch up. Also, it's an older rev of the JVM (Sun 1.6.0_13)
>>> so it might be already-fixed bugs.
>>>
>>> What are your current JVM options set to in the Linux world? Our
>>> Solaris Terracotta servers are set to:
>>>
>>> -Xmx2g
>>> -XX:+UseParallelOldGC
>>> -XX:MaxGCPauseMillis=5000
>>> -verbose:gc
>>> -XX:+PrintGCDetails
>>> -XX:+PrintGCDateStamps
>>> -XX:-TraceClassUnloading
>>> (plus 64-bit options added by init script)
>>>
>>> and Tomcat:
>>>
>>> -d64
>>> -server
>>> -XX:+DisableExplicitGC
>>> -XX:+UseParallelOldGC
>>> -Xmx2g
>>> -XX:MaxPermSize=256m
>>> -XX:+HeapDumpOnOutOfMemoryError
>>> (plus terracotta boot jar/JMX options)
>>>
>>> --
>>> %% Christopher A. Bongaarts %% cab at umn.edu %%
>>> %% OIT - Identity Management %% http://umn.edu/~cab %%
>>> %% University of Minnesota %% +1 (612) 625-1809 %%
>>> --
>>> To unsubscribe from this list send an email to users-unsubscribe at shibboleth.net
>>
>> --
>> To unsubscribe from this list send an email to users-unsubscribe at shibboleth.net
>>
>
> /*********************************
> Mark Cairney
> ITI UNIX Section
> Information Services
> University of Edinburgh
>
> Tel: 0131 650 6565
> Email: mark.cairney at ed.ac.uk
>
> *********************************/
>
>
> --
> The University of Edinburgh is a charitable body, registered in
> Scotland, with registration number SC005336.
>
> --
> To unsubscribe from this list send an email to users-unsubscribe at shibboleth.net
More information about the users
mailing list