On 08/25/2015 11:25 AM, Konstantin Khlebnikov wrote:
On Mon, Aug 24, 2015 at 11:12 PM, James Hartshorn
<jhartshorn@xxxxxxxxxxxxx> wrote:
Hi,
I've been struggling with transparent hugepage performance issues, and can't
seem to find anyone who actually uses it intentionally. Virtually every
database that runs on linux however recommends disabling it or setting it to
madvise. I'm referring to:
/sys/kernel/mm/transparent_hugepage/enabled
I asked on the internet
http://unix.stackexchange.com/questions/201906/does-anyone-actually-use-and-benefit-from-transparent-huge-pages
and got no responses there.
Independently I noticed
"sysctl: The scan_unevictable_pages sysctl/node-interface has been disabled
for lack of a legitimate use case. If you have one, please send an email to
linux-mm@xxxxxxxxx."
And thought wow that's exactly what should be done to transparent hugepages.
Thoughts?
[+ Cc's]
THP works very well when system has a lot of free memory.
Probably default should be weakened to "only if we have tons of free memory".
For example allocate THP pages atomically, only if buddy allocator already
has huge pages. Also them could be pre-zeroed in background.
I've been proposing series that try to move more THP allocation activity
from the page faults into khugepaged, but no success yet.
Maybe we should just start with changing the default of
/sys/kernel/mm/transparent_hugepage/defrag to "madvise". This would
remove the reclaim and compaction for page faults and quickly fallback
to order-0 pages. The compaction is already crippled enough there with
the GFP_TRANSHUGE specific decisions in __alloc_pages_slowpath(). I've
noticed it failing miserably in the transhuge-stress recently, so it
seems it's not worth to try at all. With changing the default we can
kill those GFP_TRANSHUGE checks and assume that whoever uses the madvise
does actually want to try harder.
Of course that does nothing about zeroing. I don't know how huge issue
is that one?
--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@xxxxxxxxx. For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a>
--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@xxxxxxxxx. For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a>