Noatime сонголт нь Линукс системийн гүйцэтгэлийг хэрхэн, яагаад сайжруулдаг вэ?

Цагийн шинэчлэл нь системийн гүйцэтгэлд нөлөөлдөг. Тэнд юу болж байна, энэ талаар юу хийх вэ - нийтлэлийг уншина уу.

Noatime сонголт нь Линукс системийн гүйцэтгэлийг хэрхэн, яагаад сайжруулдаг вэ?
Би гэрийн компьютер дээрээ Линуксыг шинэчлэх болгондоо тодорхой асуудлуудыг шийдэх хэрэгтэй болдог. Олон жилийн туршид энэ нь зуршил болсон: би файлуудаа нөөцөлж, системийг арчиж, бүх зүйлийг эхнээс нь суулгаж, файлуудаа сэргээж, дараа нь дуртай програмуудаа дахин суулгадаг. Би бас өөртөө тохируулан системийн тохиргоог өөрчилдөг. Заримдаа хэтэрхий их цаг зарцуулдаг. Тэгээд саяхан надад энэ толгойн өвчин хэрэгтэй юу гэж бодсон.

цаг нь Линукс дээрх файлуудын гурван цагийн тэмдгийн нэг юм (энэ талаар дараа дэлгэрэнгүй ярих болно). Ялангуяа сүүлийн үеийн Линукс системүүд дээр atime-г идэвхгүй болгох нь зүйтэй болов уу гэж би гайхаж байсан. Файлд хандах бүрт atime шинэчлэгддэг тул энэ нь системийн гүйцэтгэлд ихээхэн нөлөө үзүүлдэг гэдгийг би ойлгосон.
Би саяхан Fedora 32 руу шинэчлэгдсэн бөгөөд зуршлаасаа болж atime-г идэвхгүй болгож эхэлсэн. Би бодлоо: надад үнэхээр хэрэгтэй байна уу? Би энэ асуудлыг судлахаар шийдсэн бөгөөд энэ бол миний ухсан зүйл юм.

Файлын цагийн тэмдгийн талаар бага зэрэг

Үүнийг ойлгохын тулд та нэг алхам ухарч, Линукс файлын системүүд болон цөм нь файлууд болон директоруудыг хэрхэн цаг тэмдэглэдэг талаар хэдэн зүйлийг санах хэрэгтэй. Та командыг ажиллуулснаар файлууд болон лавлахуудын хамгийн сүүлд өөрчлөгдсөн огноог харах боломжтой ls -l (урт) эсвэл зүгээр л файлын менежерээс энэ талаарх мэдээллийг харах боломжтой. Гэхдээ тайзны ард Линуксийн цөм нь файл, лавлахын хэд хэдэн цагийн тэмдэгтүүдийг бүртгэдэг:

  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-р сарын XNUMX-нд системийг суулгах үед үүсгэсэн болохыг эндээс харж болно. Миний файл / etc / fstab файл Хамгийн сүүлд 16 оны 2019-р сарын XNUMX-нд өөрчилсөн бөгөөд бусад бүх шинж чанарууд яг тэр үед өөрчлөгдсөн.

Хэрэв би хуулбарлавал / 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

Гэхдээ би агуулгыг нь өөрчлөхгүйгээр зүгээр л файлын нэрийг өөрчлөх юм бол Линукс зөвхөн файл өөрчлөгдсөн цагийг л шинэчилнэ:

$ 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 онд Линус Торвалдс болон бусад хэд хэдэн цөмийн хөгжүүлэгчид гүйцэтгэлийн асуудлын хүрээнд цаг тухайд нь ярилцсан. Линуксийн цөмийн хөгжүүлэгч Инго Молнар atime болон ext3 файлын системийн талаар дараах зүйлийг хэлсэн.

tmpwatch (ctime ашиглахаар тохируулж болно, тиймээс энэ нь тийм ч том асуудал биш) гэсэн хоёр л бодит хэрэглэгч байдаг ч Линуксийн ширээний компьютер болон сервер бүр тогтмол шинэчлэлтүүдээс болж I/O гүйцэтгэл мэдэгдэхүйц доройтож байгаа нь үнэхээр хачирхалтай. зарим нөөц хэрэгсэл."

Гэхдээ хүмүүс энэ шошго хэрэгтэй зарим програмыг ашигладаг хэвээр байна. Тиймээс цагийг арилгах нь тэдний үйл ажиллагааг алдагдуулах болно. Линукс цөм хөгжүүлэгчид хэрэглэгчийн эрх чөлөөнд халдах ёсгүй.

Соломоны шийдэл

Линукс түгээлтэд олон програмууд багтсан байдаг ба үүнээс гадна хэрэглэгчид өөрсдийн хэрэгцээнд нийцүүлэн бусад программуудыг татаж суулгаж болно. Энэ бол нээлттэй эхийн үйлдлийн системийн гол давуу тал юм. Гэхдээ энэ нь таны файлын системийн ажиллагааг оновчтой болгоход хэцүү болгодог. Нөөц их шаарддаг бүрэлдэхүүн хэсгүүдийг устгах нь системийг тасалдуулж болзошгүй.

Буултын үүднээс Линуксийн цөмийн хөгжүүлэгчид гүйцэтгэл болон нийцтэй байдлын хоорондын тэнцвэрийг бий болгох зорилготой шинэ релей цагийн сонголтыг нэвтрүүлсэн:

atime нь зөвхөн өмнөх хандалтын хугацаа нь одоогийн өөрчлөлт эсвэл статусыг өөрчлөх хугацаанаас бага байвал шинэчлэгддэг... Linux 2.6.30-аас хойш цөм энэ сонголтыг анхдагчаар ашигладаг (noatime заагаагүй бол)... Мөн Linux 2.6.30-аас хойш . 1-ны өдөр, файл XNUMX хоногоос дээш настай бол сүүлийн хандалтын хугацаа үргэлж шинэчлэгддэг.

Орчин үеийн Линукс системүүд (2.6.30 онд гарсан Линукс 2009-аас хойш) аль хэдийн relaytime ашигладаг бөгөөд энэ нь гүйцэтгэлийг үнэхээр нэмэгдүүлэх ёстой. Энэ нь та файлыг тохируулах шаардлагагүй гэсэн үг юм / etc / fstab файл, мөн relaytime-ийн тусламжтайгаар та үндсэн тохиргоонд найдаж болно.

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 сонголт нь Линукс системийн гүйцэтгэлийг хэрхэн, яагаад сайжруулдаг вэ?

Эх сурвалж: www.habr.com

сэтгэгдэл нэмэх