Цагийн шинэчлэл нь системийн гүйцэтгэлд нөлөөлдөг. Тэнд юу болж байна, энэ талаар юу хийх вэ - нийтлэлийг уншина уу.
Би гэрийн компьютер дээрээ Линуксыг шинэчлэх болгондоо тодорхой асуудлуудыг шийдэх хэрэгтэй болдог. Олон жилийн туршид энэ нь зуршил болсон: би файлуудаа нөөцөлж, системийг арчиж, бүх зүйлийг эхнээс нь суулгаж, файлуудаа сэргээж, дараа нь дуртай програмуудаа дахин суулгадаг. Би бас өөртөө тохируулан системийн тохиргоог өөрчилдөг. Заримдаа хэтэрхий их цаг зарцуулдаг. Тэгээд саяхан надад энэ толгойн өвчин хэрэгтэй юу гэж бодсон.
цаг нь Линукс дээрх файлуудын гурван цагийн тэмдгийн нэг юм (энэ талаар дараа дэлгэрэнгүй ярих болно). Ялангуяа сүүлийн үеийн Линукс системүүд дээр atime-г идэвхгүй болгох нь зүйтэй болов уу гэж би гайхаж байсан. Файлд хандах бүрт atime шинэчлэгддэг тул энэ нь системийн гүйцэтгэлд ихээхэн нөлөө үзүүлдэг гэдгийг би ойлгосон.
Би саяхан Fedora 32 руу шинэчлэгдсэн бөгөөд зуршлаасаа болж atime-г идэвхгүй болгож эхэлсэн. Би бодлоо: надад үнэхээр хэрэгтэй байна уу? Би энэ асуудлыг судлахаар шийдсэн бөгөөд энэ бол миний ухсан зүйл юм.
Файлын цагийн тэмдгийн талаар бага зэрэг
Үүнийг ойлгохын тулд та нэг алхам ухарч, Линукс файлын системүүд болон цөм нь файлууд болон директоруудыг хэрхэн цаг тэмдэглэдэг талаар хэдэн зүйлийг санах хэрэгтэй. Та командыг ажиллуулснаар файлууд болон лавлахуудын хамгийн сүүлд өөрчлөгдсөн огноог харах боломжтой ls -l (урт) эсвэл зүгээр л файлын менежерээс энэ талаарх мэдээллийг харах боломжтой. Гэхдээ тайзны ард Линуксийн цөм нь файл, лавлахын хэд хэдэн цагийн тэмдэгтүүдийг бүртгэдэг:
- Файлыг хамгийн сүүлд хэзээ өөрчилсөн (mtime)
- Файлын шинж чанар болон мета өгөгдлийг хамгийн сүүлд хэзээ өөрчилсөн бэ (ctime)
- Файлд хамгийн сүүлд хэзээ хандсан бэ (atime)
- Та тушаалыг ашиглаж болно Зарим статистикүүдфайл эсвэл директорийн талаарх мэдээллийг үзэх. Энд файл байна / 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 шинэ захидал ирснийг ойлгож, энэ тухай танд мэдэгдэх болно. 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
Таныг дараагийн удаа дахин ачаалахад өөрчлөлтүүд хүчин төгөлдөр болно.
Сурталчилгааны эрх
Танд вэбсайтаа байрлуулах сервер хэрэгтэй юу? Манай компани санал болгож байна
Эх сурвалж: www.habr.com