Noatime seçeneği Linux sistemlerinin performansını nasıl ve neden artırır?

Atime güncellemesi sistem performansını etkiler. Orada neler oluyor ve bu konuda ne yapılmalı - makaleyi okuyun.

Noatime seçeneği Linux sistemlerinin performansını nasıl ve neden artırır?
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:

  1. Dosya en son ne zaman değiştirildi (mtime)
  2. Dosya özellikleri ve meta veriler en son ne zaman değiştirildi (ctime)
  3. Dosyaya en son ne zaman erişildi (atime)
  4. 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 yumruklamakancak posta kutularının sistemde yerel olduğu günlerde biff oldukça yaygındı.

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 güvenilir sunucular Günlük veya tek seferlik ödeme ile her sunucu 500 Megabit internet kanalına bağlanır ve DDoS saldırılarına karşı ücretsiz korunur!

Noatime seçeneği Linux sistemlerinin performansını nasıl ve neden artırır?

Kaynak: habr.com

Yorum ekle