По ΠΏΠ°ΡƒΠ·Π° ΠΎΠ΄ рСчиси Ρ‡Π΅Ρ‚ΠΈΡ€ΠΈ Π³ΠΎΠ΄ΠΈΠ½ΠΈ (Π²ΠΈΠ΄Π΅Ρ‚Π΅ β€ž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 Π·Π° Π΄Π° сС ΡƒΡ‚Π²Ρ€Π΄ΠΈ Π΄Π°Π»ΠΈ Ρ˜Π°Π΄Ρ€ΠΎΡ‚ΠΎ ΠΈΠ»ΠΈ мСмсСтот сС користат Π·Π° Π½ΡƒΠ»Π° Π½Π° Π΄ΠΎΠ΄Π΅Π»Π΅Π½ΠΈΡ‚Π΅ мСмориски Π±Π»ΠΎΠΊΠΎΠ²ΠΈ ΠΏΡ€ΠΈ ΠΏΠΎΠ²ΠΈΠΊΡƒΠ²Π°ΡšΠ΅ Π½Π° calloc;
  • Π”ΠΎΠ΄Π°Π΄Π΅Π½Π° Π΅ ΠΎΠΏΡ†ΠΈΡ˜Π°Ρ‚Π° --disable-user-config compile-time Π·Π° Π΄Π° сС ΠΎΠ½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠΈ Ρ‡ΠΈΡ‚Π°ΡšΠ΅Ρ‚ΠΎ Π½Π° ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈΡ‚Π΅ ΠΎΠ΄ Π΄Π°Ρ‚ΠΎΡ‚Π΅ΠΊΠ°Ρ‚Π° /etc/malloc.conf ΠΈΠ»ΠΈ ΠΎΠ΄ ΠΏΡ€ΠΎΠΌΠ΅Π½Π»ΠΈΠ²Π°Ρ‚Π° Π½Π° ΠΎΠΊΠΎΠ»ΠΈΠ½Π°Ρ‚Π° MALLOC_CONF Π·Π° Π²Ρ€Π΅ΠΌΠ΅ Π½Π° ΠΈΠ·Π²Ρ€ΡˆΡƒΠ²Π°ΡšΠ΅.
  • Π”ΠΎΠ΄Π°Π΄Π΅Π½ Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Π°Ρ€ΠΎΡ‚ Π·Π° ΠΈΠ·Π²Ρ€ΡˆΡƒΠ²Π°ΡšΠ΅ disable_large_size_classes Π·Π° Π΄Π° сС ΠΎΠ²ΠΎΠ·ΠΌΠΎΠΆΠΈ Π½ΠΎΠ²ΠΈΠΎΡ‚ Π°Π»Π³ΠΎΡ€ΠΈΡ‚Π°ΠΌ Π·Π° прСсмСтка Π½Π° достапна Π³ΠΎΠ»Π΅ΠΌΠΈΠ½Π°, кој Π³ΠΎ ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·ΠΈΡ€Π° ΠΎΠΏΡ‚ΠΎΠ²Π°Ρ€ΡƒΠ²Π°ΡšΠ΅Ρ‚ΠΎ Π½Π° ΠΌΠ΅ΠΌΠΎΡ€ΠΈΡ˜Π°Ρ‚Π° ΠΏΡ€ΠΈ Π°Π»ΠΎΠΊΠ°Ρ†ΠΈΡ˜Π° Π½Π° Π³ΠΎΠ»Π΅ΠΌΠΈ мСмориски Π±Π»ΠΎΠΊΠΎΠ²ΠΈ, Ρ‚.Π΅. со Π³ΠΎΠ»Π΅ΠΌΠΈΠ½Π° >= 4 * PAGE;
  • ОвозмоТСна Π΅ ΡƒΠΏΠΎΡ‚Ρ€Π΅Π±Π°Ρ‚Π° Π½Π° process_madvise ΠΈ Π΄ΠΎΠ΄Π°Π΄Π΅Π½ Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Π°Ρ€ΠΎΡ‚ Π·Π° Π²Ρ€Π΅ΠΌΠ΅ Π½Π° ΠΈΠ·Π²Ρ€ΡˆΡƒΠ²Π°ΡšΠ΅ process_madvise_max_batch Π·Π° ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π° Π½Π° максималниот Π±Ρ€ΠΎΡ˜ Π½Π° мСмориски Ρ€Π΅Π³ΠΈΠΎΠ½ΠΈ Π²ΠΎ сСкоја β€ž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