명시적으로 지정된 값인 atime을 사용하여 디스크를 마운트했습니다.
mount -o mount -o atime /dev/disk1 /myDisk
그런 다음 파일을 만들었습니다.
touch file_A
이 작업을 수행한 후 통계 출력은 다음과 같습니다.
Access: 2013-08-30 11:38:48.141970758 +0200
Modify: 2013-08-30 11:38:48.141970758 +0200
Change: 2013-08-30 11:38:48.141970758 +0200
cat /myDisk/file_A
통계 출력이 한 번만 변경된 후:
Access: 2013-08-30 11:39:11.141970758 +0200
Modify: 2013-08-30 11:38:48.141970758 +0200
Change: 2013-08-30 11:38:48.141970758 +0200
그러면 cat을 여러 번 실행해도 액세스 시간 값이 전혀 변경되지 않습니다. 이게 무슨 문제야? 이런 행동은 어디서 오는 걸까요? 파일에 대한 모든 cat 작업 후에 액세스 시간이 변경될 것으로 예상합니다. 첫 번째 방문만 표시되는 이유는 무엇입니까?
(noatime 옵션을 사용하여 디스크를 마운트하면 다른 동작이 발생합니다. 모든 고양이는 통계의 액세스 시간을 변경합니다. 여전히 수정 및 변경과 동일합니다)
답변1
relatime
설치 중에 이 옵션을 사용할 수 있습니까? atime
그 사이에 중간 정도가 있어야 하며 noatime
그렇게 하면 많은 I/O가 발생하지 않지만 atime
여전히 비용이 많이 들지는 않습니다 noatime
.
이는 다음과 같은 설명입니다 man 8 mount
.
relatime
Update inode access times relative to modify or change time.
Access time is only updated if the previous access time was
earlier 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 modified.)
Since Linux 2.6.30, the kernel defaults to the behavior provided
by this option (unless noatime was specified), and the
strictatime 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.