Hi,
How many CPUs does your system have? What does the CPU load look like during normal operation and then during GC spikes?
A couple of other observations/questions - when you say 'size 275', I presume that means each List contains 275 entries and the overall size of each entry isn't 275 (bytes). Then, how big are your entries (in bytes)? Even at 10KB, with 400K entries that's less than 4GB - so if you really need a 24GB heap, how big is each entry? Are you using deltas? If your entries are pretty large and you're not using deltas you may be generating unnecessary garbage when updating entries. It looks like you're already switching all the right GC flags on, so the next thing to look at would be trying to reduce the rate at which garbage is being generated.
To really dig into this we'd need some stats which cover the period when you're seeing excessively long GC pauses.
--Jens