Skip to content

Both.org

News, Opinion, Tutorials, and Community for Linux Users and SysAdmins

Primary Menu
  • About Us
  • Computers 101
    • Hardware 101
    • Operating Systems 101
  • End of 10 Events
    • Wake Forest, NC, — 2025-09-20
  • Linux
    • Why I use Linux
    • The real reason we use Linux
  • My Linux Books
    • systemd for Linux SysAdmins
    • Using and Administering Linux – Zero to SysAdmin: 2nd Edition
    • The Linux Philosophy for SysAdmins
    • Linux for Small Business Owners
    • Errata
      • Errata for The Linux Philosophy for SysAdmins
      • Errata for Using and Administering Linux — 1st Edition
      • Errata for Using and Administering Linux — 2nd Edition
  • Open Source Resources
    • What is Open Source?
    • What is Linux?
    • What is Open Source Software?
    • The Open Source Way
  • Write for us
    • Submission and Style guide
    • Advertising statement
  • Downloads
  • Home
  • Tweak your system performance with ‘noatime’
  • Command Line
  • Linux
  • Storage Management
  • System Administration

Tweak your system performance with ‘noatime’

Turn off “access time” to make a slight but noticeable improvement on system performance.
Jim Hall April 11, 2024 6 minutes read
car-penguin-drive-linux-yellow

Whenever I install a new Linux system, whether that’s Linux on my desktop computer or a server distribution on my Raspberry Pi, I have a list of tasks that I do every time. These are habits I developed from my time, long ago, as a Unix systems administrator: backup the files, wipe the system, reinstall from scratch, restore the files, and install any extra applications.

I also make a few tweaks to the system to improve performance. One such tweak is atime, one of the three key timestamps that Linux tracks on every file.

Understanding file timestamps

You probably already know about the “Last Modified” timestamp on files and directories. You can see this output when you run the ls -l (long) command to view files ina directory; you’ll also see the “Last Modified” timestamp in any file manager. But behind the scenes, Linux actually tracks several timestamps on files and directories:

  • mtime: When the file was last modified
  • ctime: When the file was last changed
  • atime: When the file was last accessed

You can use the stat command to view these details for any file. Here’s one example for the Apache web server configuration file on my personal web server in my home office:

$ stat /etc/httpd/conf/httpd.conf 
  File: /etc/httpd/conf/httpd.conf
  Size: 12303       Blocks: 32         IO Block: 4096   regular file
Device: 253,0   Inode: 37749479    Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Context: system_u:object_r:httpd_config_t:s0
Access: 2024-03-31 00:00:01.198883654 -0500
Modify: 2023-12-31 18:12:27.216328620 -0600
Change: 2023-12-31 18:12:27.225328576 -0600
 Birth: 2023-12-31 18:12:27.215328625 -0600

This file was created on December 31, 2023. That’s when I installed Linux on this Raspberry Pi. I haven’t needed to modify the httpd.conf file since then, so the file has remained unchanged since then. But I recently viewed it, to look for a particular setting on the web server; by looking in the file using cat, Linux updated the “Access Time” or atime timestamp.

If I copy the httpd.conf file to a backup file, all of the timestamps change, indicating that this is a new file:

$ cp /etc/httpd/conf/httpd.conf /tmp/httpd.bak
$ stat /tmp/httpd.bak 
  File: /tmp/httpd.bak
  Size: 12303       Blocks: 32         IO Block: 4096   regular file
Device: 0,37    Inode: 253         Links: 1
Access: (0644/-rw-r--r--)  Uid: ( 1000/   jhall)   Gid: ( 1000/   jhall)
Context: unconfined_u:object_r:user_tmp_t:s0
Access: 2024-04-05 12:13:04.247401082 -0500
Modify: 2024-04-05 12:13:04.249401072 -0500
Change: 2024-04-05 12:13:04.249401072 -0500
 Birth: 2024-04-05 12:13:04.247401082 -0500

But if I rename the file, Linux doesn’t update atime or mtime because I didn’t access the file’s contents (atime) or otherwise modify the text (mtime):

$ mv /tmp/httpd.bak /tmp/httpd.tmp
$ stat /tmp/httpd.tmp
  File: /tmp/httpd.tmp
  Size: 12303       Blocks: 32         IO Block: 4096   regular file
Device: 0,37    Inode: 253         Links: 1
Access: (0644/-rw-r--r--)  Uid: ( 1000/   jhall)   Gid: ( 1000/   jhall)
Context: unconfined_u:object_r:user_tmp_t:s0
Access: 2024-04-05 12:13:04.247401082 -0500
Modify: 2024-04-05 12:13:04.249401072 -0500
Change: 2024-04-05 12:14:24.902015034 -0500
 Birth: 2024-04-05 12:13:04.247401082 -0500

Notice that the “Last Changed” time (ctime) has been updated, because I changed the file’s name.

Why ‘atime’?

The “Last Accessed” (atime) is useful for certain legacy programs. For example, biff is an old mail notification program that alerts you when you have a new email message waiting for your attention. You don’t see many people using biff in modern times, but in the days when mailboxes were local to the workstation you were using, biff was quite common.

biff compared the “Last Modified” time (when the Inbox was last updated with a new email message) and the “Last Accessed” time (the last time you read your email). If mtime was more recent than atime, then biff knew that an email had arrived since you last looked at your Inbox, and let you know. The Mutt email client does something similar to alert you to new email messages.

