Noatime опциясы Linux жүйелерінің өнімділігін қалай және неге жақсартады

Уақытты жаңарту жүйенің жұмысына әсер етеді. Онда не болып жатыр және бұл туралы не істеу керек - мақаланы оқыңыз.

Noatime опциясы Linux жүйелерінің өнімділігін қалай және неге жақсартады
Үй компьютерімде Linux-ты жаңартқан сайын, белгілі бір мәселелерді шешуім керек. Көптеген жылдар бойы бұл әдетке айналды: мен файлдарымның сақтық көшірмесін жасаймын, жүйені сүртемін, барлығын нөлден орнатамын, файлдарымды қалпына келтіремін, содан кейін сүйікті қолданбаларымды қайта орнатамын. Жүйе параметрлерін де өзіме сәйкес өзгертемін. Кейде бұл тым көп уақытты алады. Ал жақында осы бас ауруы керек пе деп ойладым.

уақыт Linux жүйесіндегі файлдарға арналған үш уақыт белгісінің бірі (бұл туралы кейінірек толығырақ). Атап айтқанда, мен соңғы Linux жүйелерінде уақытты өшіру жақсы идея бола ма деп ойладым. Atime файлға қол жеткізген сайын жаңартылатындықтан, мен оның жүйе өнімділігіне айтарлықтай әсер ететінін түсіндім.
Мен жақында Fedora 32 нұсқасына жаңарттым және әдеттен тыс уақытты өшіру арқылы бастадым. Мен ойладым: бұл маған шынымен керек пе? Мен бұл мәселені зерттеуді шештім және мен осыны таптым.

Файл уақыт белгілері туралы аздап

Оны түсіну үшін сізге бір қадам артқа шегініп, Linux файлдық жүйелері және ядроның файлдар мен каталогтарды қалай белгілейтіні туралы бірнеше нәрсені есте сақтау қажет. Пәрменді іске қосу арқылы файлдар мен каталогтардың соңғы өзгертілген күнін көруге болады ls -l (ұзын) немесе жай ғана файл менеджерінде ол туралы ақпаратты қарау арқылы. Бірақ сахнаның артында Linux ядросы файлдар мен каталогтар үшін бірнеше уақыт белгілерін қадағалайды:

  1. Файл соңғы рет қашан өзгертілді (mtime)
  2. Файл сипаттары мен метадеректер соңғы рет қашан өзгертілді (ctime)
  3. Файлға соңғы рет қашан қол жеткізілді (atime)
  4. Сіз пәрменді пайдалана аласыз статфайл немесе каталог туралы ақпаратты көру үшін. Міне файл / etc / fstab менің сынақ серверлерімнің бірінен:

$ stat fstab
  File: fstab
  Size: 261             Blocks: 8          IO Block: 4096   regular file
Device: b303h/45827d    Inode: 2097285     Links: 1
Access: (0664/-rw-rw-r--)  Uid: (    0/    root)   Gid: (    0/    root)
Context: system_u:object_r:etc_t:s0
Access: 2019-04-25 21:10:18.083325111 -0500
Modify: 2019-05-16 10:46:47.427686706 -0500
Change: 2019-05-16 10:46:47.434686674 -0500
 Birth: 2019-04-25 21:03:11.840496275 -0500

Мұнда сіз жүйені орнатқан кезде бұл файлдың 25 жылдың 2019 сәуірінде жасалғанын көре аласыз. Менің файлым / etc / fstab соңғы рет 16 жылдың 2019 мамырында өзгертілді және барлық басқа атрибуттар шамамен сол уақытта өзгертілді.

Көшірсем / etc / fstab жаңа файлға күндер оның жаңа файл екенін көрсету үшін өзгереді:

$ sudo cp fstab fstab.bak
$ stat fstab.bak
  File: fstab.bak
  Size: 261             Blocks: 8          IO Block: 4096   regular file
Device: b303h/45827d    Inode: 2105664     Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Context: unconfined_u:object_r:etc_t:s0
Access: 2020-05-12 17:53:58.442659986 -0500
Modify: 2020-05-12 17:53:58.443659981 -0500
Change: 2020-05-12 17:53:58.443659981 -0500
 Birth: 2020-05-12 17:53:58.442659986 -0500

Бірақ егер мен оның мазмұнын өзгертпестен файлдың атын жай ғана өзгертсем, Linux файлды өзгерту уақытын ғана жаңартады:

$ sudo mv fstab.bak fstab.tmp
$ stat fstab.tmp
  File: fstab.tmp
  Size: 261             Blocks: 8          IO Block: 4096   regular file
Device: b303h/45827d    Inode: 2105664     Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Context: unconfined_u:object_r:etc_t:s0
Access: 2020-05-12 17:53:58.442659986 -0500
Modify: 2020-05-12 17:53:58.443659981 -0500
Change: 2020-05-12 17:54:24.576508232 -0500
 Birth: 2020-05-12 17:53:58.442659986 -0500

Бұл уақыт белгілері белгілі бір Unix бағдарламалары үшін өте пайдалы. Мысалы, biff - электрондық поштаңызда жаңа хабарлама болған кезде хабарлайтын бағдарлама. Қазіргі уақытта аз адамдар пайдаланады биф, бірақ пошта жәшіктері жүйе үшін жергілікті болған күндері biff өте кең таралған.

