As a general purpose sysadmin I've mostly struggled with its default being always, if it were never (or possibly madvise?) then I think all the very real performance problems would go away.  Those who know they need it could turn it on.  I have begun looking into asking the distros to change this (is it a distro choice?) but am not getting that far.  Just to be clear the default of always causes noticeable pauses of operation on almost all databases, analogous to having a stop the world gc.


As for THP in APU type applications have you run into any JEMalloc defrag performance issues?  My research into THP issues indicates this is part of the performance problem that manifests for databases.


Some more links to discussion about THP:

Postgresql  https://lwn.net/Articles/591723/

Postgresql http://www.postgresql.org/message-id/20120821131254.1415a545@jekyl.davidgould.org

Mysql (tokudb) https://dzone.com/articles/why-tokudb-hates-transparent

Redis http://redis.io/topics/latency http://antirez.com/news/84

Oracle https://blogs.oracle.com/linux/entry/performance_issues_with_transparent_huge
MongoDB http://docs.mongodb.org/master/tutorial/transparent-huge-pages/
Couchbase http://blog.couchbase.com/often-overlooked-linux-os-tweaks
Riak http://underthehood.meltwater.com/blog/2015/04/14/riak-elasticsearch-and-numad-walk-into-a-red-hat/





From: Bridgman, John <John.Bridgman@amd.com>
Sent: Monday, August 24, 2015 1:20 PM
To: James Hartshorn; linux-mm@kvack.org
Subject: Re: Can we disable transparent hugepages for lack of a legitimate use case please?
 
We find it useful for GPU compute applications (APU I suppose, with GPU access via IOMMUv2) working on large datasets. 

I wouldn't have expected THP to find much use for databases -- those seem to be more like graphics stacks where you have enough hints about future usage to justify explicit management of pages. I thought of THP as "the solution for everything else".

From: James Hartshorn
Sent: Monday, August 24, 2015 3:12 PM
To: linux-mm@kvack.org
Subject: Can we disable transparent hugepages for lack of a legitimate use case please?

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@kvack.org."


And thought wow that's exactly what should be done to transparent hugepages.  


Thoughts?