Facebook Π²ΠΎΠ·ΠΎΠ±Π½ΠΎΠ²ΠΈΠ» Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ управлСния ΠΏΠ°ΠΌΡΡ‚ΡŒΡŽ jemalloc

Компания 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

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