من خودم یه پیسی درب و داغون دارم که قدرت محاسباتیش با اورکلاک الان شده ۹۰۰ مگاهرتز و بچهها بهش میگن پنتیوم تری!! الانم روش پارسیکس نصبه!. یکی از برنامههای معروف پارسیکس هم دیکشنری اون هستش(xFarDic) که توسط آقای آلن باغومیان نوشته نوشته شده و مناسب برای محیط گنوم لینوکس هست. من از اونجایی که همیشه به یک رسم تبدیل شده و داخل همه کتابهای مربوط به لینوکس هم نوشته شده سیستم فایل رو ext3 انتخاب میکنم. نتیجه این میشد که دیکشنری آقای آلن باغومیان نتیجه بسیار بدی رو به همراه داشت! یعنی وقتی یک لغت رو وارد میکردم و میخواستم دنبالش بگردم یه نیمساعتی هارد ما درگیر میشد تا لغت مورد نظر رو بتونه پیدا کنه ! چند وقت بعد از روی کنجکاوی اومدیم و فایل سیستم لینوکس رو به JFS تغییر دادیم و بعد اولین تغییر محسوس رو در دیکشنری آقای آلن شاهد بودیم! نتیجه خیره کننده بود!! به محض وارد کردن هر لغتی معنی اون رو جلوی چشمانم میدیدم! اصلا باورم نمیشد ! تا اینکه چند روز پیش به آزمایشی علمی در یکی از سایتهای معتبر برخورد کردم که که این برتری سیستم فایل JFS رو نشون میداد. بد ندیدم ترجمهی این آزمایش رو اینجا بگذارم تا شاید بتونم نگرش افراد رو در مورد سیستم فایلهای لینوکس تغییر بدم. از قبل هم بگم که این مقاله بر روی سختافزارهای قدیمی (پنیتوم ۳ و ۲ و همچنین هاردهای آیدیای تست شده).
سیستم دقیق این تست به قرار زیر هستش.
Hardware
- Processor : Intel Celeron 533
- RAM : 512MB RAM PC100
- Motherboard : ASUS P2B
- Hard drive : WD Caviar SE 160GB (EIDE 100, 7200 RPM, 8MB Cache)
- Controller : ATA/133 PCI (Silicon Image)
OS
- Debian Etch (kernel 2.6.15), distribution upgraded on April 18, 2006
- All optional daemons killed (cron,ssh,saMBa,etc.)
Filesystems
- Ext3 (e2fsprogs 1.38)
- ReiserFS (reiserfsprogs 1.3.6.19)
- JFS (jfsutils 1.1.8)
- XFS (xfsprogs 2.7.14)
توضیح کارهای انجام شده
کارهای انجام شده بر روی یک فایل بزرگ به حجم ۷۰۰ مگابایت و از نوع ایزو ایمیج (ISO Image)
- کپی این فایل ایزو از یک هارد ثانی به هارد مورد تست
- کپی مجدد فایل ایزو به یک مکانی دیگر در هارد مورد تست
- پاک سازی هر دو فایل ایزو از روی هارد مورد تست
کارهای انجام شده بر روی درختی از فایل(شامل ۷۵۰۰ فایل و ۹۰۰ دایرکتوری به حجم ۱.۹ گیگابایت)
- کپی درخت فایل از یک هارد ثانی به هارد مورد تست
- کپی مجدد درخت فایل در مکانی دیگر بر روی هارد مورد تست
- پاکسازی هر دو درخت فایل بر از روی هارد مورد تست
کارهای انجام شده داخل درخت قایل
- گرفتن لیست بازگشتی از تمام محتوای درخت فایل و دخیرهی آن بر روی هارد آزمایش شده
- جستجوی فایلهای مورد نظر از داخل درخت فایل با کمک کاراکترهای جستجو(؟ و *)
کارهای انجام شده بر روی فایل سیستم
- ایجاد فایل سیستم به کمک دستور mkfs (همهی فایل سیستمها با مقادیر پیشفرض ایجاد شدهاند)
- مانت کردن فایل سیستم
- آنمانت کردن فایل سیستم
نتایج
ظرفیت پارتیشن
ظرفیت پارتیشن ابتدایی (پارتیشن بلافاصله بعد از ایجاد فایل سیستم) و ظرفیت پارتیشن مانده (پارتیشن بعد از پاک سازی همه فایلها) توسط نسبت عددی محاسبه میشود که معرف بلاکهای در دسترس از تمام بلاکهای موجود بر روی پارتیشن میباشد که Ext3 بدترین نتیجه رو در ظرفیت ابتدایی کسب میکنه (92.77%) در حالی که باقی فایل سیستمها تقریبا از تمامی ظرفیت پارتیشن استفاده میکنن (ReiserFS = 99.83%, JFS = 99.82%, XFS = 99.95%) . نکته جالب در ظرفیت مانده هست که در فایل سیستم Ext3 و ReiserFS ظرفیت مانده با ظرفیت ابتدایی هیچ فرقی نداره در حالی که ظرفیت مانده فایل سیستمهای JFS و XFS مفداری از ظرفیت پارتیشن رو از دست میدن (0.02%) که البته مقدار کمیه. و بعد هم مقداری دوباره به ظرفیت ابتدایی نزدیک میشوند ولی به صورت کامل نمیتوانند به آن برسند.
نتیجه: برای استفادهي حداکثری از ظرفیت پارتیشن خودتون یکی از فایل سیستمهای ReiserFS، JFS، XFS را انتخاب نمایید.
ایجاد فایل سیستم، مانت کردن و آنتمانت کردن آن
ایجاد فایل سیستم بر روی ۲۰ گیگابایت از هارد مورد تست برای نوع Ext3 ، زمان ۱۴.۷ ثانیه را لازم دارد که با زمان ۲ ثانیهای و یا کمتر برای ایجاد دیگر فایل سیستمها قابل مقایسه هست. (ReiserFS = 2.2, JFS = 1.3, XFS = 0.7) با این وجود مانت کردن ReiserFS پنج تا ۱۵ بار زمان بیشتری(۲.۳ ثانیه) را نسبت به دیگر فایل سیستمها نیاز دارد (Ext3 = 0.2, JFS = 0.2, XFS = 0.5) و برای عمل آنمانت کردن آن (۰.۴ ثانیه) ۲ برابر دیگر فایل سیستمها نیاز به زمان میباشد. در مورد مقایسه میزان مصرف پردازشگر در مورد ایجاد فایل سیستمها بین ۵۹٪ در مورد ReiserFS تا ۷۴٪ برای JFS متغیر میباشد. و مانت کردن فایل سیستمها بین ۶ تا ۹ درصد میباشد با این وجود عمل آنمانت کردن Ext3 و XFS دو برابر دیگر فایل سیستمها مصرف پردازشگر دارند (۳۷ تا ۴۵ درصد) که با مصرف ۱۴ درصدی ReiserFS و ۲۷ درصدی JFS قابل مقایسه میباشند.
نتیجه:برای ایجاد سریع فایل سیستم و همچنین سرعت در عمل مانت و آنمانت کردن فایل سیستم JFS و یا XFS را استفاده کنید.
کار با فایلهای بزرگ (ISO Image با حجم ۷۰۰ مگابایت)
زمان لازم برای کپی ابتدایی این فایل بزرگ بر روی فایل سیستمها برای Ext3 با زمان ۳۸.۲ و ReiserFS با زمان ۴۱.۸ ثانیه بود که با زمان ۳۵.۱ ثانیهای JFS و ۳۴.۸ ثانیهای XFS قابل مقایسه میباشد. کپی مجددی را از همین فایل و بر روی همان هارد در مکانی دیگر انجام دادیم. برتری با XFS با زمان ۳۳.۱ ثانیهای بود که در مقایسه با فایل سیستمهای دیگر (Ext3 = 37.3, JFS = 39.4, ReiserFS = 43.9) با معنی بود. پاکسازی این فایل ایزو بر فایلسیستمهای JFS و XFS با زمان ۰.۰۲ ثانیه برای هر دو صد برابر سریعتر از دیگر فایل سیستمها بود (۱.۵ ثانیه برای ReiserFS و ۲.۵ ثانیه برای Ext3)!! همهي فایل سیستمها در مورد میزان مصرف پردازشگر در هنگام کپی ابتدایی فایل ایزو مقادیری بین ۴۶ تا ۵۱ درصد بود و میزان مصرفشان در هنگام کپی مجدد نیز بین ۳۸٪ تا ۵۰٪ بود . برای پاک کردن فایل ایزو هم ReiserFS نیاز به ۴۹ درصد از پردازشگر داشت در حالی که این مقدار برای دیگر فایل سیستمها حدودا ۱۰ درصد بود. تمایل JFS به کمتر مصرف کردن از پردازشگر مشخص بود. (پنج تا ۱۰ درصد کمتر ). تعداد صفحات خطای کمتر (The number of minor page faults) بین فایل سیستمها مشابه بود(از ۶۰۰ خطا در XFS بگیرین تا ۶۶۱ خطا در ReiserFS)
نتیجه: برای کار بر روی فایلهای بزرگ JFS و XFS را انتخاب نمایید و اگر به میزان مصرف کمتر پردازشگر از سوی فایل سیستم علاقه دارید، JFS اصلح میباشد.
کار بر روی درخت فایل یا همون انبوهی از فایلها و دابرکتوریهای تو در تو (۷۵۰۰ فایل و ۹۰۰ دایرکتوری به حجم ۱.۹ گیگ)
کپی ابتدایی از این درخت بر روی هارد در سیستمفایل Ext3 با سرعت بیشتری انجام شد (۱۵۸.۳ ثانیه) و برای XFS این زمان به ۱۶۶.۱ ثانیه رسید که با ReiserFS با زمان ۱۷۲.۱ ثانیه و JFS با زمان ۱۸۰.۱ قابل مقایسه میباشند. نتایج مشابهی نیز برای کپی مجدد بر روی همین دیسک سخت برای این فایل سیستمها بدست میآید. در کپی مجدد برتری همچنان با Ext3 با زمان ۱۲۰ ثانیه میباشد که قابل مقایسه با دیگر فایل سیستمها میباشد (XFS = 135.2, ReiserFS = 136.9 and JFS = 151). با این وجود پاکسازی درخت فایل در Ext3 دو برابر (۲۲ ثانیه) در مقایسه با ReiserFS با زمان ۸.۲ ثانیه و XFS با زمان ۱۰.۵ ثانیه و JFS با زمان ۱۲.۵ ثانیه، وفت برد!! همهی فایل سیستمها برای عمل کپی بین ۲۷ تا ۳۶ درصد از پردازشگر را به خود اختصاص دادند و برای کپی مجدد این مقدار بین ۲۹٪ از JFS تا ۴۵٪ از ReiserFS رسید.جای شگفت هست که ReiserFs و XFS برای پاک کردن درخت فایل به شدت پردازشگر رو اشغال میکردند (۸۶ درصد و ۶۵ درصد) در حالی که در دیگر فایل سیستمها این مقدار به ۱۵ درصد میرسید(Ext3 و JFS). در اینجا باز هم JFS تمایل کمتری به استفاده از پردازشگر رو نسبت به دیگر فایل سیستمها از خود نشون داد. تعداد صفحات خطا به صورت با معنی در ReiserFS بالا بود (۵۸۴۳) در حالی که برای دیگر فایل سیستمها این آمار بین ۱۴۰۰ تا ۱۴۹۰ بود. این تفاوت حتی به مقادیری بالاتری از صفخات خطا نیز (۵ تا ۲۰ برابر) در کپی مجدد و پاکسازی درخت فایل برای ReiserFS نسبت به دیگر فایل سیستمها میرسید!
نتیجه: برای انجام کارهای سریع بر روی فایلهای انبوه و تو در تو موسوم به درخت فایل استفاده از Ext3 و یا XFS سفارش میشود.
لیست گرفتن از دایرکتوریها و جستجوی فایلها از داخل درخت فایل قبلی
لیست گرفتن از تمام دایرکتوریهای این درخت فایل در ReiserFS با زمان ۱.۴ ثانیه و XFS با زمان ۱.۸ قابل مقایسه با Ext3 با زمان ۲.۵ و JFS با زمان ۳.۱ ثانیه میباشد. نتایج مشابهی نیز برای جستجوی فایل بدست آمد بدین ترتیب که زمان ۰.۸ ثانیه برای ReiserFS و زمان ۲.۸ ثانیه برای XFS بود که قابل مقایسه با زمانهای ۴.۶ ثانیهای Ext3 و ۵ ثانیهای JFS بود. Ext3 و JFS به صورت مشابه در هنگام لیست کردن دایرکتوریها ۳۵ درصد و در هنگام جستجوی فایلها ۶ درصد از پردازشگر را اشغال میکردند. XFS مقدار بیشتری از پردازشگر را در هنگام لیست کردن فایل اشغال میکرد (۷۰ درصد) والبته به همین ترتیب در مورد جستوجوی فایل عمل میکرد (۱۰ درصد). ReiserFS نیز استفادهی افراطی را از پردازشگر برای خود به ثبت رساند و به ترتیب ۷۱ و ۳۶ درصد از پردازشگر را برای لیست کردن دایرکتوری و جستجوی فایل به خود اختصاص داد. و دوباره درباره تعداد کمتر صفحات خطا این تعداد در مورد ReiserFS سه برابر دیگر فایل سیستمها میباشد (۱۹۹۱ در برابر ۷۰۴ تا ۷۱۲ خطا).
نتیجه:انجام این آزمایش نشان داد که سرعت بیشتر ، در جستجو و لیست کردن دایرکتوری به همراه خود مصرف بیشتر پردازشگر را نیز دارد (ReiserFS و XFS) و بالعکس (Ext3 و JFS)
نتیجهگیری کلی
نتیجه اینکه گرچه همه فایل سیستمها خوب هستن اما در نهایت شما باید یکی رو انتخاب کنید. براساس نتایج بدست آمده XFS مناسبترین گزینه برای کامپیوترهای خانگی و همینطور برای مقاصد تجاری اما در سطحی کوچک میباشد.
خلاصهی دلایل برتری XFS
- استفادهی حداکثری از هارددیسک
- سریعترین فایل سیستم برای ایجاد و مانت و آنتمانت کردن
- سریعترین فایل سیستم برای کار با فایلهای حجیم (بیشتر از ۵۰۰ مگابایت)
- این فایل سیستم مکان خوبی برای نگهداری بکآب فایلها میباشد
- استفاده از زمان و پردازشگر به صورت میانه برای لیست کردن و جستجوی فایلها
- اگرچه کمترین میزان مصرف رم به این فایل سیستم تعلق داره اما میزان کاملا قابل قبولی رو داره
منبع
Filesystems (ext3, reiser, xfs, jfs) comparison on Debian Etch
نتایج آزمایشهای مشابه دیگر
Benoit, M. (2003). Linux File System Benchmarks.
Piszcz, J. (2006). Benchmarking Filesystems Part II. Linux Gazette, 122 (January 2006).
یک نکته:من متوجه منظور مقاله از تعداد صفحات خطا نشدم! اگر کسی منظورش رو متوجه شد به ما هم بگه ممنون میشیم.
نکته بعدی: توجه به کامنتهای این مقاله در سایت اصلی هم بسیار میتونه جالب باشه! البته به نظر من تجربه هم میتونه مهم باشه! البته به شرطی که شما اطلاعات مهمی روی کامپیوترتون نداشته باشین! اینطور که از شواهد پیداست(کامنتها) وقتی شما XFS رو انتخاب میکنید احتمال اینکه به یکباره نصف طلاعات بپره وجود داره !! برای فهم این موضوع شما باید با یک سری از اصطلاحات آشنا بشین. سعی میکنم توی یک پست دیگری جداگانه با ریز فایل سیستمها شما رو آشنا کنم البته این به شرطی هست که خودم از اون چیزی سر دربیارم!!