What happens if you replace the glibc malloc used in implementations of higher level languages like python/ruby/js? Aren’t these languages big on allocating small objects very often?
However I’ve also seen an improvement from simply setting MALLOC_ARENA_MAX=2.