rsk wrote:
My vote goes for stack size.
In Linux, default stack size per-thread is 8MB. So, if you use, for example, apache-worker with many threads, or apache prefork with a bunch of subprocesses, the commit graph skyrockets.
I personally am running a 4x25-thread worker, and "ThreadStackSize 20972152" "freed"* me 600 MB of commit.
MySQL with InnoDB likes large overcommit too.
I think you can play with "ulimit -s" to cut down the stack size for apps that don't support configuring it explicitly, but keep in mind it may lead to badly-written apps crashing with out of memory errors.
*The memory wasn't actually ever allocated, it's just a flag somewhere in the kernel data structures.
I'm also running a apache instance with the worker MPM. Where exactly did you put that ThreadStackSize directive? In the apache2.conf under the "<IfModule mpm_worker_module>" section?