I don't think this is a bug, but it's worth a bit of discussion.
I'm running a particular wtperf workload and have noticed that memory consumption tends to exceed cache size by ~1 and 1.5GB in top. I ran memory profiling, and it seems as though that excess is temporary but real. It comes from *wt_split_evict - in the first profile you can see that *wt_split_evict has allocated 1318MB, where in the second profile it's allocated 240MB. During the run I see the amount of space allocated in each profile vary between ~30MB and 1318MB.
The configured cache size is 2.5GB, and in the first profile WiredTiger has 4376MB allocated, in the second profile it has 3376MB allocated.
The wtperf configuration is:
You can see that it does not have excessively large leaf or internal pages configured, and is using a regular btree table.
[~keithbostic] Any thoughts? Is this just how the code works?