Π‘Π»Π΅Π΄ ΠΏΠΎΡ‡Ρ‚ΠΈ Ρ‡Π΅Ρ‚ΠΈΡ€ΠΈΠ³ΠΎΠ΄ΠΈΡˆΠ½Π° ΠΏΠ°ΡƒΠ·Π° (Π²ΠΈΠΆΡ‚Π΅ β€žΠ²ΡΠΈΡ‡ΠΊΠΎ ΠΎΡ‚ jemallocΒ») сС ΡΡŠΡΡ‚ΠΎΡ ΠΈΠ·Π΄Π°Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° вСрсия 5.3.1 Π½Π° разпрСдСлитСля jemalloc – имплСмСнтация Π½Π° malloc(3), която набляга Π½Π° прСдотвратяванСто Π½Π° фрагмСнтацията ΠΈ ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ°Ρ‚Π° Π½Π° ΠΌΠ°Ρ‰Π°Π±ΠΈΡ€ΡƒΠ΅ΠΌΠ° паралСлност.

Новата вСрсия Π²ΠΊΠ»ΡŽΡ‡Π²Π° Π½Π°Π΄ 390 ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈ с ΠΊΠΎΡ€Π΅ΠΊΡ†ΠΈΠΈ Π½Π° Π³Ρ€Π΅ΡˆΠΊΠΈ, Π½ΠΎΠ²ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ Π½Π° производитСлността ΠΈ подобрСния Π² прСносимостта.

ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ΡŠΡ‚ Π΅ написан Π½Π° C ΠΈ сС разпространява ΠΏΠΎΠ΄ BSD Π»ΠΈΡ†Π΅Π½Π·.

