Bu yazımızda birçoğunuzun sıklıkla karşılaştığı belki bildiği, belki de fikir yürüttüğü bir detay üzerine konuşuyor olacağız. Dosyanın boyutu ile disk üzerindeki boyutu arasındaki bağlantıyı tam olarak bilmiyorsanız, ayırma birimi boyutunun ne olduğunu ve nasıl değiştirilebileceğini, biçimlendirilmiş bir disk üzerindeki ayırma birimi boyutunun nasıl gözlemleneceğini bilmiyorsanız; ötesinde ayırma birimi boyutu üzerinde yapılacak değişikliklerin sistem performansınıza ne gibi farklılıklar getireceğini merak ediyorsanız doğru yazıda olduğunuzu belirterek yazımıza giriş yapalım.
Öncelikle tüm bilgisayar kullanıcılarının vakıf olduğu bir bilgiyle başlayalım; dosya boyutu. Bildiğiniz gibi dosya boyutu dosyanızın içerisinde kümelenmiş olan verinin gerçek boyutunu teşkil etmektedir. Bu noktada bir ekran görüntüsüyle biraz akılları karıştıralım:
Görüldüğü üzere C:\ dizinimizde bulunan Program Files klasörü üzerinden aldığımız Genel Özellikler içerisinde Boyut ve Diskte Boyutu adında iki farklı hacim bilgisi bulunuyor ve iki bildirim arasında 300 MB'ın üzerinde bir fark bulunuyor. Bu noktada işte ayırma birimi boyutu devreye giriyor. Bilindiği üzere sabit diskler üzerinde yazılabilir en küçük alan 1 sektör olarak adlandırılır ve bir sektörün sığası en küçük sayısal veri boyutu olan 1 bit veya ağabeyi 1 bayt değil; tamı tamına 512 bayttır. Başka bir tabirle sabit disk plakası üzerindeki alanlar 512 baytlık segmentlere ayrılmıştır ve yazılacak verinin büyüklüğüne göre bir veya daha fazla sektör tahsis edilerek veri yazma işlemi gerçekleştirilir. Basit bir örnekle bu bilgiyi pekiştirmeye çalışalım:
Görüldüğü üzere not defterine beş karakter uzunluklu örnek bir metin oluşturup kayıt altına aldık.
Özellikler sekmesine göz attığımızda boyut bilgisini 5 bayt olarak görüyoruz. Peki neden 5 bayt; sorunun cevabu çok basit. ASCII karakterler kullandık ve ASCII karakter kodları 0 ile 255 arasındadır; yani 8 bit ile kodlanırlar. 8 bitin de 1 bayt'a karşılık düştüğünü biliyoruz. Metnimiz de 5 karakterden oluştuğuna göre 5 bayt metin dosyamızın tarafımızca beklenen boyutu. Öte yandan disk üzerindeki boyuta göz attığımızda 4 KB (4096 byte) gibi bir değer göze çarpıyor. Bu noktada 1 sektör = 512 byte bilgisini kullanmaya yeltendiğinizi; 5 ile 512 baytı çarpmaya gayret ettiğinizi görür gibiyim :). Ortada bir sorun var gibi görünüyor değil mi? Aslında hiç bir sorun yok. 512 bayt sektör boyutu ve yazılabilir en küçük alanın donanımsal limiti, yani daha düşük bir birim seçmemiz mümkün değil. Öte yandan daha büyük ayırma birimi boyutu seçmek mümkün. En temel şekilde, disk üzerindeki x. sektöre veri yazıldığı zaman x+1, x+2 ve x+3. sektörlerin baypas edildiğini düşünün ki dosya sistemi üzerinde tutulan bilgi dahilinde bu işlemi gerçekleştirmek oldukça kolay, yalnızca yazılım desteği ile. Özetle bu bilginin bize anlattığı şey C diskimiz üzerindeki ayırma birimi boyutunun 4 KB olarak atandığı, metin dosyamızın 4 sektörlük bir alana yazıldığı yönünde.
Peki ayırma birimi boyutunu daha başka nasıl denetleyebiliriz? Oldukça basit; pek çoğunuzun aşina olduğu bir komutla;
chkdsk <disk harf adı>
Bu noktada bir tanımlama daha yapalım; küme boyutu ya da İngilizce tabirle cluster size. Cluster size işletim sisteminin yazabileceği disk üzerindeki en küçük birim boyutudur. Yani cluster size 512 bayt minimum olmak kaydıyla dosya sisteminin ve işletim sisteminin sunduğu imkanlar doğrultusunda artabilir. NTFS için bu üst sınır 64 KB iken FAT32 için 16 KB'dir. Varsayılan ayırma boyutu ise disk boyutuna bağlı olarak dosya sistemi tarafından belirlenmiş otomatik boyut birimidir. NTFS için bu değerler;
Disk boyutu
(mantıksal birim) Cluster size Sektör sayısı
----------------------------------------------------------
512 MB ve altı 512 byte 1
513 MB - 1,024 MB (1 GB) 1,024 byte (1 KB) 2
1,025 MB - 2,048 MB (2 GB) 2,048 byte (2 KB) 4
2,049 MB ve üstü 4,096 byte (4 KB) 8
şeklinde belirlenmiştir, Microsoft tarafından.
Disk üzerine yazılacak olan veri, kümenin başından sonuna değin yazılmak zorunda değildir. Örneğin 2 cluster üzerinde 8 sektörlük bir alan veri için tahsis edilmişse, 5-6-7 sektörlük hacimdeki verimiz ilk kümenin ortasından başlayarak diğer kümeye değin yazılmış olabilir. Fakat veriler küme üzerindeki ilk sektörden itibaren yazılırlar ki veriye erişim süresi daha düşük düzeyde tutulabilsin -çünkü kümeye erişildiğinde bakılan ilk nokta başlangıç sektörüdür.
Ayırma birimi boyutu nasıl değiştirilir?
Bu sorunun karakteristik yanıtı tahmin ettiğiniz üzere format. Biçimlendirme, işletim sistemi kurulumu işleriyle haşır neşir olanlar farketmişlerdir; kur ekranında bu yönde bir düzenleme yapmak mümkün değil. Linux tarafında hangi dağıtımı kullandığınıza göre değişebiliyor gerçi. Ayırma birimi boyutunu işletim sistemi altında diskinizi biçimlendirirken belirleyebilirsiniz:
Peki daha başka nasıl yapılabilir? Pek tabi ki üçüncü parti disk araçlarıyla; Acronis Disk Director, Partition Wizard türevi çeşitli yazılımları kullanarak diskinizi biçimlendirmeden ayırma birimi boyutunu değiştirebilirsiniz. Yalnız dikkat etmeniz gereken nokta bu işlemin diskinizin boyutuna bağlı olarak göreceli uzun süreceğini göz önünde bulundurunuz -dosya sistemi tablosunun güncellenmesi ve kimi dosyaların (küçük boyutlu) disk üzerinde yeniden konumlandırılması işlemi.
Bu sorunun yanıtı sizin diski kullanım şeklinizde yatıyor aslında. Küçük ayırma boyutları disk üzerinde yazılabilir kılınan alanı maksimize ederken performansı düşürüyor. Büyük ayırma boyutlarında ise disk performansı yükselirken yazılabilir alanda göreceli düşüşlerle karşılaşılıyor. Bu iki tümceyi biraz daha açacak olursak; birim küme boyutu arttıkça dosya sistemi (partition table) üzerinde tanımlı bulunan cluster sayısı azalacaktır -yani herbiri daha büyük olan, daha az sayıda kümeyle disk alanını kaplayabileceksiniz. Bu durumda da disk üzerindeki herhangi bir verinin tablo üzerinde indekslenmiş olma ihtimali, indekslenmemiş olsa bile bulunma süreci ve bu veriye disk üzerinde erişim kolaylaşacak, erişim süresi düşecektir. Dolaylı olarak okuma ve yazma hızlarında artış gözlemlenecektir. Öte yandan disk üzerine yazılan çokça küçük boyutlu dosya olması durumunda kullanılabilir alanda önemli verimlilik kayıpları olacaktır çünkü verinin bir parçası bir kümenin ilk başında sadece küçük bir alana sığıyor olsa bile o kümenin tamamı o parçaya ayrılacak, böylece arta kalan alan boşa gidecektir. Daha da önemlisi disk üzerine yazmış olan veri boyutları zamanla artıyorsa azalan ayırma birimi boyutu ile disk üzerine verinin parçalı yazılma ihtimali artacaktır -boyutu küme boyutunu aşan veri için yeni küme ataması yapılacaktır ve kümenin ardışığı olan kümenin (cluster) dolu olması durumunda veri disk üzerindeki en yakın kümeye yazılacaktır, ardışık şekilde değil parçalı olarak yazılmış olacaktır. Bu durumda da veriye erişim ve verinin disk üzerinden okunması güçleşecektir.
Bu son bilgiden hareketle disk üzerinde veri kümelerinin dağılmasına (fragmentation) bağlı disk performansının düşmesine önlem olarak düzenli şekilde defrag, yani Disk Birleştirme aracını kullanınız.
Örneğin çokça metin dosyasının ya da web kaynak kodu-konfigürasyon dosyalarının bulunduğu bir disk bölümü üzerinde 64KB gibi bir bölümleme boyutuyla yaşayacağınız sığa kayıpları %20-25'leri bulabilecektir. Ki yalnızca uniform dağılımlı olarak 0-64KB boyutu aralığındaki dosyaların yazıldığı bir disk üzerinde kayıp %50 olacaktır -dosya gerçek boyutunun beklenen değeri, ortalama değeri, 32 KB olacaktır bu durumda. Öte yandan günümüzde disk kapasiteleri inanılmaz boyutlara erişmiş durumda ve ayırma birimi boyutu çoğu durumda bu verilerin boyutları yanında devede kulak kalıyor; yani olası kayıplar minimal düzeyde kalıyor.
Tüm bunlar tek disk ve normal masaüstü kullanıcısı için geçerli. RAID yapıyorsanız daha gelişmiş tercihler yapmak isteyebilirsiniz. Aynı şekilde, tek bir işi yapacak sunucular gibi durumlarda sistem yöneticileri sadece ilgili uygulamanın performansını artırmak üzere küme boyutlarıyla ilgili başka önlemler de alabilirler.
Son olarak ayırma birimi boyutunu atamaya yönelik ufak birkaç tavsiyede bulunarak yazıyı kapatalım:
Güzel bir konu Sinan, eline sağlık. Anlatım biraz daha teknik ağırlıklı ve karışık gibi geldi bana. Yazım-Anlatım daha sade olsaymış daha pek bi güzel olurmuş..
Yazarken bu yönde bir şüpheye düşmedim değil aslında ama nette temel düzeyde arama yapılarak bulunabilecek içeriğin bir adım ötesinde olması idi düşüncem, içerik olarak.
Yine de gün içerisinde tekrar gözden geçirip sade, özetleyici eklemeler yapmaya çalışayım. Uyarı için teşekkürler..
özet olarak, eğer siz de diskinizi 2 bölüme ayırıyor ve windows'u C'ye kuruyor, diğer dosyalarınızı (çokça film, müzik, fotoğraf) D'ye atıyorsanız, C'deki 4 kb olan ayırma birimi boyutuna dokunmayın, D'yi 64 yapın, performans olarak maksimumu elde edin.
not: yazıyı okuyanlar da farketmiştir, kb'lar seviyesinde dosyalarınız varsa ve sürekli bunlarla uğraşıyorsanız, bu dosyaları masaüstünde ya da C'nin içinde bir dosyada tutabilirsiniz (tabi bu da virüs girdiğinde C'nin uçması sıkıntısını, bununla birlikte verilerinizin de toz olmasını doğurabilir, bunun için ekstra bölüm açıp bunu da 4'e atayabilirsiniz.)
güzel bir yazı olmuş.eline sağlık:)
Teveccühünüz efendim :)
çok yararlı bir paylaşım olmuş. hazırlayanların eline saglık :)