
If you’ve ever managed a busy Linux server, you’ve probably noticed how I/O bottlenecks can make your system feel sluggish – even when CPU and memory usage look fine. I recently faced this problem on a Debian box running Nginx, PHP-FPM, and MySQL / MariaDB. The fix turned out to be surprisingly simple: using tmpfs for temporary directories and tweaking a few kernel parameters.
1. Identify the resource issue Bottleneck
Running iostat -x 1 showed my /var/lib/mysql drive constantly pegged at 100% utilization, while CPU load stayed low. Classic disk-bound performance issue.
I checked swap usage:
# swapon –show
# free -h
The system was swapping occasionally — not good for performance-critical workloads.
2. Use tmpfs for Cache and Temporary Files
Linux allows you to use part of your RAM as a fast, volatile filesystem. Perfect for things like cache and sessions.
I edited /etc/fstab and added:
tmpfs /tmp tmpfs defaults,noatime,mode=1777,size=1G 0 0
tmpfs /var/cache/nginx tmpfs defaults,noatime,mode=0755,size=512M 0 0
Then:
# mount -a
Immediately, I noticed fewer disk I/O spikes. Nginx’s cache hits were lightning-fast, and PHP temporary files were written in memory instead of SSD.
3. Tune Kernel Parameters
Adding these lines to /etc/sysctl.conf helped reduce swapping and improve responsiveness:
vm.swappiness=10
vm.vfs_cache_pressure=50
Then apply:
# sysctl -p
4. Use tmpfs for MySQL / MariaDB tmpdir (Optional)
If you have enough RAM, move MySQL’s temporary directory to tmpfs:
# mkdir -p /mnt/mysqltmp
# mount -t tmpfs -o size=512M tmpfs /mnt/mysqltmp
# chown mysql:mysql /mnt/mysqltmp
Then set in /etc/mysql/my.cnf: / /etc/mysql/mariadb.cnf
tmpdir = /mnt/mysqltmp
This dramatically speeds up large sorts and temporary table creation.
5. Monitor the Effects and tune up if necessery
After applying these changes, iostat showed disk utilization dropping from 95% to under 20% under the same workload.
Average response times from Nginx dropped by around 30–40%, and the server felt much more responsive.
However other cases might be different so it is a good idea to play around with tmpfs side according to your CPU / Memory system parameters etc. and find out the best values that would fit your Linux setup best.
Short rephrasal
tmpfs is one of those underused Linux features that can make a real-world difference for sysadmins and self-hosters. Just remember that data in tmpfs disappears after reboot, so only use it for volatile data (cache, temp files, etc.).
If you’re running a VPS or small dedicated box and looking for a quick, low-cost performance boost — give tmpfs a try. You might be surprised how much smoother your system feels.
More helpful Articles
Tags: cnf, data, filesystem, How to, Linux Server Speed, mnt, response times, Short, tmpfs, use