Нови Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΠΈ:

  • ΠŸΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π½Π° pvalloc(3).
  • Π΄Π²ΠΎΠΉΠ½ΠΎ свободно ΡΡŠΡΡ‚ΠΎΡΠ½ΠΈΠ΅, ΠΎΡ‚ΠΊΡ€ΠΈΡ‚ΠΎ Π² компилацията Π·Π° дСбъгванС;
  • Π”ΠΎΠ±Π°Π²Π΅Π½Π° Π΅ опция Π·Π° ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€Π°Π½Π΅ --enable-pageid, Π·Π° Π΄Π° сС Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€Π° анотация, ΠΊΠ°Ρ€Ρ‚ΠΎΠ³Ρ€Π°Ρ„ΠΈΡ€Π°Π½Π° Π² ΠΏΠ°ΠΌΠ΅Ρ‚Ρ‚Π°.
  • Π”ΠΎΠ±Π°Π²Π΅Π½ Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚ΡŠΡ€ ΠΏΠΎ Π²Ρ€Π΅ΠΌΠ΅ Π½Π° изпълнСниС prof_bt_max Π·Π° ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ» Π½Π° максималната Π΄ΡŠΠ»Π±ΠΎΡ‡ΠΈΠ½Π° Π½Π° стСка Π·Π° ΠΏΡ€ΠΎΡ„ΠΈΠ»ΠΈΡ€Π°Π½Π΅;
  • Π”ΠΎΠ±Π°Π²Π΅Π½Π° Π΅ опция Π·Π° ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€Π°Π½Π΅ --enable-force-getenv Π·Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° getenv вмСсто secure_getenv;
  • Π”ΠΎΠ±Π°Π²Π΅Π½Π° Π΅ опция Π·Π° ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€Π°Π½Π΅ --disable-dss, Π·Π° Π΄Π° сС Π΄Π΅Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° sbrk(2);
  • Π”ΠΎΠ±Π°Π²Π΅Π½Π° Π΅ опция Π·Π° ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€Π°Π½Π΅ tcache_ncached_max Π·Π° ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ» Π½Π° броя Π½Π° Π΅Π»Π΅ΠΌΠ΅Π½Ρ‚ΠΈΡ‚Π΅ Π² кСша Π½Π° Π½ΠΈΡˆΠΊΠΈΡ‚Π΅.
  • Π”ΠΎΠ±Π°Π²Π΅Π½ Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚ΡŠΡ€ ΠΏΠΎ Π²Ρ€Π΅ΠΌΠ΅ Π½Π° изпълнСниС calloc_madvise_threshold, Π·Π° Π΄Π° сС ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈ Π΄Π°Π»ΠΈ ядрото ΠΈΠ»ΠΈ memset сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π·Π° Π½ΡƒΠ»ΠΈΡ€Π°Π½Π΅ Π½Π° Ρ€Π°Π·ΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΡ‚Π΅ Π±Π»ΠΎΠΊΠΎΠ²Π΅ ΠΏΠ°ΠΌΠ΅Ρ‚ ΠΏΡ€ΠΈ ΠΈΠ·Π²ΠΈΠΊΠ²Π°Π½Π΅ Π½Π° calloc;
  • Π”ΠΎΠ±Π°Π²Π΅Π½Π° Π΅ опцията ΠΏΠΎ Π²Ρ€Π΅ΠΌΠ΅ Π½Π° компилация --disable-user-config, Π·Π° Π΄Π° сС Π΄Π΅Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€Π° Ρ‡Π΅Ρ‚Π΅Π½Π΅Ρ‚ΠΎ Π½Π° ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ ΠΎΡ‚ Ρ„Π°ΠΉΠ»Π° /etc/malloc.conf ΠΈΠ»ΠΈ ΠΎΡ‚ ΠΏΡ€ΠΎΠΌΠ΅Π½Π»ΠΈΠ²Π°Ρ‚Π° Π½Π° срСдата MALLOC_CONF ΠΏΠΎ Π²Ρ€Π΅ΠΌΠ΅ Π½Π° изпълнСниС.
  • Π”ΠΎΠ±Π°Π²Π΅Π½ Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚ΡŠΡ€ΡŠΡ‚ ΠΏΠΎ Π²Ρ€Π΅ΠΌΠ΅ Π½Π° изпълнСниС disable_large_size_classes, Π·Π° Π΄Π° сС Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€Π° новият Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΡŠΠΌ Π·Π° изчисляванС Π½Π° Ρ€Π°Π·ΠΌΠ΅Ρ€Π°, ΠΊΠΎΠΉΡ‚ΠΎ ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·ΠΈΡ€Π° Π½Π°Ρ‚ΠΎΠ²Π°Ρ€Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° ΠΏΠ°ΠΌΠ΅Ρ‚Ρ‚Π° ΠΏΡ€ΠΈ разпрСдСлянС Π½Π° Π³ΠΎΠ»Π΅ΠΌΠΈ Π±Π»ΠΎΠΊΠΎΠ²Π΅ ΠΏΠ°ΠΌΠ΅Ρ‚, Ρ‚.Π΅. с Ρ€Π°Π·ΠΌΠ΅Ρ€ >= 4 * PAGE;
  • Активирано Π΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° process_madvise ΠΈ Π΅ Π΄ΠΎΠ±Π°Π²Π΅Π½ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚ΡŠΡ€ΡŠΡ‚ ΠΏΠΎ Π²Ρ€Π΅ΠΌΠ΅ Π½Π° изпълнСниС process_madvise_max_batch Π·Π° ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ» Π½Π° максималния Π±Ρ€ΠΎΠΉ Ρ€Π΅Π³ΠΈΠΎΠ½ΠΈ Π½Π° ΠΏΠ°ΠΌΠ΅Ρ‚Ρ‚Π° във всяка β€žΠΏΠ°Ρ€Ρ‚ΠΈΡβ€œ Π½Π° madvise;
  • Π΄ΠΎΠ±Π°Π²Π΅Π½ΠΈ интСрфСйси Π½Π° mallctl:
    • opt.prof_bt_max;
    • Π°Ρ€Π΅Π½Π°.
    • thread.tcache.max Π·Π° промяна ΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π°Π²Π°Π½Π΅ Π½Π° tcache_max Π½Π° Ρ‚Π΅ΠΊΡƒΡ‰Π°Ρ‚Π° нишка;
    • thread.tcache.ncached_max.write ΠΈ thread.tcache.ncached_max.read_sizeclass Π·Π° промяна ΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π°Π²Π°Π½Π΅ Π½Π° ncached_max Π½Π° Ρ‚Π΅ΠΊΡƒΡ‰Π°Ρ‚Π° нишка;
    • arenas.hugepage Π·Π° Π²Ρ€ΡŠΡ‰Π°Π½Π΅ Π½Π° използвания Ρ€Π°Π·ΠΌΠ΅Ρ€ Π½Π° hugepage, ΡΡŠΡ‰ΠΎ Скспортиран Π² malloc stats;
    • approximate_stats.active, Π·Π° Π΄Π° ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ ΠΏΡ€ΠΈΠ±Π»ΠΈΠ·ΠΈΡ‚Π΅Π»Π½Π° стойност Π½Π° Ρ‚Π΅ΠΊΡƒΡ‰ΠΎΡ‚ΠΎ количСство Π°ΠΊΡ‚ΠΈΠ²Π½ΠΈ Π±Π°ΠΉΡ‚ΠΎΠ²Π΅, която Π½Π΅ трябва Π΄Π° сС сравнява с Π΄Ρ€ΡƒΠ³ΠΈ ΠΈΠ·Π²Π»Π΅Ρ‡Π΅Π½ΠΈ статистики.
  • Много Π³Ρ€Π΅ΡˆΠΊΠΈ ΡΡŠΡ‰ΠΎ са отстранСни ΠΈ докумСнтацията Π΅ ΠΏΠΎΠ΄ΠΎΠ±Ρ€Π΅Π½Π°.

Π˜Π·Ρ‚ΠΎΡ‡Π½ΠΈΠΊ: linux.org.ru

ΠšΡƒΠΏΠ΅Ρ‚Π΅ Π½Π°Π΄Π΅ΠΆΠ΄Π΅Π½ хостинг Π·Π° сайтовС с DDoS Π·Π°Ρ‰ΠΈΡ‚Π°, VPS VDS ΡΡŠΡ€Π²ΡŠΡ€ΠΈ πŸ”₯ ΠšΡƒΠΏΠ΅Ρ‚Π΅ Π½Π°Π΄Π΅ΠΆΠ΄Π΅Π½ ΡƒΠ΅Π± хостинг със Π·Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ DDoS Π°Ρ‚Π°ΠΊΠΈ, VPS VDS ΡΡŠΡ€Π²ΡŠΡ€ΠΈ | ProHoster