Atime güncellemesi sistem performansını etkiler. Orada neler oluyor ve bu konuda ne yapılmalı - makaleyi okuyun.
Ne zaman ev bilgisayarımda Linux'u güncellesem bazı sorunları çözmek zorunda kalıyorum. Yıllar geçtikçe bu bir alışkanlık haline geldi: Dosyalarımı yedekliyorum, sistemi siliyorum, her şeyi sıfırdan kuruyorum, dosyalarımı geri yüklüyorum ve en sevdiğim uygulamaları yeniden yüklüyorum. Sistem ayarlarını da kendim değiştiriyorum. Bazen çok fazla zaman alır. Ve son zamanlarda bu baş ağrısına ihtiyacım olup olmadığını merak ettim.
bir zaman Linux'taki dosyalar için üç zaman damgasından biridir (bu konuya daha sonra değineceğim). Özellikle, daha yeni Linux sistemlerinde zamanı devre dışı bırakmanın hala iyi bir fikir olup olmayacağını merak ediyordum. Atime, dosyaya her erişildiğinde güncellendiğinden sistem performansı üzerinde önemli bir etkisi olduğunu fark ettim.
Yakın zamanda Fedora 32'ye yükselttim ve alışkanlıktan dolayı bir süreyi devre dışı bırakarak başladım. Düşündüm: buna gerçekten ihtiyacım var mı? Bu konuyu incelemeye karar verdim ve bunu araştırdım.
Dosya zaman damgaları hakkında biraz
Bunu anlamak için bir adım geriye gitmeniz ve Linux dosya sistemleri ve çekirdeğin dosya ve dizinlere nasıl zaman damgası koyduğuyla ilgili birkaç şeyi hatırlamanız gerekir. Komutu çalıştırarak dosya ve dizinlerin son değiştirilme tarihini görebilirsiniz. ls -l (uzun) veya sadece dosya yöneticisinde bununla ilgili bilgilere bakarak. Ancak perde arkasında Linux çekirdeği, dosyalar ve dizinler için çeşitli zaman damgalarını takip eder:
- Dosya en son ne zaman değiştirildi (mtime)
- Dosya özellikleri ve meta veriler en son ne zaman değiştirildi (ctime)
- Dosyaya en son ne zaman erişildi (atime)
- komutunu kullanabilirsiniz. statBir dosya veya dizin hakkındaki bilgileri görüntülemek için. İşte dosya / Etc / fstab test sunucularımdan birinden:
$ 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
Burada bu dosyanın 25 Nisan 2019 tarihinde sistemi kurduğumda oluşturulduğunu görebilirsiniz. Dosyam / Etc / fstab En son değiştirilme tarihi 16 Mayıs 2019'dur ve diğer tüm özellikler de aynı tarihlerde değiştirildi.
Eğer kopyalarsam / Etc / fstab yeni bir dosyada, tarihler onun yeni bir dosya olduğunu gösterecek şekilde değişir:
$ 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
Ancak içeriğini değiştirmeden dosyayı yeniden adlandırırsam, Linux yalnızca dosyanın değiştirildiği zamanı güncelleyecektir:
$ 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
Bu zaman damgaları belirli Unix programları için çok faydalıdır. Örneğin biff, e-postanızda yeni bir mesaj olduğunda sizi bilgilendiren bir programdır. Günümüzde çok az kişi kullanıyor
Program, gelen kutunuzda yeni posta olup olmadığını nasıl biliyor? biff, son değiştirilme zamanını (gelen kutusu dosyasının yeni bir e-posta mesajıyla güncellendiği zaman) ve son erişim zamanını (e-postanızı en son okuduğunuz zaman) karşılaştırır. Değişiklik erişimden sonra meydana gelmişse, biff yeni bir mektubun geldiğini anlayacak ve sizi bu konuda bilgilendirecektir. Mutt e-posta istemcisi hemen hemen aynı şekilde çalışır.
Son erişim zaman damgası, dosya sistemi kullanım istatistiklerini toplamanız ve performansı ayarlamanız gerektiğinde de kullanışlıdır. Sistem yöneticilerinin, dosya sistemini buna göre yapılandırabilmeleri için hangi nesnelere erişildiğini bilmeleri gerekir.
Ancak çoğu modern programın artık bu etikete ihtiyacı yoktur, bu nedenle bu etiketin kullanılmaması yönünde bir öneri vardı. 2007'de Linus Torvalds ve diğer bazı çekirdek geliştiricileri bir ara performans sorunu bağlamında tartıştılar. Linux çekirdek geliştiricisi Ingo Molnar, atime ve ext3 dosya sistemi hakkında şu noktaya değindi:
"Sadece iki gerçek kullanıcı olmasına rağmen her Linux masaüstü ve sunucusunun sürekli atime güncellemeleri nedeniyle gözle görülür G/Ç performans düşüşü yaşaması oldukça garip: tmpwatch [ctime kullanacak şekilde yapılandırılabilir, dolayısıyla büyük bir sorun değil] ve bazı yedekleme araçları."
Ancak insanlar hala bu etikete ihtiyaç duyan bazı programları kullanıyor. Yani atime'ı kaldırmak onların işlevselliğini bozacaktır. Linux çekirdeği geliştiricileri kullanıcı özgürlüğünü ihlal etmemelidir.
Süleyman'ın çözümü
Linux dağıtımlarında pek çok uygulama yer almakta ve bunun yanı sıra kullanıcılar ihtiyaçları doğrultusunda başka programları da indirip kurabilmektedir. Bu, açık kaynaklı bir işletim sisteminin önemli bir avantajıdır. Ancak bu, dosya sisteminizin performansını optimize etmeyi zorlaştırır. Yoğun kaynak kullanan bileşenlerin kaldırılması sistemi bozabilir.
Bir uzlaşma olarak, Linux çekirdeği geliştiricileri, performans ve uyumluluk arasında bir denge kurmayı amaçlayan yeni bir aktarım süresi seçeneği sundular:
atime yalnızca önceki erişim süresi mevcut değişiklik veya durum değişikliği zamanından daha azsa güncellenir... Linux 2.6.30'dan bu yana, çekirdek bu seçeneği varsayılan olarak kullanır (noatime belirtilmediği sürece)... Ayrıca Linux 2.6.30'dan beri. 1, bir dosyanın son erişim zamanı, eğer dosya XNUMX günden eskiyse her zaman güncellenir.
Modern Linux sistemleri (2.6.30'da piyasaya sürülen Linux 2009'dan bu yana) zaten geçiş süresini kullanıyor ve bu da gerçekten büyük bir performans artışı sağlayacak. Bu, dosyayı yapılandırmanıza gerek olmadığı anlamına gelir / Etc / fstabve aktarma süresiyle varsayılana güvenebilirsiniz.
Noatime ile sistem performansını iyileştirme
Ancak sisteminizi maksimum performans elde edecek şekilde ayarlamak istiyorsanız, zamanı devre dışı bırakmak hala mümkündür.
Performans değişikliği çok hızlı modern sürücülerde (NVME veya Hızlı SSD gibi) pek fark edilmeyebilir, ancak orada küçük bir artış vardır.
Zaman gerektiren bir yazılım kullanmadığınızı biliyorsanız, dosyadaki noatime seçeneğini etkinleştirerek performansı biraz artırabilirsiniz. /etc/fstab. Bundan sonra çekirdek sürekli olarak güncellenmeyecektir. Dosya sistemini bağlarken noatime seçeneğini kullanın:
/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
Değişiklikler bir sonraki yeniden başlatmanızda etkili olacaktır.
Reklam gibi
Web sitenizi barındırmak için bir sunucuya mı ihtiyacınız var? Firmamızın sunduğu teklifler
Kaynak: habr.com