At a guess, your os is ignoring the scavenger's suggestion to release memory, probably because your machine is not under sufficient memory pressure.
That, or heap fragmentstion. Gctrace will make that clear.
gc2810(1): 1+0+1837+0 us, 2 -> 4 MB, 16286 (31303956-31287670) objects, 811/3/0 sweeps, 0(0) handoff, 0(0) steal, 0/0/0 yields
gc2811(1): 1+0+1910+0 us, 2 -> 5 MB, 15953 (31314082-31298129) objects, 811/1/0 sweeps, 0(0) handoff, 0(0) steal, 0/0/0 yields
gc2812(1): 1+0+1860+0 us, 2 -> 5 MB, 19029 (31327130-31308101) objects, 811/0/0 sweeps, 0(0) handoff, 0(0) steal, 0/0/0 yields
gc2813(1): 1+0+1958+0 us, 2 -> 5 MB, 23497 (31344501-31321004) objects, 811/0/0 sweeps, 0(0) handoff, 0(0) steal, 0/0/0 yields
gc2814(1): 2+1+1886+0 us, 2 -> 5 MB, 23976 (31362280-31338304) objects, 811/2/0 sweeps, 0(0) handoff, 0(0) steal, 0/0/0 yields
gc2815(1): 1+0+1717+0 us, 2 -> 5 MB, 25018 (31381285-31356267) objects, 811/1/0 sweeps, 0(0) handoff, 0(0) steal, 0/0/0 yields
gc2816(1): 1+0+1722+0 us, 2 -> 5 MB, 18677 (31395434-31376757) objects, 811/3/0 sweeps, 0(0) handoff, 0(0) steal, 0/0/0 yields
gc2817(1): 2+1+3238+1 us, 2 -> 5 MB, 23086 (31414160-31391074) objects, 811/575/0 sweeps, 0(0) handoff, 0(0) steal, 0/0/0 yields
gc2818(1): 1+0+1215+0 us, 2 -> 4 MB, 15903 (31425171-31409268) objects, 811/5/0 sweeps, 0(0) handoff, 0(0) steal, 0/0/0 yields
gc2819(1): 1+0+980+0 us, 2 -> 4 MB, 15360 (31437323-31421963) objects, 811/431/0 sweeps, 0(0) handoff, 0(0) steal, 0/0/0 yields
gc2820(1): 3+1+1464+1 us, 1 -> 3 MB, 10860 (31445642-31434782) objects, 811/388/0 sweeps, 0(0) handoff, 0(0) steal, 0/0/0 yields
Thanks!
gc2820(1): 3+1+1464+1 us, 1 -> 3 MB, 10860 (31445642-31434782)
objects, 811/388/0 sweeps, 0(0) handoff, 0(0) steal, 0/0/0 yields
1.4 seconds to collect a tiny heap sounds very odd, any ideas ?
total used free shared buffers cached
Mem: 1002 894 108 0 50 242
-/+ buffers/cache: 602 400
Swap: 713 20 693
total used free shared buffers cached
Mem: 990 923 67 0 10 58
-/+ buffers/cache: 854 135
Swap: 1021 782 239