Samba Optimizasyonu
Ekim 2003
İlker Fıçıcılar
Samba'yı ilk kurduğunuzda makinanızın donanımına ve ağ
ortamınıza en uygun şekilde kurulmaz. Her makinada kararlı bir
biçimde çalışması için performanstan fedakarlık edilmiştir.
Sisteminize uygun birkaç ufak ayar ile hem dosya aktarım hızını hem
de aynı anda hizmet verilen bağlantılara yanıt verme hızını
arttırabiliriz.
Samba'da performans optimizasyonu ayarlarını samba'nın
standart ayar dosyası olan smb.conf dosyasına bir yazı editörüyle
(joe, pico, vi, xedit, kedit, ... gibi) ilgili alanlara komutları
elle ekleyerek yapıyoruz. Samba'yı kurarken başka bir yer
belirtmemişseniz bu smb.conf dosyası /etc/samba klasöründe
bulunur.
Önce samba genelinde etkin olacak ayarlara bakalım. Bunun için
smb.conf dosyasında [global] adlı kısmın altına geliyoruz.
Burada dört ayar satırı kullanıyoruz, bunlar:
oplocks
socket options
share modes
read prediction
oplocks
Bir istemci bir dosya üzerinde her tür dosya işlemi için
sunucudan yetki istediğinde oplocks kullanılır. O dosya üzerinde
tek işlem yapan istemci ya da işlem kendisi ise o dosya üzerinde
daha etkin önbellekleme yapabilir. Yeni samba sürümlerinde
öntanımlı olarak aktiftir, ama emin olmakta yarar var:
oplocks = yes
socket options
Burada ağınızın en büyük veri parçası boyutuna göre (MSS -
Maximum Segment Size) veri gönderme tamponunun boyutunu ayarlamak
hızlandırmaya önemli katkı sağlıyor. Burada önerilen büyüklük
8Kbyte civarı. Bunu ayarlamak için mss'nin tam katları olacak
şekilde yazıyoruz. Yani mss'niz 1460 byte ise (standart ethernet)
8192/1460 = 5.61 olduğundan 6*1460 = 8760 kullanırız. Eğer mss'niz
536 ise benzer şekilde hesap ile gönderme tamponu boyutunu 8576
olarak hesaplayabiliriz. Socket options ayarındaki önemli başka bir
parametre de TCP_NODELAY. Bu ise ACK yanıtlarının gecikmesi
durumunda samba'nın tıkanıklığın geçmesini beklediği 1 saniyelik
süreyi iptal ediyor. Bu durum genellikle windows işletim sistemi
kullanan makinaların TCP/IP katmanı ACK ile ilgilenirken bir yandan
veri çekmeye devam edemediği için oluyor. Gelen pakedi alan
olmadığı için ethernet kartı sürücüsü o pakedi bırakıyor ve bu
paket kayıpları da samba'yı yanıltarak hattın yoğun olduğu
izlenimini bırakıyor. Sonuçta bu tür windowslarla iletişim 20'de 1
oranına düşebiliyor. Veri alma tamponunu da ayarladığımız çözüm ise şu:
socket options = TCP_NODELAY SO_SNDBUF=8760 SO_RCVBUF=8760
share modes
DOS'un kullandığı 'share modes' desteğini kapatarak dosyaları
okumaya açma işlemini hızlandırabiliriz. Yalnız hala birtakım eski
windows programları bu ayarın 'on' olmasını gerektirebilir. Bir
sıkıntı yaşanmadığı sürece dosya açma kapama verimini,
performansını arttırmak için aşağıdaki satırı kullanmak gerek:
share modes = no
read prediction
Sadece okuma amaçlı açılmış dosyalarda etkili olsa da bu
özellik önemli verim kazancı sağlayabiliyor. Bu okuma tahmini
özelliği samba'nın sıradaki SMB komutunu beklemeden, önceki
komutlardan tahminle ek veri okumasını sağlıyor. Etkinleştirmek
için şunu da smb.conf'ta [global] kısmının altına ekliyoruz:
read prediction = yes
log level
Samba sunucusu her işlemden sonra kayıtları diske yazdığından,
tuttuğu kayıt sayısını düşürerek ek verim elde edebiliriz.
Özellikle kayıt düzeyi 2'den fazla ise önemli performans kayıpları
oluşabilir. Önerilen:
log level = 1
Bunlardan başka, her paylaşım için ayrı ayrı tanımlamamız
gereken ayarlar var. Bunları sadece okuma izni olan yazma izni
olmayan paylaşımlarda kullanmalıyız:
level2 oplocks
fake oplocks
level2 oplocks
Sıklıkla ve aynı anda okunan dosyalara erişimin önbellekten
karşılanmasını sağlayan bu özelliği, etkin olmasını istediğimiz
paylaşımın altına ekliyoruz:
level2 oplocks = true
fake oplocks
Bunu etkinleştirerek her oplocks isteğinin karşılanmasını
sağlamak mümkün. Bu, 'sadece-okunabilir' paylaşımlarda
etkinleştirilmelidir. İstemcinin dosyayı özgürce önbelleklemesini
sağlar:
fake oplocks = yes
Bu son ikisine şöyle bir paylaşım örnek verilebilir:
[ftp]
comment = ftp files
path = /var/ftp/pub
read only = yes
guest ok = yes
level2 oplocks = true
fake oplocks = yes
Bunlar dışında ağınızda QOS ayarları yapabilir, istemci windows
makinaların TCP/IP 'recieve window' boyutunu arttırabilir,
samba'nın bulunduğu dosya sistemini uygulamalarınıza daha uygun
biriyle değiştirebilirsiniz.
Ek bilgi için:
Google'da "samba performance" optimization arama
sonuçları.
Google'da "samba optimization" arama sonuçları.
Gelecek A.Ş.'deki Türkçe
Samba e-kitabı
Samba Belgeleri
Bonnie++ dosya sistemi hız
sınama yazılımı
Explanation of Opportunistic Locking on Windows NT
Samba Performance Tuning [PDF]
Samba Performance Tuning [HTML]
Ekim 2003
İlker Fıçıcılar
İlgili Benzer Yazılar:
Arama önerileri:
samba,
smb,
hız,
hızlı,
hızlandırma,
sambayı hızlandırmak,
hizli samba,
performans,
arttırmak,
arttirmak,
optimizasyon,
performance,
optimization,
linux,
unix,
freebsd,
Kaynak gösterecekler için referans:
"SAMBA'yı Hızlandırmak",
İlker Fıçıcılar,
http://www.KlavyeMonitor.com/samba_optimizasyonu.html
|