ZFS ARC Ayarlaması: Üst Sınırlar, Limitler ve Ölçülmesi Gerekenler

11 dakikalık okuma - 24 Haziran 2026

hero section cover
İçindekiler
  • Herhangi bir ayar yapmadan önce ARC'yi ölçün
  • Önemli olan dört ARC ayarı
  • İş yüküne göre ARC ayarlaması
  • Sorunları teşhis etme ve ne zaman durması gerektiğini bilme
Paylaş

İş yüküne göre ZFS ARC ayarlaması. Hangi ayarların önemli olduğu, Linux ve FreeBSD'de zfs_arc_max'ın nasıl ayarlanacağı ve işlemin ne zaman tamamlandığının nasıl anlaşılacağı.

ZFS, varsayılan olarak okuma önbelleği için sistem RAM'inizin yaklaşık yarısını sessizce kullanır; yanlış türde bir sunucuda bu durum, takas etkinliği, OOM sonlandırmaları veya bir veritabanının bellek için dosya sistemiyle rekabet etmesi anlamına gelir. ZFS ARC ayarlaması, ARC'nin bu RAM'in ne kadarını gerçekten tutmasına izin verileceğine ve sınırı belirlemek için nelerden vazgeçeceğinize karar vermekle ilgilidir. Bu yazıda, ARC’nin belleği nasıl kullandığı, herhangi bir ayara dokunmadan önce neleri ölçmeniz gerektiği, değiştirmeye değer birkaç ayar ve dosya sunucuları, hipervizörler, veritabanları ve yedekleme hedefleri için mantıklı başlangıç noktaları ele alınmaktadır. ZFS’nin anlık görüntü (snapshot) özelliği ile ilgili olarak, ZFS anlık görüntüleri kılavuzumuza bakınız.

Herhangi bir ayar yapmadan önce ARC'yi ölçün

Normal bir yoğunluk dönemine ait temel verileri elde edene kadar tek bir ayar bile değiştirmeyin. Yoğun olmayan dönemlere ait anlık veriler sizi yanlış yöne yönlendirebilir. Geceleri yapılan yedeklemeler, haftalık raporlar ve toplu işler genellikle ARC davranışının ilginçleştiği alanlardır; bu nedenle verileri birkaç gün boyunca toplayın.

İhtiyacınız olanların çoğunu üç araç karşılar:

  • arcstat 1 Hit ve miss sayaçları, talep ile önbellekleme etkinliği karşılaştırması ve mevcut ARC boyutunu canlı olarak kayan bir görünümde gösterir. Yük testleri ve yedekleme pencereleri sırasında kullanın.
  • arc_summary tek bir anlık görüntü yazdırır: ARC boyutu ve hedefi, MFU/MRU dağılımı, meta veri oranları ve etkin ayarlanabilir parametreler. Yalnızca arc_summary -s arc komutunu yalnızca ARC bölümü için çalıştırın.
  • Ham sayaçlar /proc/spl/kstat/zfs/arcstats bulunur ve kstat.zfs.misc ve vfs.zfs sysctl ağaçlarında bulunur. Biçimlendirilmiş çıktıyı ayrıştırmak yerine, bunları izleme sisteminden alın.

Herhangi bir değişiklikten önce kaydedilmesi gereken sayaçlar:

MetrikNerede bulunurNeden önemlidir
ARC boyutu, hedef, maksimum (size, c, c_max)arcstat, kstatARC'nin tavan sınırına sabitlenmiş mi yoksa büyüme alanı kalmış mı olduğunu gösterir
Talep verileri ve meta veri isabet oranlarıarcstat, arc_summaryTalep ıskalamaları, doğrudan uygulama gecikmesine yol açar
Kullanılabilir bellek ve takas etkinliği (si/so)free -h, vmstat 1ARC büyükken devam eden takas girişi/çıkışı, bellek baskısının en açık işaretidir
Disk hizmet süresi (await) ve kullanım oranıiostat -xARC kaçırmalarını gerçek depolama darboğazlarıyla ilişkilendirir
memory_throttle_count/proc/spl/kstat/zfs/arcstatsArtan sayı, ZFS'nin bellek baskısı nedeniyle kısıtlandığını doğrular

