Чому кішка не змінює час доступу?


25

Другий виклик файлу cat не оновлює час доступу. Я очікував, що час доступу буде оновлено щоразу, коли відображатиметься вміст файлу.

Я бачу таку ж поведінку, якщо відкриваю файл у веб-браузері. Час його доступу не оновлюється послідовно.

Я нерозумію час доступу? Що відрізняється між двома котячими дзвінками?

$ сенсорний тест
$ stat тест
  Файл: `тест '
  Розмір: 0 Блоки: 0 Блок IO: 4096 звичайний порожній файл
Пристрій: 803h / 2051d Inode: 152694 Посилання: 1
Доступ: (0664 / -rw-rw-r--) Uid: (1001 / aaron) Gid: (1001 / aaron)
Доступ: 2012-08-21 11: 05: 40.586020996 +0200
Змінити: 2012-08-21 11: 05: 40.586020996 +0200
Зміна: 2012-08-21 11: 05: 40.586020996 +0200
 Народження: -

$ vim тест
$ stat тест
  Файл: `тест '
  Розмір: 5 блоків: 8 IO Блок: 4096 звичайний файл
Пристрій: 803h / 2051d Inode: 152694 Посилання: 1
Доступ: (0664 / -rw-rw-r--) Uid: (1001 / aaron) Gid: (1001 / aaron)
Доступ: 2012-08-21 11: 05: 52.890021630 +0200
Змінити: 2012-08-21 11: 06: 31.606023626 +0200
Зміна: 2012-08-21 11: 06: 31.638023629 +0200
 Народження: -

$ тест на кішку
тест

$ stat тест
  Файл: `тест '
  Розмір: 5 блоків: 8 IO Блок: 4096 звичайний файл
Пристрій: 803h / 2051d Inode: 152694 Посилання: 1
Доступ: (0664 / -rw-rw-r--) Uid: (1001 / aaron) Gid: (1001 / aaron)
Доступ: 2012-08-21 11: 06: 44.662024298 +0200
Змінити: 2012-08-21 11: 06: 31.606023626 +0200
Зміна: 2012-08-21 11: 06: 31.638023629 +0200
 Народження: -

$ тест на кішку
тест

$ stat тест
  Файл: `тест '
  Розмір: 5 блоків: 8 IO Блок: 4096 звичайний файл
Пристрій: 803h / 2051d Inode: 152694 Посилання: 1
Доступ: (0664 / -rw-rw-r--) Uid: (1001 / aaron) Gid: (1001 / aaron)
Доступ: 2012-08-21 11: 06: 44.662024298 +0200
Змінити: 2012-08-21 11: 06: 31.606023626 +0200
Зміна: 2012-08-21 11: 06: 31.638023629 +0200
 Народження: -

Відповіді:


44

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

Критика аніме

Запис у файл змінює його mtime та ctime, а читання файлу змінює його atime. Як результат, у системі, сумісній з POSIX, читання файлу викликає запис, який зазнав критики. Таку поведінку зазвичай можна відключити, додавши опцію кріплення в / etc / fstab.

Однак вимкнення оновлення аніме порушує відповідність POSIX, а деякі додатки, зокрема читач мут-пошти (у деяких конфігураціях), а також деяке використання файлів, що переглядають утиліти, зокрема tmpwatch. У гіршому випадку, не оновлення аніме може призвести до відмови деяких програм резервного копіювання файлів.

Розробник ядра Linux Ingo Molnár назвав atime "чи не найглупішою ідеєю дизайну Unix усіх часів", додавши: "[T] трохи підкажіть про це:" Для кожного файлу, який читається з диска, давайте робити ... написати на диск! І для кожного файлу, який уже є кешованим, і який ми читаємо з кеша ... зробіть запис на диск! "

Оновлення Atime - це найбільший дефіцит продуктивності IO, який сьогодні має Linux. Позбавлення оновлень atime дасть нам більше повсякденної продуктивності Linux, ніж усі прискорення кеш-сторінки сторінок за останні 10 років, разом .

як дізнатися, чи в режимі ядра або режиму відновлення за замовчуванням є опція кріплення у ядрі?

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.
....

Яким чином був встановлений саме цей розділ і чому кішка не оновлює час доступу, як я очікував.


Більше інформації про те, як ubuntu обробляє atime askubuntu.com/questions/2099/…
nelaaro

Ось більш давня дискусія про те, як на аніме впливають різні варіанти кріплення. linux.koolsolutions.com/2009/01/30/…
nelaaro
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.