noatime和nodiratime的設定問題
相信對效能、最佳化這些關鍵字有興趣的朋友都知道在 Linux 下面掛載檔案系統的時候設定 noatime 可以顯著提高檔案系統的效能。預設情況下,Linux ext2/ext3 檔案系統在檔案被訪問、建立、修改等的時候記錄下了檔案的一些時間戳,比如:檔案建立時間、最近一次修改時間和最近一次訪問時間。因為系統執行的時候要訪問大量檔案,如果能減少一些動作(比如減少時間戳的記錄次數等)將會顯著提高磁碟 IO 的效率、提升檔案系統的效能。Linux 提供了 noatime 這個引數來禁止記錄最近一次訪問時間戳。
給檔案系統掛載的時候加上 noatime 引數能大幅提高檔案系統效能:
# vi /etc/fstab
/dev/sda1 / ext3 defaults,noatime,nodiratime 0 0
devpts /dev/pts devpts gid=5,mode=620 0 0
proc /proc proc defaults 0 0
/dev/sda2 swap swap defaults,noatime 0 0
修改設定後只需要重新掛載檔案系統、不需要重啟就可以應用新設定:
# mount -o remount /
# mount
/dev/sda1 on / type ext3 (rw,noatime,nodiratime)
proc on /proc type proc (rw)
devpts on /dev/pts type devpts (rw,gid=5,mode=620)
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
網上很多資料都提到要同時設定 noatime 和 nodiratime,不知道這個結論來自哪裡,其實不需要像設定 noatime 那樣設定 nodiratime,最可靠的資料應該是原始碼,VPSee 查了一下原始碼,發現在核心原始碼 linux-2.6.33/fs/inode.c 檔案裡有一個 touch_atime 函式,可以看出如果 inode 的標記位是 NOATIME 的話就直接返回了,根本就走不到 NODIRATIME 那裡去,所以只設定 noatime 就可以了,不必再設定 nodiratime.
void touch_atime(struct vfsmount *mnt, struct dentry *dentry)
1405{
1406 struct inode *inode = dentry->d_inode;
1407 struct timespec now;
1408
1409 if (inode->i_flags & S_NOATIME)
1410 return;
1411 if (IS_NOATIME(inode))
1412 return;
1413 if ((inode->i_sb->s_flags & MS_NODIRATIME) && S_ISDIR(inode->i_mode))
1414 return;
1415
1416 if (mnt->mnt_flags & MNT_NOATIME)
1417 return;
1418 if ((mnt->mnt_flags & MNT_NODIRATIME) && S_ISDIR(inode->i_mode))
1419 return;
...
1435}
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29096438/viewspace-1767069/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- shmmax的設定問題HMM
- scrapy 一些設定和問題
- linux 檔案系統設定noatime 大幅提高效能Linux
- STM32埠IO方向設定問題的IO方向設定問題
- zotero的同步設定問題
- SQL 問題與解答:備份和設定SQL
- jiveHome設定問題
- [求助]Hibernate自增長主鍵的設定問題和事務問題
- Django的時區設定問題Django
- 關於jive的設定問題
- 防火牆設定的小問題防火牆
- Windows 下設定archive的問題WindowsHive
- Android APN的設定問題薦Android
- SQL Server的安全設定問題解答SQLServer
- Jdon的安裝問題:管理員賬號設定的問題!
- CISCO設定密碼的命令的問題密碼
- tomcat高訪問設定問題Tomcat
- tomcat 5.5.8和apache soap2.3.1的路徑設定問題TomcatApache
- 無障礙閱讀的設定問題。
- 設定autotrace的報錯問題解決
- 設定flex後子元素設定寬度失效問題Flex
- 無線WiFi設定和使用遇到問題及注意事項WiFi
- input框type=file設定cursor:pointer的問題
- 解決PowerDesigner中DBMS設定的問題
- Eclipse檔案編碼設定的問題Eclipse
- 熱點塊問題中pctfree的設定
- 關於環境變數設定的問題變數
- 請教關於jive版主設定的問題。
- 關於控制檯編碼的設定問題
- Linux 下kernel.shmmax 的設定問題LinuxHMM
- Sublime Text2 Svn設定問題
- Oracle歸檔引數設定問題Oracle
- CentOS 7的網路配置以及設定主機名和繫結IP的問題CentOS
- 設定修改linux主機名遇到的問題Linux
- SGA設定過大造成的系統效能問題
- weblogic5+hibernate+struts的設定問題Web
- and-design-vue設定dropdownClassName無效的問題Vue
- 24.SAP WEBIDE本地版 常見設定和問題清單WebIDE