Bu konuda insanların sıklıkla yanıldığı iki nokta vardır. Boş belleği değil, kullanılabilir belleği izleyin; Linux, düşük serbest RAM'i normal bir durum olarak gösterir ve bu tek başına bir sorun değildir. Önemli olan işaret, sıfıra yakın kullanılabilir bellek ile sürekli takas faaliyetinin birleşmesidir (bunun nedeni Linux bellek yönetimi kılavuzunda açıklanmaktadır). Ayrıca isabet oranını bir hedef olarak değil, bir eğilim olarak değerlendirin. Takas yapan bir sistemde %99 isabet oranı, bir başarı değil, ayarlama hatasıdır.


 

Önemli olan dört ARC ayarı

Üretim ortamındaki ayarlamaların çoğu dört ayara indirgenebilir. Ayarı, temel ölçümde gerçekte ölçtüğünüz baskıya göre ayarlayın. Takas etkinliği şunu gösterir zfs_arc_max. Sıcak önbelleği sürekli silen müşteri kaybını geri kazanma işlemi zfs_arc_min. Yavaş dizin taramaları ise meta veri sınırına işaret eder.

AyarlamasıNe işe yararNe zaman değiştirilmeliYanlış ayarlandığında risk
zfs_arc_maxARC RAM kullanımında katı üst sınırAyrılmış RAM gerektiren veritabanlarını veya sanal makineleri barındırmaÇok düşük: daha fazla disk I/O ve gecikme. Çok yüksek: takas baskısı veya OOM.
zfs_arc_minARC'nin aşırı derecede küçülmesini engelleyen alt sınırÖnbelleği sürekli temizleyen kısa süreli bellek ani artışları olan iş yükleriÇok yüksek: gerçek bellek baskısı sırasında uygulamaların kaynak yetersizliği yaşamasına neden olur
zfs_arc_meta_limit_percentMeta veriler için kullanılabilir ARC'nin payı (eski zfs_arc_meta_limit)Milyonlarca küçük dosya, derin dizin ağaçları, yavaş ls/findÇok düşük: dizin aramaları çok yavaşlar. Çok yüksek: veri önbelleklemeyi kısıtlar.
zfs_arc_free_targetZFS'nin kullanılabilir tutmaya çalıştığı boş sistem belleği miktarıAni büyük bellek tahsis patlamaları yaşayan sunucular (VM başlatma, büyük sorgu planları)Çok yüksek: RAM mevcut olsa bile ARC küçük kalır

Gördüğünüz baskıyı gideren en küçük değişiklikle başlayın. zfs_arc_max, doğru üst sınır iş yüküne bağlıdır (bir sonraki bölümde ele alınacaktır). zfs_arc_min, eğer bir alt sınır gerekiyorsa zfs_arc_max makul bir başlangıç noktasıdır (eğer bir alt sınıra ihtiyacınız varsa). Meta veriler için, OpenZFS'nin son varsayılan ayarları zaten meta verilere ARC'nin %75'ini zfs_arc_meta_limit_percent, bu da çoğu iş yükü için yeterlidir; yalnızca meta veri eksiklikleri açıkça görüldüğünde bu ayara dokunun arcstat.

Linux ve FreeBSD'de değişiklikleri uygulama

Linux'ta, sysfs parametre dosyasına yazarak bir değişikliği çalışma zamanında test edin. Yeniden başlatmaya gerek yoktur:

echo 17179869184 > /sys/module/zfs/parameters/zfs_arc_max

Bu, zfs_arc_max değeri hemen 16 GiB olarak ayarlanır. Değişikliğin yeniden başlatma sonrasında da geçerli kalması için bunu /etc/modprobe.d/zfs.conf:

options zfs zfs_arc_max=17179869184

FreeBSD'de, çalışma zamanı değişiklikleri sysctl:

sysctl vfs.zfs.arc_max=17179869184

Aynı değeri /boot/loader.conf:

vfs.zfs.arc_max="17179869184"

Her seferinde tek bir ayarı, toplam RAM'in yaklaşık %10'u kadar küçük adımlarla değiştirin. Sorun penceresini izleyin. Değişikliği yalnızca takas alanı sıfırda kalırsa ve gecikme süresi sabitse koruyun. Yalnızca çalışma zamanı testi geçtikten sonra kalıcı hale getirin.

İş yüküne göre ARC ayarlaması

Toplam RAM, başlangıç noktası olarak yanlış bir seçimdir. ARC boyutlandırması, cihazdaki iş yükü dağılımına göre yapılmalıdır.

İş YüküBaşlangıç zfs_arc_maxARC önceliğiNotlarAnahtar metrik
Özel dosya sunucusu / NASRAM'in %75 ila %80'iVeri ve meta veriÖn yükleme açık. Önemli olan agresif önbellek kullanımıdır.Genel isabet oranı
Sanallaştırma ana bilgisayarıRAM'in %30 ila %40'ıDengeliKonuk RAM'i ve ana bilgisayar görevleri için yedek bırakın. Sıfırdan farklı herhangi bir si/so değer, sınırın daha da artırılması gerektiği anlamına gelir.Ana bilgisayar takas alanı (si/so)
Veritabanı sunucusuRAM'in %25 ila %50'siMeta veriye dayalıÖnce veritabanı motoru için bellek ayırın. primarycache=metadata Motor kendi tampon önbelleğini yönetiyorsa ayarlayın.Talep kaçırmaları
Yedekleme / arşivleme hedefiİhtiyatlı sınırYalnızca meta verilerAyar primarycache=metadata böylece tek geçişli taramalar yararlı blokları silmez.Ön yükleme kaçırmaları, meta veri isabet oranı
Analitik / tekrarlanan okumaDiğer önbellekler ayrıldıktan sonra daha yüksek sınırMFU ağırlıklıNVMe üzerindeki L2ARC, sorgu çalıştırmaları boyunca sık kullanılan çalışma kümesini koruyabilir.Talep kaçırmaları

Bir VM ana bilgisayarı, konuklarıyla belleği paylaşmak zorundadır; bu nedenle %30 ila %40'lık bir sınır güvenli bir varsayılan değerdir ve %50 çoğu yapılandırmada zaten çok yüksektir. PostgreSQL ve MySQL gibi veritabanları kendi tampon önbelleklerini yönetir; bu nedenle önce motor için bellek ayırır ve kalan kısmı ARC'ye bırakırsınız. Yedekleme hedefleri, primarycache=metadata çünkü okunan verilere nadiren tekrar ihtiyaç duyulur ve gece yedeklemesinin tüm havuzu tarayarak ilerlerken önbelleğin geri kalanını boşaltmasını istemezsiniz. Her iş yükünde, ARC zfs_arc_max değeri, sınırın çok yüksek olduğu anlamına gelir; bu kural değişmez.

Sorunları teşhis etme ve ne zaman durması gerektiğini bilme

Boyutu yetersiz bir ARC, sistemde hala boş RAM varken yüksek okuma IOPS'si, düşük talep isabet oranları ve yavaş dizin taraması şeklinde kendini gösterir. Boyutu fazla olan bir ARC ise daha az belirgindir. İsabet oranı iyi görünür, ancak sunucu takas yapmaya başlar, yük ortalamaları yükselir, işlemler D durumunda kalır; en kötü durumda ise OOM killer kurban seçmeye başlar. Önbellek sağlıklı görünür, ancak sunucu çok kötü çalışır.