The “Last Accessed” time is also useful if you need to do filesystem maintenance or performance tweaking. On large Linux systems, administrators may need to know what’s being accessed more frequently so they can tune performance appropriately. This might involve moving less-frequently used files to slower, high-density storage and more-frequently used files to faster disks.

But desktop systems and other “personal use” computers don’t need the “Last Accessed” time, so there’s been some argument to not use it at all. For example, Linux kernel developer Ingo Molnar commented about atime and filesystem performance:

It’s kind of weird that every Linux desktop and server is hurt by a noticeable IO performance slowdown due to the constant atime updates, while there’s just two real users of it: tmpwatch [which can be configured to use ctime so it’s not a big issue] and some backup tools. (Ok, and mail-notify too i guess.) Out of tens of thousands of applications.

But some people use a few programs that rely on atime so Linux keeps updating the atime feature.

Tweaking performance with ‘noatime’

If you want to get a boost in desktop performance, you can disable atime on your system. You can also use this method on servers, but be careful that you do not run software that relies on the “Last Accessed” time. In my experience, modern desktop environments don’t use atime so I disable it on the Linux systems I use.

To disable atime, add the noatime filesystem option when your system mounts the storage for your computer. I usually add mine after the defaults entry in /etc/fstab:

UUID=93402b76-22d5-4533-ad1e-b8b94ccb24c0 /                       btrfs   subvol=root,compress=zstd:1,x-systemd.device-timeout=0,noatime 0 0
UUID=aa7dd33b-bd3c-4b12-a2e1-6cb0bf28a2e6 /boot                   ext4    defaults,noatime        1 2
UUID=C594-12B1          /boot/efi               vfat    umask=0077,shortname=winnt 0 2
UUID=93402b76-22d5-4533-ad1e-b8b94ccb24c0 /home                   btrfs   subvol=home,compress=zstd:1,x-systemd.device-timeout=0,noatime 0 0

This feature takes effect the next time you reboot. Whenever I reinstall my desktop system at home with a new version of Linux, the first thing I do after installing is add noatime, then reboot before I apply any system updates. Running the first system update after installing a fresh Linux will update many packages and files. Using noatime usually gives a slight but noticeable performance improvement on my computer

However, if you use very fast storage such as a high-performance SSD or NVME for your root and home filesystems, you may not notice as much of an improvement.

Tags: Linux SysAdmin

Post navigation

Previous: How to debug a web server error with ‘wget’
Next: Is Linux Really Secure?

Related Stories

connections_wires_sysadmin_cable
  • Linux
  • Networking
  • Router

How to Make your Linux Box Into a Router

David Both April 29, 2026
f44-01-day-cropped
  • Fedora
  • Linux
  • Upgrades

Fedora 44 Released

David Both April 28, 2026
command_line_prompt
  • Command Line
  • Linux
  • Programming

Writing a replacement seq command

Jim Hall April 27, 2026

System upgrades this Sunday, May 3

Tools illustrationFedora 44 was released this week and I’ve upgraded all my systems except for the two that directly affect Both.org. I’ll be upgrading the hosts for my server and firewall to Fedora 44 this Sunday afternoon, May 3.

Both.org will be down for most of the afternoon for these upgrades.

Thanks for your patience.

Random Quote

Investment in reliability will increase until it exceeds the probable cost of errors, or until someone insists on getting some useful work done.

— Gilb’s laws of unreliability

Why I’ve Never Used Windows

On February 12 I gave a presentation at the Triangle Linux Users Group (TriLUG) about why I use Linux and why I’ve never used Windows.

Here’s the link to the video: https://www.youtube.com/live/uCK_haOXPFM 

Why there’s no such thing as AI

Last October at All Things Open (ATO) I was interviewed by Jason Hibbits of We Love Open Source. It’s posted in the article “Why today’s AI isn’t intelligent (yet)“.

Technically We Write — Our Partner Site

Our partner site, Technically We Write, has published a number of articles from several contributors to Both.org. Check them out.

Technically We Write is a community of technical writers, technical editors, copyeditors, web content writers, and all other roles in technical communication.

Subscribe to Both.org

To comment on articles, you must have an account.

Send your desired user ID, first and last name, and an email address for login (this must be the same email address used to register) to subscribe@both.org with “Subscribe” as the subject line.

You’ll receive a confirmation of your subscription with your initial password as soon as we are able to process it.

Administration

  • Log in
  • Entries feed
  • Comments feed
  • WordPress.org

License and AI Statements

Both.org aims to publish everything under a Creative Commons Attribution ShareAlike license. Some items may be published under a different license. You are responsible to verify permissions before reusing content from this website.

The opinions expressed are those of the individual authors, not Both.org.

You may not use this content to train AI.

 

Advertising Statement

Both.org does not sell advertising on this website.


Advertising may keep most websites running—but at Both.org, we’re committed to keeping our corner of the web ad-free. Both.org does not sell advertising on the website. Nor do we offer sponsored articles at this time. We’ll update this page if our position on sponsorships changes.

We want to be open about how the website is funded. Both.org is supported entirely by David Both and a few other dedicated individuals.

 

 

Copyright © All rights reserved. | MoreNews by AF themes.