Re: Write throughput impaired by touching dirty_ratio
From: Michal Hocko
Date: Thu Jun 25 2015 - 08:56:16 EST
On Thu 25-06-15 11:20:56, Michal Hocko wrote:
[...]
> From your /proc/zoneinfo:
> > Node 0, zone HighMem
> > pages free 2536526
> > min 128
> > low 37501
> > high 74874
> > scanned 0
> > spanned 3214338
> > present 3017668
> > managed 3017668
>
> You have 11G of highmem. Which is a lot wrt. the the lowmem
>
> > Node 0, zone Normal
> > pages free 37336
> > min 4789
> > low 5986
> > high 7183
> > scanned 0
> > spanned 123902
> > present 123902
> > managed 96773
>
> which is only 378M! So something had to eat portion of the lowmem.
And just to clarify. Your lowmem has only 123902 pages (+DMA zone which
has 16M so it doesn't add much) which is ~480M. The lowmem can sit only
in the low 1G (actually less because part of that is used by kernel for
special mappings). You only have half of that because, presumably some
HW has reserved portion of that address range. So your lowmem zone is
really tiny. Now part of that range is used for kernel stuff like struct
pages which have to describe the full memory and this is eating quite a
lot for 3 million pages. So you ended up with only 378M really usable
for all the kernel allocations which cannot live in the highmem (and there
are many of those). This makes a large memory pressure on that zone even
though you might have huge amount of highmem free. This is the primary
reason why PAE kernels are not really usable for large memory setups
in general. A very specific usecases might work but even then I would
have to a very strong reason to stick with 32b kernel (e.g. a stupid out
of tree driver which is 32b specific or something similar).
--
Michal Hocko
SUSE Labs
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/