Bir Klasördeki Optimum Dosya Sayısı (optimum file count in a directory)

Bir sunucunuz varsa, içerisinde bir sürü hesabınız varsa veya bir sunucudaki birden çok hesabı yönetiyorsanız, bu anlatacağım en çok sizi ilgilendiriyor. Herkes için de faydalı bir bilgi tabi ki.

Bir yazılımda cache, temp vb. 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. Sunucuda top komutu çalıştırdığımızda httpd isteklerinin normalden 2-3 kat cpu harcadığını gördük, bağlantı sayısı da normalden azdı. Biz de ilk önce mail sunucusu veya yedekleme ile ilgili bir sorun oluştuğunu düşündük fakat, gelen isteklerin yoğunluk yaratan hesaplardan 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.

php 5.3 goto ozelligi

Herkesin c dilinde döngüleri öğrenmeden önce ilk öğrendiği anahtar kelimedir herhalde goto.

nedir goto?

bir etiket verirsiniz, bir yerde de goto etiket dersiniz. kod bloğu etiketin olduğu satıra sıçrayıp oradan akmaya devam eder.
Fakat hocalarımız dahi kızar goto kullananlara puan vermez sınavalrda. Çünkü yazılım ve kod mantığına aykırıdır goto. Peki php 5.3 te neden dahil edilmiş goto?
açıkçası sebebini bilmiyorum. 3 yıldır üzerine çalışılan bir şey olmasa gerek. Commit edilmesi php5.3 olması, bunu düşündürtüyor ama herhalde değildir.

goto’nun syntax’ını da öğrenip kullanmamanız için anlatmıyorum 🙂 zor değil zaten.
Önerilerim :
* goto kullanmayın
* goto kullanacak kod yazmayın.
* goto ihtiyacı doğduysa kodunuzu silin baştan yazın.
* illa da gerekiyor ama diyorsanız, bilgisayarınıza format atın, nikah şekeri işine girin.

Herkese iyi çalışmalar dilerim.

Google Alerts – Güncel Arama Sonuçları Bildirimi

Bilmiyorum daha önce haberiniz var mıydı ama benim çok yakın zamanda tesadüfen haberim oldu. Google Alerts sayesinde, belirttiğiniz bir sorguyla ilgili arama sonuçlarını belirttiğiniz periyotlarda email adresinize gelmesini sağlayabiliyorsunuz. Google’ın Alerts hakkındaki açıklamasını verelim hemen;

Google Alerts’ün kullanışlı yönlerinden bazıları şunlardır:

  • gelişen bir haberi izleme
  • bir rakip veya sektör hakkında güncel bilgilere sahip olma
  • bir ünlü veya etkinlikle ilgili en son bilgileri alma
  • sevdiğiniz takımlarla ilgili gelişmeleri takip etme

google alerts örnek kullanımı

Örnekte gördüğümüz üzere, dubluve.net’i arama sorgusu kısmına yazarak, dubluve.net ile ilgili google aramalarında yeni çıkan herşeyin, çıkar çıkmaz, istediğimiz email adresine gönderilmesini sağlayabiliyoruz. Daha sonra iş Google’a kalıyor zaten 🙂

Mysql Paralı Kullanım (Commercial Version) Protesto ediyorum

Bir arkadaşımın demesiyle ifade edeyim. “Oracle Mysql’i aldığında ne olacağı az çok belliydi…”

Evet, dökümantasyonlarındaki aşağıdaki yazı ile mysql’den ayrılmak için bir sebebim oldu artık.

“The thread pool plugin is a commercial feature. It is not included in MySQL community distributions.”

Gerçekten iyiydi mysql ile aramız. Bizi zorlasa da microsoft mantığından gitmiyordu. Biz kendisini pek bırakmayı düşünmedik, eski projelerimizde de bırakmayı pek düşünemeyiz şimdilik. Fakat, yeni bir şeyler yapacaksak mutlaka alternatifleri daha çok değerlendireceğim ve araştıracağım. Sen de mi Mysql diyor ve acımı sizinle paylaşıyorum.

 

Thread pool neymiş ne işe yararmış anlatmıyorum, protesto ediyorum!

PHP için PEAR spreadsheet excel writer kurulumu

SPREADSHEET

1.SpreadSheet Nedir?
• Spreadsheet, excel, gibi elektronik tablo programlama türüdür.
• Program yazmaksızın hesap yapmak için kullanılan programdır.
• En geniş uygulama alanları bankacılık,finans,maliyet hesabı vb. alanlarıdır.
• MS-DOS ortamında tipik örnekleri,LOTUS 123,Supercalc,Excel gibi programlardır.
2.SpreadSheet Ne işe Yarar?
• Finansal ve istatiksel verileri SpreadSheet kullanarak gösterebilirsiniz.
• SpreadSheet Excel Writer ve SpreadSheet Excel Reader içindeki sayfalarla ;
-Excel dosyalarını saklayabilir,
-Excel dosyalarını okuyup yazabilir,
-Excel dizininin olup olmadığını kontrol edebilir,
3.PHP için SpreadSheet Excel Writer Ve SpreadSheet Excel Reader Kurulumu
• PEAR Kurulumu:
PEAR kurulumu için Wamp’ın kurulduğu klasörün altındaki güncel php klasörünün
içinde(C:\wamp\bin\php\php 5.2.11) yer alan go-pear.bat dosyasını çalıştırır. Bu bat dosyasının çalışması esnasında öncelikle PEAR2ın tüm sistem için mi yoksa sadece local hesap için mi kullanacağı sorulur. Hangi seçenekleri seçeceğinize karar verip, yüklemeyi tamamlayınız. Ardından gelen soruları geçtikten sonra PEAR kurulumu tamamlanmış olur.
Bu arada zaman zaman PEAR’in veri transfer protokolleri değişebilmektedir. Bununla ilgili bir uyarı alındığında “pear channel-update pear.php.net” komutu verilebilir. PEAR kurulumu sonrasında oluşturulan “pear.bat” dosyasının bulunduğu klasör (C:\wamp\bin\php\php5.2.11) system PATH ine dahil edilmesi iyi olabilir. (command line dan doğrudan pear komutunu kullanmanızı sağlar ben yapmadım gerek de yok diye düşpünüyorum) Ayrıca PEAR kütüphanelerinin indirildiği klasöründeki php.ini’deki “include_path ” değişkenine ekleme yapılması gerekmektedir.
• SpreadSheet Excel Reader ve Writer Dosyalarının İndirilmesi:
Öncelikle http://pear.php.net/package/Spreadsheet_Excel_Writer/download/, http://sourceforge.net/projects/phpexcelreader/files/Spreadsheet_Excel_Reader/ ve http://pear.php.net/package/OLE/download/ adreslerinden SpreadSheet Excel Reader,SpreadSheet Excel Writer ve OLE kütüphanesini indirmeniz gereklidir.

• İndirdiğiniz klasörleri OLE ve SpreadSheet klasörleri olarak ayrı ayrı klasörleyip PEAR.php ile aynı yere koyunuz. Örneğin sayfanıza
include_once(“SpreadSheetWriter/Excel/Writer.php”); ekleyerek Writer.php ‘yi sayfanıza eklemiş olursunuz.

Bununla ilgili bir örnek exceld e vermeye çalışacağım.