A Meta kiváló Linuxos mérnökcsapata az utóbbi időben több friss teljesítményoptimalizáción is dolgozott, a /proc/interrupts kimenetének optimalizálásától a jemallocba történő befektetésük megújításáig . A héten egy új Linux kernel patch további optimalizációt hozott: segít elkerülni azt a helyzetet, amikor Linux rendszereken feleslegesen visszafogják a TCP-átviteli sebességet.
JP Kobryn egy mm/vmpressure patch-et küldött be, amely a költséges order reclaim esetén kihagyja a socket pressure jelzését. Kobryn a héten így magyarázta el a helyzetet a patch kapcsán:
"Amikor a kswapd töredezettség miatt magas order mellett próbál reclaimet végezni, a vmpressure() gyenge reclaim-hatékonyságot jelezhet akkor is, ha a rendszerben bőven van szabad memória. Ennek az az oka, hogy a kswapd sok oldalt átvizsgál, de alig talál olyat, amit érdemes lenne felszabadítani – az oldalak aktívan használatban vannak, és nem kell őket elengedni. Az így kialakuló scan:reclaim arány socket pressure-t vált ki, ami feleslegesen visszafogja a TCP-átvitelt.
A hálózati allokációk nem mennek 3-as order fölé (PAGE_ALLOC_COSTLY_ORDER), ezért a magas orderű reclaim ne váltson ki socket pressure-t. A kernel már most is úgy kezeli ezt az ordert, mint azt a határt, amely felett a reclaim sikerére már nem számítunk, és átveheti a szerepet a compaction.
Tegyük a vmpressure()-t order-tudatossá egy további paraméterrel, amelyet a meglévő hívási helyeken a scan_control-ból veszünk. A socket pressure-t ezentúl csak akkor jelezzük, ha az order <= PAGE_ALLOC_COSTLY_ORDER.
A memcg reclaimre ez nincs hatással, mivel a try_to_free_mem_cgroup_pages() mindig 0-s ordert használ, ami feltétel nélkül átmegy a szűrőn. Hasonlóan, a vmpressure_prio() mostantól belsőleg 0-s ordert ad át, amikor a vmpressure()-t hívja, így az alacsony reclaim prioritás miatti kritikus nyomást nem nyomja el az order szűrő."
A patch részeként nem közöltek konkrét teljesítményadatokat.

