web-dev-qa-db-ja.com

/ proc / sys / fs / relatime_intervalはどうなりましたか?

1つの答えによると relatime間隔は

echo 60 > /proc/sys/fs/relatime_interval

しかし、私はそのようなファイルを持っていませんか?どこに行ったの?

$ ls /proc/sys/fs
aio-max-nr         file-max          leases-enable  protected_hardlinks
aio-nr             file-nr           mqueue         protected_symlinks
binfmt_misc        inode-nr          nr_open        quota
dentry-state       inode-state       overflowgid    suid_dumpable
dir-notify-enable  inotify           overflowuid    xfs
epoll              lease-break-time  pipe-max-size

Ubuntu 14.04 LTS、カーネル3.16.0-50-汎用

2
ArekBulski

IIRCには、これをRedHatカーネルで構成可能にするRedHatのみのパッチがありました。

Ingo Molnar 同様の提案 2007年に、彼のパッチはマージされませんでした。

現在のカーネルは、2009年3月に commit 11ff6f05f1e836a6a02369a4c4b64757e484adc1 によって導入された固定の1日間隔を使用します。
fs/inode.cからの抜粋:

/* 
 *相対atimeでは、前のatimeが
 * ctimeまたはmtimeより前の場合、または少なくとも1日が
の場合にのみatimeを更新します。 *前回の更新以降に渡されました。
 */
staticint relatime_need_update(struct vfsmount * mnt、struct inode * inode、
 struct timespec now)
 {
 
 if(!(mnt-> mnt_flags&MNT_RELATIME))
 return 1; 
/* 
 * mtimeはatimeより若いですか?はいの場合、atimeを更新します:
 * /
 if(timespec_compare(&inode-> i_mtime、&inode-> i_atime)> = 0)
 return 1; 
/* 
 * ctimeはatimeよりも若いですか?はいの場合、atimeを更新します:
 * /
 if(timespec_compare(&inode-> i_ctime、&inode-> i_atime)> = 0)
 return 1; 
 
/* 
 *前のatime値は1日より古いですか?はいの場合、
 * atime:
 * /
if((long)(now.tv_sec --inode-> i_atime.tv_sec)> = 24 * 60 * 60)
 return 1; 
/* 
 *よし、atimeの更新をスキップできます:
 */
return0; 
} 

これが使用するファイルシステムにも依存するかどうかは完全にはわかりません。による linux-4.2.4/Documentation/filesystems/ocfs2.txtOCFS2atime_quantum.。

2
Jan