Kedi neden erişim zamanını değiştirmiyor?


25

Bir dosyayı yakalamak için yapılan ikinci çağrı erişim süresini güncellemez. Bir dosya içeriğinin görüntülendiği zaman erişim zamanının güncellenmesini bekliyordum.

Dosyayı web tarayıcısında açarsam aynı davranışı görüyorum. Erişim süresi tutarlı bir şekilde güncellenmez.

Erişim zamanını yanlış mı anlıyorum? İki kedi çağrısı arasında farklı olan nedir?

$ dokunma testi
$ stat testi
  Dosya: `test '
  Boyut: 0 Blok: 0 IO Blok: 4096 normal boş dosya
Cihaz: 803h / 2051d Inode: 152694 Bağlantılar: 1
Erişim: (0664 / -rw-rw-r--) Uid: (1001 / aaron) Gid: (1001 / aaron)
Erişim: 2012-08-21 11: 05: 40.586020996 +0200
Değiştirme: 2012-08-21 11: 05: 40.586020996 +0200
Değişiklik: 2012-08-21 11: 05: 40.586020996 +0200
 Doğum: -

$ vim testi
$ stat testi
  Dosya: `test '
  Boyut: 5 Blok: 8 IO Blok: 4096 normal dosya
Cihaz: 803h / 2051d Inode: 152694 Bağlantılar: 1
Erişim: (0664 / -rw-rw-r--) Uid: (1001 / aaron) Gid: (1001 / aaron)
Erişim: 2012-08-21 11: 05: 52.890021630 +0200
Değiştirme: 2012-08-21 11: 06: 31.606023626 +0200
Değişiklik: 2012-08-21 11: 06: 31.638023629 +0200
 Doğum: -

kedi testi
Ölçek

$ stat testi
  Dosya: `test '
  Boyut: 5 Blok: 8 IO Blok: 4096 normal dosya
Cihaz: 803h / 2051d Inode: 152694 Bağlantılar: 1
Erişim: (0664 / -rw-rw-r--) Uid: (1001 / aaron) Gid: (1001 / aaron)
Erişim: 2012-08-21 11: 06: 44.662024298 +0200
Değiştirme: 2012-08-21 11: 06: 31.606023626 +0200
Değişiklik: 2012-08-21 11: 06: 31.638023629 +0200
 Doğum: -

kedi testi
Ölçek

$ stat testi
  Dosya: `test '
  Boyut: 5 Blok: 8 IO Blok: 4096 normal dosya
Cihaz: 803h / 2051d Inode: 152694 Bağlantılar: 1
Erişim: (0664 / -rw-rw-r--) Uid: (1001 / aaron) Gid: (1001 / aaron)
Erişim: 2012-08-21 11: 06: 44.662024298 +0200
Değiştirme: 2012-08-21 11: 06: 31.606023626 +0200
Değişiklik: 2012-08-21 11: 06: 31.638023629 +0200
 Doğum: -

Yanıtlar:


44

http://en.wikipedia.org/wiki/Stat_(system_call)

Atime eleştirisi

Bir dosyaya yazma, onun zamanını ve ctime'ını değiştirirken, bir dosyayı okumak onun zamanını değiştirir. Sonuç olarak POSIX uyumlu bir sistemde, bir dosyayı okumak eleştirilen bir yazıya neden olur. Bu davranış, / etc / fstab içine bir mount seçeneği eklenerek genellikle devre dışı bırakılabilir.

Ancak, atime güncellemesini kapatmak POSIX uyumluluğunu ve bazı uygulamaları, özellikle de posta postasını (bazı yapılandırmalarda) ve bazı dosya kullanımlarını izleyen programları, özellikle de tmpwatch'ı ihlal eder. En kötü durumda, uygun olmayan bir zamanda güncellememek bazı yedekleme programlarının bir dosyayı yedeklememesine neden olabilir.

Linux çekirdeği geliştiricisi Ingo Molnár, atime "belki de tüm zamanların en aptalca Unix tasarım fikri" eklemiştir: "[T] bu konuda biraz endişeleniyor:" Diskten okunan her dosya için, bir yazalım ... Diske! Ve, önbelleğe alınmış ve önbellekten okuduğumuz her dosya için ... diske bir yazı yaz! "" Performansın etkisini vurguladı:

Atime güncellemeleri, bugün Linux'un sahip olduğu en büyük IO performans eksikliğidir. Zamanının güncellenmesi kurtulmak bize son 10 yıldır her pagecache hızlanma, daha gündelik Linux performansı verecek kombine .

noatime veya relatime'in çekirdeğin varsayılan mount seçeneği olup olmadığını nasıl anlarım?

man mount
....
   relatime
          Update inode access times relative to  modify  or  change  time.
          Access time is only updated if the previous access time was ear
          lier than the current modify or change time. (Similar  to  noat
          ime,  but  doesn't break mutt or other applications that need to
          know if a file has been read since the last time  it  was  modi‐
          fied.)

          Since Linux 2.6.30, the kernel defaults to the behavior provided
          by this option (unless noatime was  specified), and the stricta‐
          time  option  is  required  to  obtain traditional semantics. In
          addition, since Linux 2.6.30, the file's  last  access  time  is
          always  updated  if  it  is more than 1 day old.
....

Bu özel bölme nasıl monte edildi ve neden kedi beklediğim gibi erişim süresini güncellemedi.



Atime'in farklı mount seçeneklerinden nasıl etkilendiğine dair daha eski bir tartışma. linux.koolsolutions.com/2009/01/30/…
nelaaro
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.