ΠΠΎΠΌΠΏΠ°Π½ΠΈΡ Meta* ΠΎΠ±ΡΡΠ²ΠΈΠ»Π° ΠΎ Π²ΠΎΠ·ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΏΠ°ΠΌΡΡΡΡ jemalloc, ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ ΠΊΠΎΡΠΎΡΠΎΠΉ Π² ΠΈΡΠ½Π΅ ΠΏΡΠΎΡΠ»ΠΎΠ³ΠΎ Π³ΠΎΠ΄Π° Π±ΡΠ» ΠΏΠ΅ΡΠ΅Π²Π΅Π΄ΡΠ½ Π² Π°ΡΡ ΠΈΠ²Π½ΡΠΉ ΡΠ΅ΠΆΠΈΠΌ. ΠΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° jemalloc ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π΅Ρ Π°Π»ΡΡΠ΅ΡΠ½Π°ΡΠΈΠ²Π½ΡΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΉ malloc, ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΡ Π΄Π»Ρ ΡΠ½ΠΈΠΆΠ΅Π½ΠΈΡ ΡΡΠ°Π³ΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ ΠΈ ΡΠ°Π±ΠΎΡΡ Π½Π° ΠΌΠ½ΠΎΠ³ΠΎΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ½ΡΡ ΡΠΈΡΡΠ΅ΠΌΠ°Ρ .
ΠΡΠΌΠ΅ΡΠ°Π΅ΡΡΡ, ΡΡΠΎ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΡ Meta ΠΎΡΠΎΠ·Π½Π°Π»Π° ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²Π° ΠΎΡ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡ jemalloc Π² ΡΠ²ΠΎΠ΅ΠΉ ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΠ΅ ΠΈ ΡΠ΅ΡΠΈΠ»Π° Π²ΠΎΠ·ΠΎΠ±Π½ΠΎΠ²ΠΈΡΡ ΡΠ°Π±ΠΎΡΡ Π½Π°Π΄ ΠΊΠΎΠ΄ΠΎΠΌ Π΄Π°Π½Π½ΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ Π΄Π»Ρ ΡΠ½ΠΈΠΆΠ΅Π½ΠΈΡ ΠΈΠ·Π΄Π΅ΡΠΆΠ΅ΠΊ Π½Π° ΡΠΎΠΏΡΠΎΠ²ΠΎΠΆΠ΄Π΅Π½ΠΈΠ΅, ΠΌΠΎΠ΄Π΅ΡΠ½ΠΈΠ·Π°ΡΠΈΠΈ ΠΊΠΎΠ΄ΠΎΠ²ΠΎΠΉ Π±Π°Π·Ρ, ΠΈΠ·Π±Π°Π²Π»Π΅Π½ΠΈΡ ΠΎΡ ΡΠ΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ Π΄ΠΎΠ»Π³Π° ΠΈ Π°Π΄Π°ΠΏΡΠ°ΡΠΈΠΈ Π°Π»Π»ΠΎΠΊΠ°ΡΠΎΡΠ° Π΄Π»Ρ Π½ΠΎΠ²ΡΡ Π²ΠΈΠ΄ΠΎΠ² Π½Π°Π³ΡΡΠ·ΠΊΠΈ ΠΈ Π°ΠΊΡΡΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΠΎΠ±ΠΎΡΡΠ΄ΠΎΠ²Π°Π½ΠΈΡ. Π Π°Π·ΡΠ°Π±ΠΎΡΠΊΠ° Π±ΡΠ΄Π΅Ρ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ΅Π½Π° Π² ΡΠΎΡΠΌΠ΅ ΠΎΡΠΊΡΡΡΠΎΠ³ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠ°, ΡΠ°Π·Π²ΠΈΠ²Π°Π΅ΠΌΠΎΠ³ΠΎ ΡΠΎΠ²ΠΌΠ΅ΡΡΠ½ΠΎ Ρ ΡΠΎΠΎΠ±ΡΠ΅ΡΡΠ²ΠΎΠΌ ΠΈ ΠΏΡΠΈΠ²Π΅ΡΡΡΠ²ΡΡΡΠ΅Π³ΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΊ ΡΠ°Π±ΠΎΡΠ΅ ΡΡΠΎΡΠΎΠ½Π½ΠΈΡ ΡΡΠ°ΡΡΠ½ΠΈΠΊΠΎΠ².
ΠΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° jemalloc Π±ΡΠ»Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°Π½Π° ΠΠΆΠ΅ΠΉΡΠΎΠ½ΠΎΠΌ ΠΠ²Π°Π½ΡΠΎΠΌ (Jason Evans) Π² 2005 Π³ΠΎΠ΄Ρ Π΄Π»Ρ FreeBSD 7.0, ΠΏΠΎΡΠ»Π΅ ΡΠ΅Π³ΠΎ Π±ΡΠ»Π° ΠΏΠΎΡΡΠΈΡΠΎΠ²Π°Π½Π° Π² NetBSD ΠΈ ΠΈΠ½ΡΠ΅Π³ΡΠΈΡΠΎΠ²Π°Π½Π° Π² ΡΠΎΡΡΠ°Π² Firefox. Π 2009 Π³ΠΎΠ΄Ρ Π°Π²ΡΠΎΡ jemalloc ΠΏΠ΅ΡΠ΅ΡΡΠ» Π½Π° ΡΠ°Π±ΠΎΡΡ Π² ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΡ Facebook, Π² ΠΊΠΎΡΠΎΡΠΎΠΉ Π΄Π°Π½Π½Π°Ρ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»Π°ΡΡ Π²ΠΎ Π²Π½ΡΡΡΠ΅Π½Π½ΠΈΡ ΠΏΡΠΎΠ΅ΠΊΡΠ°Ρ . Π 2017 Π³ΠΎΠ΄Ρ ΠΠΆΠ΅ΠΉΡΠΎΠ½ ΡΠ²ΠΎΠ»ΠΈΠ»ΡΡ ΠΈΠ· Facebook, Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ° Π±ΡΠ»Π° ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ΅Π½Π° ΠΎΡΡΠ°Π²ΡΠ΅ΠΉΡΡ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ ΠΈΠ· Facebook. ΠΠΎΡΠ»Π΅ ΠΏΠ΅ΡΠ΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΡ Π² Meta ΠΏΡΠΈΠΎΡΠΈΡΠ΅ΡΡ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ»ΠΈΡΡ, ΡΠ°Π·Π²ΠΈΡΠΈΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ Π·Π°ΡΡΠΎΠΏΠΎΡΠΈΠ»ΠΎΡΡ, ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ° ΡΠΎΡΡΠ΅Π΄ΠΎΡΠΎΡΠΈΠ»Π°ΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π½Π° Π²Π½ΡΡΡΠ΅Π½Π½ΠΈΡ ΠΏΠΎΡΡΠ΅Π±Π½ΠΎΡΡΡΡ , Π° ΠΎΠ±ΡΠ΅Π΄ΠΎΡΡΡΠΏΠ½Π°Ρ ΠΊΠΎΠ΄ΠΎΠ²Π°Ρ Π±Π°Π·Π° ΡΠΎ Π²ΡΠ΅ΠΌΠ΅Π½Π΅ΠΌ Π΄Π΅Π³ΡΠ°Π΄ΠΈΡΠΎΠ²Π°Π»Π°. ΠΠ»Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠ°Π½ΠΈΡ ΠΎΠ±ΡΠ΅Π΄ΠΎΡΡΡΠΏΠ½ΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ Π½Π° ΠΏΠ»Π°Π²Ρ ΡΡΠ΅Π±ΠΎΠ²Π°Π»ΡΡ Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΡΠΉ ΡΠ΅ΡΠ°ΠΊΡΠΎΡΠΈΠ½Π³, Π½ΠΎ ΠΠΆΠ΅ΠΉΡΠΎΠ½ Π½Π΅ Π³ΠΎΡΠΎΠ² Π±ΡΠ» ΡΡΠ°ΡΠΈΡΡ ΡΠ²ΠΎΡ Π²ΡΠ΅ΠΌΡ Π½Π° ΡΡΡ ΡΠ°Π±ΠΎΡΡ ΠΈ ΠΏΠΎΡΡΠΎΠΌΡ 10 ΠΌΠ΅ΡΡΡΠ΅Π² Π½Π°Π·Π°Π΄ ΠΏΠ΅ΡΠ΅Π²ΡΠ» ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ Π² Π°ΡΡ ΠΈΠ²Π½ΡΠΉ ΡΠ΅ΠΆΠΈΠΌ.
Π‘ΡΠ΅Π΄ΠΈ ΠΏΠ»Π°Π½ΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΡ Facebook Π½Π°ΠΌΠ΅ΡΠΈΠ»Π° ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ ΠΏΠΎΡΠ»Π΅ Π²ΠΎΠ·ΡΠΎΠΆΠ΄Π΅Π½ΠΈΡ ΠΏΡΠΎΠ΅ΠΊΡΠ°:
- Π‘Π½ΠΈΠΆΠ΅Π½ΠΈΠ΅ Π½Π°ΠΊΠΎΠΏΠ»Π΅Π½Π½ΠΎΠ³ΠΎ ΡΠ΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ Π΄ΠΎΠ»Π³Π°, ΠΏΡΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΡΠ°ΡΠ°ΠΊΡΠΎΡΠΈΠ½Π³Π° ΠΈ ΡΠΈΡΡΠΊΠΈ ΠΊΠΎΠ΄ΠΎΠ²ΠΎΠΉ Π±Π°Π·Ρ, ΡΡΠΎΠ²Π΅ΡΡΠ΅Π½ΡΡΠ²ΠΎΠ²Π°Π½ΠΈΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ Π΄Π»Ρ ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΡ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎΡΡΠΈ, Π½Π°Π΄ΡΠΆΠ½ΠΎΡΡΠΈ ΠΈ ΠΏΡΠΎΡΡΠΎΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ.
- ΠΡΠΎΠ΄ΠΎΠ»ΠΆΠ΅Π½ΠΈΠ΅ ΡΠ°Π·Π²ΠΈΡΠΈΡ Π°Π»Π»ΠΎΠΊΠ°ΡΠΎΡΠ° HPA (Huge-Page Allocator) Π΄Π»Ρ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ ΠΏΠΎΡΡΠ΅Π±Π»Π΅Π½ΠΈΡ ΡΠ΅ΡΡΡΡΠΎΠ² CPU Π·Π° ΡΡΡΡ Π±ΠΎΠ»Π΅Π΅ ΠΎΠΏΡΠΈΠΌΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π±ΠΎΠ»ΡΡΠΈΡ ΡΡΡΠ°Π½ΠΈΡ ΠΏΠ°ΠΌΡΡΠΈ (transparent hugepage).
- ΠΠ½Π΅ΡΠ΅Π½ΠΈΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π΄Π»Ρ ΠΏΠΎΠ²ΡΡΠ΅Π½ΠΈΡ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎΡΡΠΈ ΡΠ°Π±ΠΎΡΡ Ρ ΠΏΠ°ΠΌΡΡΡΡ, ΡΠ²ΡΠ·Π°Π½Π½ΡΡ Ρ ΡΠ»ΡΡΡΠ΅Π½ΠΈΠ΅ΠΌ ΡΠΏΠ°ΠΊΠΎΠ²ΠΊΠΈ ΡΡΡΡΠΊΡΡΡ, ΠΊΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈ ΠΎΡΠΈΡΡΠΊΠΈ ΠΎΡΠ²ΠΎΠ±ΠΎΠΆΠ΄ΡΠ½Π½ΡΡ Π±Π»ΠΎΠΊΠΎΠ² ΠΏΠ°ΠΌΡΡΠΈ.
- ΠΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΉ Π΄Π»Ρ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ AArch64 (ARM64).
ΠΡΡΠΎΡΠ½ΠΈΠΊ: opennet.ru
