Tüm Ürünler
Search
Belge Merkezi

Alibaba Cloud Linux:Hugetext

Son Güncelleme:Oct 08, 2026

Hugetext, Şeffaf Büyük Sayfaların (Transparent Huge Pages - THP) bir uzantısıdır ve uygulamaların yanı sıra dinamik bağlantı kütüphanelerinin (DLL) yürütülebilir bölümlerini büyük sayfalara (genellikle 2 MB) eşler. Talimat Çeviri Yan Bakım Arabelleği (iTLB) hatalarını azaltarak ve iTLB kullanımını artırarak Hugetext; MySQL ve PostgreSQL gibi veritabanları ile büyük ölçekli Java uygulamaları dahil olmak üzere geniş kod segmentlerine sahip iş yüklerinin performansını iyileştirir. Hugetext ayrıca bellek parçalanmasını ve şişmesini önlemeye yardımcı olur, böylece genel bellek kullanımını geliştirir.

Performans kazanımları platforma ve iş yüküne göre değişir. Hugetext, iTLB baskısının darboğaz oluşturduğu durumlarda en büyük etkiyi gösterir.

Ön koşullar

Başlamadan önce aşağıdakilere sahip olduğunuzdan emin olun:

  • Aşağıdaki kernel sürümlerinden birini çalıştıran bir Alibaba Cloud Linux örneği:

    • Alibaba Cloud Linux 2: kernel 4.19.91-25 veya üzeri

    • Alibaba Cloud Linux 3: kernel 5.10.112-11 veya üzeri

Örneğinizdeki kernel sürümünü kontrol etmek için uname -r komutunu çalıştırın.

Nasıl çalışır

Hugetext, THP ile benzer şekilde çalışır ancak tüm anonim bellek yerine yalnızca kod segmentlerini hedef alır. Etkinleştirildiğinde kernel, ikili dosyalar ve DLL'ler dahil olmak üzere yürütülebilir bellek eşlemelerini eşzamansız olarak tarar ve uygun sayfaları 2 MB'lık büyük sayfalarda birleştirir. Bu işlem, gereken iTLB girdisi sayısını azaltır, iTLB hata oranını düşürür ve uygulamanın yaşam döngüsü boyunca CPU verimliliğini artırır.

Hugetext eşzamansız çalıştığından, özelliği etkinleştirdiğinizde sayfalar hemen birleştirilmez ve devre dışı bıraktığınızda hemen ayrılmaz.

Hugetext'i etkinleştirin

Hugetext varsayılan olarak devre dışıdır. sysfs arayüzü üzerinden /sys/kernel/mm/transparent_hugepage/hugetext_enabled yoluna aşağıdaki değerlerden birini yazarak özelliği etkinleştirin.

Değer Mod Açıklama
1 İkili sayfa ve dinamik kütüphane sayfaları İkili dosyaların ve DLL'lerin yürütülebilir bölümlerini büyük sayfalara eşler. Çoğu veritabanı ve uygulama iş yükü için bu modu kullanın.
2 Anonim yürütülebilir sayfalar Anonim yürütülebilir sayfaları (JIT ile derlenen kod) büyük sayfalara eşler. Java veya diğer JIT tabanlı çalışma zamanları için bu modu kullanın.
3 Yukarıdakilerin tümü Mod 1 ve Mod 2'yi birleştirir. İş yükünüz hem statik ikili dosyalar hem de JIT ile derlenen kod içeriyorsa bu modu kullanın.

İlgili komutu çalıştırın:

  • Mod 1 — İkili sayfa ve dinamik kütüphane sayfaları:

    sudo sh -c 'echo 1 > /sys/kernel/mm/transparent_hugepage/hugetext_enabled'
  • Mod 2 — Anonim yürütülebilir sayfalar:

    sudo sh -c 'echo 2 > /sys/kernel/mm/transparent_hugepage/hugetext_enabled'
  • Mod 3 — İkili sayfalar, dinamik kütüphane sayfaları ve anonim yürütülebilir sayfalar:

    sudo sh -c 'echo 3 > /sys/kernel/mm/transparent_hugepage/hugetext_enabled'