Meta veri baskısı, demand_metadata_bytes çok daha yüksek seviyede olduğunda ortaya çıkar demand_data_bytes olduğunda ortaya çıkar arc_summarydeğerinden çok daha yüksek olduğunda ortaya çıkar. Bu, meta verilerin veri ile alan için rekabet ettiği durumdur ve meta veri yüzde sınırının yükseltilmesi gerekir.

Gördüklerinizi, kontrol etmeniz gereken ilk ayarla karşılaştırın:

BelirtiMuhtemel nedenKontrol edilecek ilk ayarSonraki adım
Yüksek await yüksek talep hatalarıylaÇalışma kümesi ARC'yi aşıyorzfs_arc_maxRAM ekleyin veya L2ARC ekleyin
ARC büyükken takas etkinliğiARC, işletim sistemini veya uygulamaları yetersiz bırakıyorzfs_arc_maxSınırı düşürün
Bellek ani artışlarından sonra performans düşüyorGeri kazanım sırasında agresif silmezfs_arc_minTabanı %25 ile %50 arasında ayarlayın arc_max
Yavaş ls, find, küçük dosya işlemleriMeta veri önbelleği yetersizliğizfs_arc_meta_limit_percentMeta veri yüzdesini artırın
Artan memory_throttle_countSistem genelinde bellek baskısızfs_arc_maxSınırı düşürün; L2ARC dizininde şişkinlik olup olmadığını kontrol edin

L2ARC ücretsiz değildir. L2ARC girdilerinin dizini birincil ARC'de bulunur ve bu ek yük toplam ARC kapasitesinin yaklaşık üçte birini aşarsa, ikincil önbellek yarardan çok zarar verir. L2ARC'yi yalnızca çalışma kümesi RAM'den daha büyük ancak yine de hızlı bir NVMe aygıtına sığabiliyorsa ve birincil ARC isabet oranı zaten sağlıklıysa kullanın.

Ayarlamayı durdurmanın doğru zamanı, gecikme sabit kaldığında, orijinal soruna neden olan aynı yoğunluk aralığında takas sıfırda kaldığında ve daha fazla değişiklik artık hiçbir şeyi iyileştirmediğinde gelir. Sunucu takas yapıyorsa, yüksek isabet oranı hiçbir anlam ifade etmez. Bu noktayı geçtikten sonra, ayarları değiştirmeyi bırakın ve yalnızca aynı iş yükü altında aynı sorun tekrar ortaya çıkarsa ayarları yeniden gözden geçirin.

VM'leriniz veya veritabanlarınızla bellek için rekabet etmeden ZFS'yi düzgün bir şekilde çalıştıracak RAM kapasitesine sahip bir sunucuya ihtiyacınız varsa (öncelikle "Gerçekten ne kadar RAM'e ihtiyacınız var?" başlıklı yazıyı okumanızda fayda var), FDC özel sunucularına bir göz atın.

Blog

Bu hafta öne çıkanlar

Daha fazla makale
Dijital göz yorgunluğu: Ekranların yoğun olarak kullanıldığı bir dünyada görme yeteneğinizi nasıl koruyabilirsiniz?

Dijital göz yorgunluğu: Ekranların yoğun olarak kullanıldığı bir dünyada görme yeteneğinizi nasıl koruyabilirsiniz?

Bütün gün ekrana mı bakıyorsunuz? Kanıtlanmış teknikler ve araçlarla dijital göz yorgunluğunu nasıl azaltabileceğinizi öğrenin. Bu kılavuz, uzaktan çalışanlar, yazılım geliştiriciler ve teknoloji sektöründe çalışan herkes için vazgeçilmezdir.

4 dakikalık okuma - 21 Mayıs 2025

Güçlü ve sınırsız bir VPS'ye sahip olmanın önemi

8 dakikalık okuma - 9 Mayıs 2025

Daha fazla makale
background image

Sorularınız mı var veya özel bir çözüme mi ihtiyacınız var?

icon

Esnek seçenekler

icon

Küresel erişim

icon

Anında dağıtım

icon

Esnek seçenekler

icon

Küresel erişim

icon

Anında dağıtım