Кіріс жәшігінде жаңа хат бар-жоғын бағдарлама қайдан біледі? biff соңғы өзгертілген уақытты (кіріс жәшігі файлы жаңа электрондық пошта хабарымен жаңартылған кезде) және соңғы кіру уақытын (электрондық поштаны соңғы рет оқыған) салыстырады. Егер өзгерту рұқсат етілгеннен кейінірек болса, biff жаңа хат келгенін түсінеді және бұл туралы сізге хабарлайды. Mutt электрондық пошта клиенті дәл осылай жұмыс істейді.

Соңғы кіру уақыт белгісі файлдық жүйені пайдалану статистикасын жинау және өнімділікті реттеу қажет болса да пайдалы. Жүйе әкімшілері файлдық жүйені сәйкесінше конфигурациялау үшін қандай нысандарға қол жеткізілетінін білуі керек.

Бірақ қазіргі заманғы бағдарламалардың көпшілігі бұл белгіні қажет етпейді, сондықтан оны қолданбау туралы ұсыныс болды. 2007 жылы Линус Торвальдс және басқа бірнеше ядро ​​әзірлеушілер өнімділік мәселесі контекстінде уақытты талқылады. Linux ядросының әзірлеушісі Инго Молнар atime және ext3 файлдық жүйесі туралы келесі ойды айтты:

«Әрбір Linux жұмыс үстелі мен сервері екі нақты пайдаланушы болса да, тұрақты жаңартуларға байланысты енгізу/шығару өнімділігінің айтарлықтай төмендеуіне ұшырайтыны таңқаларлық: tmpwatch [оны ctime пайдалану үшін конфигурациялауға болады, сондықтан бұл үлкен мәселе емес] және кейбір сақтық көшірме құралдары».

Бірақ адамдар әлі де осы белгіні қажет ететін кейбір бағдарламаларды пайдаланады. Сондықтан уақытты жою олардың функционалдығын бұзады. Linux ядросының әзірлеушілері пайдаланушы еркіндігін бұзбауы керек.

Сүлейменнің шешімі

Linux дистрибутивтеріне кіретін көптеген қолданбалар бар және оған қоса, пайдаланушылар қажеттіліктеріне сәйкес басқа бағдарламаларды жүктеп алып, орната алады. Бұл ашық бастапқы операциялық жүйенің басты артықшылығы. Бірақ бұл файлдық жүйенің өнімділігін оңтайландыруды қиындатады. Ресурсты көп қажет ететін құрамдастарды жою жүйені бұзуы мүмкін.

Ымыра ретінде Linux ядросының әзірлеушілері өнімділік пен үйлесімділік арасындағы тепе-теңдікті сақтауға арналған жаңа релелік опцияны ұсынды:

atime алдыңғы қатынау уақыты ағымдағы өзгертуден немесе күйді өзгерту уақытынан аз болса ғана жаңартылады... Linux 2.6.30 нұсқасынан бастап ядро ​​бұл опцияны әдепкі бойынша пайдаланады (noatime көрсетілмесе)... Сондай-ақ, Linux 2.6.30 нұсқасынан бастап. 1, файлдың соңғы қол жеткізу уақыты, егер ол XNUMX күннен артық болса, әрқашан жаңартылады.

Заманауи Linux жүйелері (Linux 2.6.30, 2009 жылы шыққаннан бері) қазірдің өзінде релелік уақытты пайдаланады, бұл шын мәнінде үлкен өнімділікті арттыруы керек. Бұл файлды конфигурациялаудың қажеті жоқ дегенді білдіреді / etc / fstab, және релелік уақытпен сіз әдепкіге сене аласыз.

noatime көмегімен жүйе өнімділігін жақсарту

Бірақ максималды өнімділікке жету үшін жүйеңізді реттегіңіз келсе, уақытты өшіру әлі де мүмкін.

Өнімділік өзгерісі өте жылдам заманауи дискілерде (мысалы, NVME немесе Fast SSD) айтарлықтай байқалмауы мүмкін, бірақ бұл жерде шамалы өсу бар.

Уақытты қажет ететін бағдарламалық құралды пайдаланбағаныңызды білсеңіз, файлдағы noatime опциясын қосу арқылы өнімділікті сәл жақсартуға болады. /etc/fstab. Осыдан кейін ядро ​​үнемі жаңартылмайды. Файлдық жүйені орнату кезінде noatime опциясын пайдаланыңыз:

/dev/mapper/fedora_localhost--live-root /          ext4   defaults,noatime,x-systemd.device-timeout=0 1 1
UUID=be37c451-915e-4355-95c4-654729cf662a /boot    ext4   defaults,noatime        1 2
UUID=C594-12B1                          /boot/efi  vfat   umask=0077,shortname=winnt 0 2
/dev/mapper/fedora_localhost--live-home /home      ext4   defaults,noatime,x-systemd.device-timeout=0 1 2
/dev/mapper/fedora_localhost--live-swap none       swap   defaults,x-systemd.device-timeout=0 0 0

Өзгерістер келесі рет қайта жүктегенде күшіне енеді.

Жарнама құқықтары туралы

Сізге веб-сайтыңызды орналастыру үшін сервер керек пе? Біздің компания ұсынады сенімді серверлер күнделікті немесе бір реттік төлем арқылы әрбір сервер 500 мегабиттік интернет арнасына қосылған және DDoS шабуылдарынан тегін қорғалған!

Noatime опциясы Linux жүйелерінің өнімділігін қалай және неге жақсартады

Ақпарат көзі: www.habr.com

пікір қалдыру