Thank you for reporting this. I'm currently evaluating this with some benchmarking experiments and my current observation concurs with the observations. I believe enabled=madvise is probably the best way forward but I still have several more test scenarios to complete to ensure we don't hit any unexpected performance regresions.
** Changed in: linux (Ubuntu) Status: Incomplete => In Progress ** Changed in: linux (Ubuntu) Importance: Undecided => High ** Changed in: linux (Ubuntu) Assignee: (unassigned) => Colin Ian King (colin-king) -- You received this bug notification because you are a member of Kernel Packages, which is subscribed to linux in Ubuntu. https://bugs.launchpad.net/bugs/1703742 Title: Transparent hugepages should default to enabled=madvise Status in linux package in Ubuntu: In Progress Bug description: Ubuntu kernels should default transparent_hugepages to enabled=madvise, not enabled=always (this corresponds to TRANSPARENT_HUGEPAGE_MADVISE=y in .config). I've blogged about this at some length here: https://blog.nelhage.com/post/transparent-hugepages/ but here is a summary: Transparent Hugepages are a feature that allows the kernel to attempt to automatically back any anonymous maps with "huge" 2MiB page tables, instead of the normal 4k entries. It can produce small net performance gains in certain benchmarks, but also has numerous downsides, in the form of apparent memory leaks and 30% slowdowns or worse for some applications. Many popular pieces of software now refuse to run with hugepages enabled because of known performance issues. Examples of problem reports: MongoDB: https://docs.mongodb.com/manual/tutorial/transparent-huge-pages/ Oracle: https://blogs.oracle.com/linux/entry/performance_issues_with_transparent_huge Splunk: https://docs.splunk.com/Documentation/Splunk/6.5.2/ReleaseNotes/SplunkandTHP Go runtime: https://github.com/golang/go/issues/8832 jemalloc: https://blog.digitalocean.com/transparent-huge-pages-and-alternative-memory-allocators/ node.js: https://github.com/nodejs/node/issues/11077 Setting `enabled=madvise` enables applications that know they benefit from transparent huge pages to opt-in to this feature, while eliminating all the problematic behavior for other applications. Note also that transparent hugepage settings don't affect the use of explicit hugepages via hugetlbfs or mmap(…, MAP_HUGETLB, …) To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1703742/+subscriptions -- Mailing list: https://launchpad.net/~kernel-packages Post to : kernel-packages@lists.launchpad.net Unsubscribe : https://launchpad.net/~kernel-packages More help : https://help.launchpad.net/ListHelp