Hugetext'i önyükleme sırasında yapılandırın

Hugetext ayarının yeniden başlatmalarda kalıcı olmasını sağlamak için GRand Unified Bootloader (GRUB) yapılandırmanızda hugetext önyükleme parametresini ayarlayın. Parametre, yukarıdaki tabloda açıklandığı gibi aynı değerleri (0, 1, 2 veya 3) kabul eder. Kesin söz dizimi için GRUB sürümünüzün ve görüntü belgelerinizin ilgili kısmına bakın.

Hugetext'in etkin olduğunu doğrulayın

Hugetext'i etkinleştirdikten sonra kernelin sayfaları eşzamansız olarak birleştirmesi için biraz zaman tanıyın. Ardından, bir işleme eşlenen büyük sayfaların boyutunu (KB cinsinden) raporlayan /proc/<pid>/smaps içindeki FilePmdMapped alanını kontrol edin.

<pid> ifadesini gerçek süreç kimliği (PID) ile değiştirin. Çalışan bir hizmetin PID değerini bulmak için pidof komutunu kullanın. Örneğin: pidof sshd.

sudo cat /proc/<pid>/smaps | grep FilePmdMapped | awk '{sum+=$2}END{print"Sum= ",sum}'

Sum değeri 0'dan büyükse süreç büyük sayfaları kullanıyor demektir. Değer 0 ise kernel henüz o süreç için sayfaları birleştirmemiş veya sürecin uygun nitelikte kod segmentleri yoktur.

Hugetext'i devre dışı bırakın

sudo sh -c 'echo 0 > /sys/kernel/mm/transparent_hugepage/hugetext_enabled'

Devre dışı bırakıldıktan sonra kernel mevcut büyük sayfaları hemen ayırmaz. Büyük sayfa önbellekleri de korunur. Bunları temizlemek için aşağıdaki yöntemlerden birini kullanın.

Büyük sayfa önbelleklerini temizleyin

Test sonuçlarının önceki bir oturumdan kalan önbelleğe alınmış büyük sayfalar nedeniyle sapmamasını sağlamak için kıyaslama yapmadan önce bu komutlardan birini çalıştırın.
  • Sistem genelindeki sayfa önbelleğini temizleyin:

    sudo sh -c 'echo 3 > /proc/sys/vm/drop_caches'
  • Belirli bir dosya için sayfa önbelleğini temizleyin:

    sudo vmtouch -e /<path>/target

    <path> ifadesini uygulama ikili dosyanızın diziniyle değiştirin. Virtual Memory Toucher (vmtouch) yüklü olmalıdır. Yüklü değilse şu komutu çalıştırın:

    sudo yum install vmtouch
  • Kalan büyük sayfaları ayırın:

    sudo sh -c 'echo 1 > /sys/kernel/debug/split_huge_pages'

Dolgu özelliğini etkinleştirin

Dolgu (padding), bir ikili dosyanın metin segmenti 2 MB'tan küçük olduğu ve tek başına büyük sayfa kullanamadığı durumlar için isteğe bağlı bir optimizasyondur. Metin segmenti boyutu hugetext_pad_threshold değerini aştığında kernel segmenti 2 MB'a doldurarak büyük sayfaya eşlenmesine olanak tanır.

Dolgu özelliğinin çalışması için Hugetext'in etkin olması gerekir.

hugetext_pad_threshold değerini ayarlayarak dolguyu etkinleştirin (geçerli aralık: 0–2097151):

sudo sh -c 'echo [0~2097151] > /sys/kernel/mm/transparent_hugepage/hugetext_pad_threshold'

Çoğu durumda 4096 değeri iyi sonuç verir:

sudo sh -c 'echo 4096 > /sys/kernel/mm/transparent_hugepage/hugetext_pad_threshold'

Dolguyu devre dışı bırakmak için:

sudo sh -c 'echo 0 > /sys/kernel/mm/transparent_hugepage/hugetext_pad_threshold'

Hizalama notu: Dolgunun beklendiği gibi çalışması için kod ve veri segmentlerinin 2 MB hizalı olması gerekir. Bunları hizalamak için varsayılan bağlayıcı betiğini (IDS dosyası) değiştirin ve her kod veya veri segmentinden önce . = ALIGN(0x200000); ifadesini ekleyin. 2 MB hizalaması olmadan rw-p veya r--p segmentlerini izleyen içerik beklendiği gibi doldurulmayabilir ve bazı bölümler 4 KB sayfalara geri dönebilir.

Performans faydaları

Fiziksel makinelerde Hugetext genellikle uygulama performansını %5–%8 oranında iyileştirir. Sanal makineler TLB baskısı gideriminin sanallaştırılmış ortamlarda daha belirgin olması nedeniyle daha yüksek kazançlar elde edebilir.

Aşağıdaki sonuçlar, 32 sanal CPU (vCPU) içeren bir Arm platformundaki örnek üzerinde yapılan MySQL kıyaslamasından alınmıştır.

Saniye başına işlem sayısı (TPS): 2 MB büyük sayfalar ile 4 KB standart sayfalar

TPS data

Eşzamanlılık Performans kazancı
1 bağlantı Büyük sayfalarla ~%6,9 daha yüksek TPS
8–16 bağlantı (CPU çekişmesi ortadan kalktı, ~%25–%50 kullanım) >%6,5 daha yüksek TPS
32 bağlantı (CPU %100'de, yarışan iş yükleri) ~%11 daha yüksek TPS; büyük sayfalar ayrıca daha kararlı TPS gösterir

iTLB ölçümleri: büyük sayfalar ile 4 KB sayfalar

iTLB data

MySQL için Hugetext etkinleştirildikten sonra:

  • iTLB hataları yaklaşık on kat azaldı.

  • iTLB hata oranı ~%0,09'dan ~%0,08'e düştü.

  • Bin talimat başına iTLB hatası (MPKI) yaklaşık altı kat azaldı.

PostgreSQL de performansta %7'lik bir artış elde etmek için büyük sayfaları kullanabilir.

Temel kavramlar

Terim Açıklama
Büyük sayfa Standart 4 KB'tan daha büyük bir bellek sayfasıdır. Büyük sayfalar, gerekli Çeviri Yan Bakım Arabelleği (TLB) girdisi sayısını azaltır ve bellek erişim verimliliğini artırır.
Şeffaf Büyük Sayfalar (THP) Her sürecin sanal bellek alanını (VMA) tarayarak küçük sayfaları eşzamansız olarak 2 MB'lık büyük sayfalarda birleştiren bir kernel özelliğidir. THP anonim belleği hedef alır.
Hugetext Yalnızca kod segmentlerini büyük sayfalarda birleştiren, yürütülebilir ikili bölümleri ve DLL'leri hedef alan bir THP uzantısıdır.
iTLB hatası CPU'nun talimat TLB'sinde (iTLB) eşleşen bir girdi bulamaması durumunda oluşur. Yüksek hata oranı CPU aktarım hızını düşürür.
iTLB kullanımı Aktif olarak kullanılan iTLB girdilerinin oranıdır. Daha yüksek kullanım, daha az hata ve daha iyi CPU aktarım hızı anlamına gelir.
iTLB MPKI Bin talimat başına iTLB hatası. Daha düşük değer, daha iyi CPU verimliliğini gösterir.

Sonraki adımlar

Alibaba Cloud Linux, veri segmentleri için bellek erişim verimliliğini artırmak amacıyla standart THP'yi de destekler. THP, 4 KB sayfaları 2 MB veya daha büyük büyük sayfalarda birleştirerek tüm bellek türlerinde sayfa tablosu girdilerini (PTE) ve TLB baskısını azaltır. Ayrıntılar için bkz. Alibaba Cloud Linux'ta performansı ayarlamak için THP'yi nasıl kullanırım?