????????????CPU????????????????????????????о?????????????NUMA????????????????????磩?????

???????????????y??UMA???????????CPU??????????????????CPU????”??????”??????????????????????
????1. ????????????????????????CPU??????????????з??????????????CPU?????????????????????????????????????????????????????????????????
????2. ???????local??棨?????棩??????????????local????е?????????????????????????????п????????á?
?????????????????????????????????????NUMA??????????????CPU?????ò?????????CPU?????治????????????????????????????????swap???????????????????????????????????CPU??????????????С??????????????????free?????????????в????????????棬??????????swap???????Щ???????????????????????????MySQL???????????????MySQL??????????SWAP??????????
?????????????С????????????NUMA???????????????????????????local??????????????????????????????????????????????????NUMA???????????????????????????????????????????????????NUMA??????????и???????????????????и????
????1. ?????????????????????????interleave???????????page????????????CPU zone?С???????????????????????????????????????????????????е????????????MongoDB??????????????????????interleave??????????
????WARNING: You are running on a NUMA machine.
????We suggest launching mongod like this to avoid performance problems:
????numactl –interleave=all mongod [other options]
  ??2. ?????????????????????????????????????zone_reclaim_mode???????????????NUMA????2????????????????????0/1/3/4??????0?????local??治????????????????????????????????棻1?????local??治?????????±?????????????3??????????????????????????????4?????????????????swap??????????檔?????HBase???????zone_reclaim_mode??0?????????????swap??????????
??????????swap????
????????????????????????swap????????????????Χ??Linux????????swap???NUMA???????????????????????????????????????????????????????????????????????????????????
????1. IO????????????????????к???????????????????????????????????????sata???OLTP??????????deadline?????????????????
????2. THP??transparent huge pages?????????THP?????????????????????????????????????THP??HugePage?????????£??????HBase????????THP????????????β???????????????????Щ????????????????С????????THP?????
??????1??????HugePage??
?????????HugePage??????к???????????????????????????????????????????????????????????????????????????4KB?????????????????С???????????治?????????????????С????????????256G???????????????4KBС??? ?????????С?4G???????????????????????????????????????CPU??棬??????????miss?????????????????
????HugePage??????????????HugePage???2MB??С???????洫?С?????????棬??????????????С?????????С????????????CPU??棬???????miss??
??????2??????THP??Transparent Huge Pages???
????HugePage???????????????????????HugePage?????????????????????÷??????????Static Huge Pages?????????Transparent Huge Pages????????????????????????????????????????????????????С??????????????????????????????????????????????????????????????Transparent Huge Pages???????????????????????????????????????????????Щ??????й??????????????????????????????κ????á???????THP???????????????
??????3??HBase???????????????THP?????
????THP???????????????????????????????????????????????????????????????????????????????????????????????THP???к??????????????ο?????????why-tokudb-hates-transparent-hugepages??
??????4??THP???/?????HBase??д????????ж??
??????????THP???????HBase???????????ж????????????????????????????????????????RegionServer????????????д??1:1??THP??????????always???never???????????????ж?????????madvise??????????????? echo never/always > /sys/kernel/mm/transparent_hugepage/enabled ?????/????THP??????????????????

???????????TPH???????£?never??HBase?????????????????THP??????????always???????????????????30%?????????????????????????????HBase?????м?????THP??
???????
?????κ???????????????????????????????????????????????????????????????????á????????á??????滮????scheme???????????????????????????????????????????????JVM???????????????????Щ?????????????鶼??λ????????????????????????????????????????????????HBase?????????????????????????????????Щ????????????塣?????漰???????????????????????????o?ο??????