Twitter | Pretraživanje | |
Andres Freund (Tech)
Interesting. Doing the necessary rituals of sacrifice to get postgres started with the text segment mapped as huge pages yields nearly 10% speedup in a highly concurrent workload.
Reply Retweet Označi sa "sviđa mi se" More
Andres Freund (Tech) 6. sij
Odgovor korisniku/ci @AndresFreundTec
7.608 M/sec iTLB-loads w/ 50.80% iTLB-load-misses for normal mapping, vs 1.547 M/sec iTLB-loads w/ 48.82% iTLB-load-misses with text mapped as a huge page.
Reply Retweet Označi sa "sviđa mi se"
Andres Freund (Tech) 6. sij
Odgovor korisniku/ci @AndresFreundTec
The magic necessary (linker flags to align the text sufficiently, link to libhugetlbfs, editing elf headers with hugeedit --text, setting up accessible hugetlbfs) seems too big for most, but I wonder if there's a way that could be simplified.
Reply Retweet Označi sa "sviđa mi se"
Andres Freund (Tech) 6. sij
Odgovor korisniku/ci @AndresFreundTec
Oh, and besides being complicated: It currently also breaks perf profiles...
Reply Retweet Označi sa "sviđa mi se"
Thomas Munro 6. sij
Odgovor korisniku/ci @AndresFreundTec
Nice. does this already (though admittedly I'd liek to have more control over whether it does it, which is more of an issue for DSM segments than the text segment, for eg parallel hash joins; on Linux the answer there is also "never").
Reply Retweet Označi sa "sviđa mi se"
Andres Freund (Tech) 7. sij
Odgovor korisniku/ci @MengTangmu
It does? For it to work well one needs to make sure that the text segment and data/bss segments are far enough apart to fit onto separate 2MB huge pages. Otherwise you'd give up sharing the text segment, which'd again have its own cost.
Reply Retweet Označi sa "sviđa mi se"