避免Linux内存浪费:Facebook开发新的THP收缩机制
Meta/Facebook的工程师宣布了他们在THP Shrinker方面的工作,这是一种让Linux的透明页(THP)工作更有效率的方法,主要原理是通过移除未被充分利用的透明页来避免内存浪费。 |
THP对于某些工作负载来说,通过减少TLB缓存的未命中状态可以提高效率,但是2MB与4Kb的页面大小如果没有得到有效利用,反而会导致大量的内存浪费。
Facebook的工程师在他们的一个平台上发现,由于THP没有得到充分利用,甚至让每台机器造成了大约2.7GB的内存浪费。
Facebook正在为Linux内核开发的THP收缩机制旨在解决这种浪费,与此同时仍然可以享受THP以提高CPU效率的优势,THP Shrinker将分割利用率最低的大内存页面。
THP Shrinker旨在避免浪费RAM,并尽可能让大内存页面透明并对外开放,使其无条件地启用,从而替代了基于madevise系统调用的选择。
Facebook的工程师们正在努力围绕这个THP Shrinker增加额外的调整,并可能与CPU/IO/内存压力事件挂钩。最终,工程师希望通过THP收缩器可以直接废除Linux的madvise THP模式,并切换到THP为所有应用程序启用。