Benimki daha büyük olmasına rağmen çok fazla ve çok sayıda dosya depolayan bir uygulama yazıyorum ve bunlardan 10 milyonu birden fazla dizine böleceğim.
ext3, varsayılan olarak "bağlantılı liste" uygulaması nedeniyle yavaştır. Bu nedenle, bir dizinde çok fazla dosyanız varsa, bunun açılması veya başka bir tane yaratmanın daha yavaş ve yavaş olacağı anlamına gelir. Bir şeylerin büyük ölçüde iyileştirildiği bildirilen ext3 için kullanılabilen bir htree dizini adı verilen bir şey var. Ancak, yalnızca dosya sistemi oluşturma işleminde kullanılabilir. Buraya bakın: http://lonesysadmin.net/2007/08/17/use-dir_index-for-your-new-ext3-filesystems/
Dosya sistemini yine de yeniden kurmanız gerekeceğinden ve ext3 sınırlamaları nedeniyle, tavsiyem ext4 (veya XFS) kullanmaya bakmaktır. Bence ext4, daha küçük dosyalarda biraz daha hızlı ve daha hızlı bir şekilde yeniden oluşturuyor. Htree endeksi, bildiğim kadarıyla ext4'te varsayılandır. JFS veya Reiser ile ilgili hiçbir deneyimim yok ama insanların bunu daha önce tavsiye ettiğini duydum.
Gerçekte, muhtemelen birkaç dosya sistemini test ederdim. Neden ext4, xfs ve jfs denemeye çalışılsın ve hangisinin en iyi performansı verdiğini görmedin?
Bir geliştiricinin bana uygulama kodunda işleri hızlandırabileceğini söylediği bir şey "stat + open" araması yapmak yerine "open + fstat" yapmaktır. Birincisi, ikinciden önemli ölçüde daha yavaştır. Bunun üzerinde herhangi bir kontrol veya etkinizin olup olmadığından emin değilsiniz.
Burada benim postoverflow akışına bakın.
Linux'ta 10 milyon dosyaya kadar depolamak ve
bunlara erişmek çok yararlı cevaplar ve linkler var.