اطلاعیه

بستن
هنوز اطلاعیه ای در دست نیست.

مفاهیم Journaling و Caching در لینوکس

بستن
X
 
  • فیلتر کردن
  • زمان
  • نمایش
Clear All
پست های جدید

    مفاهیم Journaling و Caching در لینوکس

    سوال یکی از دوستان بهانه ای شد برای نوشتن این مطلب :
    سوال یک دوست این بود که سرعت نوشتن دیسک در فایل سیستم های EXT کمتر از فایل سیستم های دیگه هست اما چرا ؟

    فایل سیستم های EXT3-4 از قابلیت journalization و caching استفاده میکنن دقت کنید مبحث کشینک و journalization در EXT3 به بعد ظهور کرد. اما چطور بفهمیم قابلیت کشینگ فعال هست یا نه ؟!؟ قبلش مفهوم جورنال در فایل سیستم را بررسی میکنم.



    در مباحث ذخیره*سازی، سیستم فایل ژورنالی به سیستم فایلی می*گویند که تغییرات را قبل از اعمال کردن در سیستم فایل اصلی در ناحیه مخصوصی به نام ژورنال پیگیری و نگه*داری می*کند. اغلب اوقات، ناحیه ژورنال، ناحیه*ای از سیستم فایل است که وقایع و تغییرات به صورت گردشی در آن ثبت می*شوند. بدین ترتیب، در هنگام پیش*آمدن مشکلی برای سیستم فایل، همانند قطع شدن برق، سیستم فایل با کمترین احتمال خرابی می*تواند به سرعت آماده به کار شود.

    حال چطور میتونیم بفهمیم قابلیت کشینگ فعال هست، و چطور میشه اون را فعال کرد؟


    با دستور زیر میشه پی برد :
    کد PHP:

    hdparm 
    -W 0 /dev/sdX

     
    ---------------- خروجی ---------------------

    /
    dev/sda6:

     
    write-caching =  (on
    برای دانستن اطلاعات درمورد فایل سیستم EXT ما :*
    کد PHP:

    tune2fs 
    -/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
    :           (<none>)

    Lifetime writes:          1208 kB

    Reserved blocks uid
    :      (user root)

    Reserved blocks gid:      (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 
    برای ابن کار میتونبد در فایل /etc/fstab مثل این ساختار را اضافه کرد.


    اما در مورد 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.gsome

                  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.

    ------------------------------------------------------------------------------------------------- 
    این ساختار ها را میشه بصورت مستقیم با دستور mount وارد کرد. البته پارامتر های زیر را هم میشه در کرنل اعمال کرد :
    کد PHP:
    To free pagecache:

      echo 
    > /proc/sys/vm/drop_caches

    To free dentries 
    and inodes:

      echo 
    > /proc/sys/vm/drop_caches

    To free pagecache
    dentries and inodes:

      echo 
    > /proc/sys/vm/drop_caches 
    نکته دیگه :


    با دستور hdparm هم میشه انجام داد :
    کد PHP:

    hdparm 
    -W0 /dev/sda6

    -----------------------------خروجی---------------------------------

    /
    dev/sda6:

     
    setting drive write-caching to 0 (off)

     
    write-caching =  (off

    من قلبی بزرگ با رویاهایی بزرگ دارم. دانسته هایمان را با هم به اشتراک بگذاریم.
در حال انجام ...
X