سوال یکی از دوستان بهانه ای شد برای نوشتن این مطلب :
سوال یک دوست این بود که سرعت نوشتن دیسک در فایل سیستم های EXT کمتر از فایل سیستم های دیگه هست اما چرا ؟
فایل سیستم های EXT3-4 از قابلیت journalization و caching استفاده میکنن دقت کنید مبحث کشینک و journalization در EXT3 به بعد ظهور کرد. اما چطور بفهمیم قابلیت کشینگ فعال هست یا نه ؟!؟ قبلش مفهوم جورنال در فایل سیستم را بررسی میکنم.
در مباحث ذخیره*سازی، سیستم فایل ژورنالی به سیستم فایلی می*گویند که تغییرات را قبل از اعمال کردن در سیستم فایل اصلی در ناحیه مخصوصی به نام ژورنال پیگیری و نگه*داری می*کند. اغلب اوقات، ناحیه ژورنال، ناحیه*ای از سیستم فایل است که وقایع و تغییرات به صورت گردشی در آن ثبت می*شوند. بدین ترتیب، در هنگام پیش*آمدن مشکلی برای سیستم فایل، همانند قطع شدن برق، سیستم فایل با کمترین احتمال خرابی می*تواند به سرعت آماده به کار شود.
حال چطور میتونیم بفهمیم قابلیت کشینگ فعال هست، و چطور میشه اون را فعال کرد؟
با دستور زیر میشه پی برد :
برای دانستن اطلاعات درمورد فایل سیستم EXT ما :*
—----خروجی // اطلاعات زیادی هست ما فقط بعضی از اطلاعات را قرار میدیم ------------
برای غیر فعال کردن قابلیت کشینک داریم :
برای ابن کار میتونبد در فایل /etc/fstab مثل این ساختار را اضافه کرد.
اما در مورد sync :
این ساختار ها را میشه بصورت مستقیم با دستور mount وارد کرد. البته پارامتر های زیر را هم میشه در کرنل اعمال کرد :
نکته دیگه :
با دستور hdparm هم میشه انجام داد :
سوال یک دوست این بود که سرعت نوشتن دیسک در فایل سیستم های EXT کمتر از فایل سیستم های دیگه هست اما چرا ؟
فایل سیستم های EXT3-4 از قابلیت journalization و caching استفاده میکنن دقت کنید مبحث کشینک و journalization در EXT3 به بعد ظهور کرد. اما چطور بفهمیم قابلیت کشینگ فعال هست یا نه ؟!؟ قبلش مفهوم جورنال در فایل سیستم را بررسی میکنم.
در مباحث ذخیره*سازی، سیستم فایل ژورنالی به سیستم فایلی می*گویند که تغییرات را قبل از اعمال کردن در سیستم فایل اصلی در ناحیه مخصوصی به نام ژورنال پیگیری و نگه*داری می*کند. اغلب اوقات، ناحیه ژورنال، ناحیه*ای از سیستم فایل است که وقایع و تغییرات به صورت گردشی در آن ثبت می*شوند. بدین ترتیب، در هنگام پیش*آمدن مشکلی برای سیستم فایل، همانند قطع شدن برق، سیستم فایل با کمترین احتمال خرابی می*تواند به سرعت آماده به کار شود.
حال چطور میتونیم بفهمیم قابلیت کشینگ فعال هست، و چطور میشه اون را فعال کرد؟
با دستور زیر میشه پی برد :
کد PHP:
hdparm -W 0 /dev/sdX
---------------- خروجی ---------------------
/dev/sda6:
write-caching = 1 (on)
کد PHP:
tune2fs -l /dev/sdX
کد PHP:
Filesystem features: has_journal ext_attr resize_inode dir_index filetype sparse_super large_file
Filesystem flags: signed_directory_hash
Default mount options: user_xattr acl
Filesystem state: clean
Errors behavior: Continue
Filesystem OS type: Linux
Inode count: 128000
Block count: 512000
Reserved block count: 25600
Free blocks: 494994
Free inodes: 127979
First block: 0
Block size: 4096
Fragment size: 4096
Reserved GDT blocks: 124
Blocks per group: 32768
Fragments per group: 32768
Inodes per group: 8000
Inode blocks per group: 500
Filesystem created: Sun Dec 15 12:59:05 2013
Last mount time: Thu Nov 3 13:01:13 2016
Last write time: Sat Feb 4 12:20:36 2017
Mount count: 66
Maximum mount count: -1
Last checked: Sun Dec 15 12:59:05 2013
Check interval: 0 (<none>)
Lifetime writes: 1208 kB
Reserved blocks uid: 0 (user root)
Reserved blocks gid: 0 (group root)
First inode: 11
Inode size: 256
Required extra isize: 28
Desired extra isize: 28
Journal inode: 8
Default directory hash: half_md4
Directory Hash Seed: 1aff2a74-3388-4488-b525-ad15cf92a180
Journal backup: inode blocks
کد PHP:
/dev/sda1 / reiserfs sync 0 0
اما در مورد sync :
کد PHP:
sync All I/O to the filesystem should be done synchronously. In the case of media with a limited number of write cycles (e.g. some
flash drives), sync may cause life-cycle shortening.
—------------------------------------------------------
inode_cache
Enable free inode number caching. Defaults to off due to an overflow problem when the free space CRCs don't
fit inside a
single page.
—---------------------------------------------------------------------—
nospace_cache
Disable freespace cache loading without clearing the cache.
—----------------------------------------------------------------------
clear_cache
Force clearing and rebuilding of the disk space cache if something has gone wrong.
—------------------------------------------------------------------------------
inode_readahead_blks=n
This tuning parameter controls the maximum number of inode table blocks that ext4's inode table readahead
algorithm will pre-
read into the buffer cache. The value must be a power of 2. The default value is 32 blocks.
—---------------------------------------------------------------------------------------—
nodelalloc
Disable delayed allocation. Blocks are allocated when data is copied from user to page cache.
—-------------------------------------------------------------------------------------------------
کد PHP:
To free pagecache:
echo 1 > /proc/sys/vm/drop_caches
To free dentries and inodes:
echo 2 > /proc/sys/vm/drop_caches
To free pagecache, dentries and inodes:
echo 3 > /proc/sys/vm/drop_caches
با دستور hdparm هم میشه انجام داد :
کد PHP:
hdparm -W0 /dev/sda6
—-----------------------------خروجی---------------------------------
/dev/sda6:
setting drive write-caching to 0 (off)
write-caching = 0 (off)