25 Şubat 2012 Cumartesi

Bir klasordeki optimum dosya sayisi (optimum file count in a directory)

Bir serveriniz varsa, içerisinde bir sürü accountunuz varsa, veya 1 serverdaki birden çok accountu yönetiyorsanız, bu anlatacağımen çok size. Herkes için de fayadalı bir bilgi tabiki. Bir yazılımda cache, temp,vb gibi klasörler olmaktadır. Yalnız bu klasörlerin içeriği dinamik olarak kısıtlanmadığından, veya kısıtlanmasının maliyetinden dolayı, klasördeki dosya sayısı çok dinamik olarak artacaktır. Normalde bir klasöre elle de çok fazla dosya atmış olabilirsiniz. Bu da benzer bir durumdur. örneğin bir ürün kataloğunuz var ve resimleri katalog klasörünün altına koydunuz. Bu noktada önerimiz bir klasör içine 3000-5000 den fazla dosya koymayın. Bu tabi direkt bu sayı olarak söylemem zor ama yine de 10000'den kesinlikle fazla olmasın. Alt klasörden bahsetmiyorum, dosyadan bahsediyorum. Burada alternatif olarak katalog klasörünün içine 01/, 02/ diye klasörler açıp 500 500 koymakta yarar var. Kendinizi işletim sisteminin yerine koyun. Elinizde bir adres var, içinde yığınla insan var. Siz içlerinden daha önce tanışmadığınız birini arıyorsunuz, kendisinden bir bilgi alacaksınız. Bulmanız çok zor. Özellikle bu içerideki kişilerin isimlerinin ilk birkaç karakteri aynı ise, o zaman iş daha da zorlaşır. Bu noktada belirtilen adreste odalar koysanız, insanları da alakalı oldukları yere göre odalara koysanız, (odalar burada klasör manasına geliyor, yapılan işlem de klasör oluşturarak manuel indeks oluşturmak) aradığınız şeyi hangi odada arayacağınızı bildiğiniz sürece işlemini hızlanacaktır. Ki zaten klasör ismini biz veriyorsak, olumlu etki edecektir. Benim gibi bir cache klasöründe 40000 tane dosya oluşmasını ve hatayı tespit etmek için serverda cirit atmanız gerekmeden bu bilgiyi öğrenebilirseniz ne güzel. 40000 dosya (zend_cache dosyası) içinden php, ilgili dosyayı load edesiye kadar mysqlden çekse çok daha hızlı olacaktı halbuki. (cache tamamen ters bir mantığa dönmüştü). Dinamik bir cache mantığı vardı. Olayı da şöyle tespit ettim ; mysqlde doğru düzgün query düşmüyordu. Serverda top komutu çalıştırdığımızda httpd isteklerinin normalden 2-3 kat cpu harcadığını gördük, connection sayısı da normalden azdı. Biz de ilk önce mail serveri veya yedekleme ile ilgili bir sorun oluştuğunu düşündük fakat, gelen isteklerin yoğunluk yaratan accountlarından birinin cache klasörüne girip baktığımda bu tabloyla karşılaştık. Bu dosyaları temizlediğimizde ise makinadaki stres tamamen gitti. (Bu konuda yazılım geliştirmesi ile görev oluşturduk, ve gelişimi için gerekli aşamalara başladık.) Bu bilgiyi tecrübe ederek öğrenmemeniz dileğiyle, iyi çalışmalar dilerim. Devamı için : Bir klasordeki optimum dosya sayisi (optimum file count in a directory)

Hiç yorum yok:

Yorum Gönder

Yorumunuzu esirgemeyiniz..