要加 noatime,除非依赖 atime 做审计;默认 atime 每次读文件都触发磁盘写入,拖累 ssd 和高 i/o 场景;建议用 noatime 而非 relatime,备份工具需改用 mtime/ctime。

ext4 挂载时要不要加 noatime
要加,除非你真依赖文件访问时间(atime)做审计或监控。默认开启 atime 会导致每次读文件都触发一次磁盘写入,对 SSD 和高 I/O 场景是明显拖累。
实操建议:
-
mount -o remount,noatime /可临时生效;长期生效需改/etc/fstab对应行,把defaults换成defaults,noatime - 别用
relatime—— 它虽比strictatime轻量,但仍有写开销,且现代内核(5.0+)下noatime已足够安全 - 某些备份工具(如
rsnapshot)靠atime判断文件是否被访问过,加了noatime后得改用mtime或ctime逻辑
tmpfs 大小设多少才不翻车
设太小会触发 Write failed: No space left on device,设太大又浪费内存——关键看实际用途,不是拍脑袋填一半 RAM。
实操建议:
-
df -h /dev/shm查当前使用;find /dev/shm -type f -ls 2>/dev/null | head -20看谁在占大文件 - Web 服务器缓存(如 Nginx 的
fastcgi_cache_path)建议上限设为物理内存的 5%~10%,并配max_size限单个缓存区 - 数据库临时表(MySQL 的
tmp_table_size)若跑在 tmpfs 上,必须确保tmpfs容量 ≥ 最大可能的单个临时表(比如SELECT ... GROUP BY大字段) - 不要把
/tmp整体挂成 tmpfs:很多程序(如 Java、gcc)会在里面放多 GB 的中间文件,一不小心就 OOM
dd 测磁盘写入速度为什么总不准
因为默认没绕过页缓存,测的是内存带宽,不是磁盘真实吞吐;而且块大小、是否 sync、是否清 cache 都极大影响结果。
95Shop可以免费下载使用,是一款仿醉品商城网店系统,内置SEO优化,具有模块丰富、管理简洁直观,操作易用等特点,系统功能完整,运行速度较快,采用ASP.NET(C#)技术开发,配合SQL Serve2000数据库存储数据,运行环境为微软ASP.NET 2.0。95Shop官方网站定期开发新功能和维护升级。可以放心使用! 安装运行方法 1、下载软件压缩包; 2、将下载的软件压缩包解压缩,得到we
实操建议:
- 测裸盘写入必须加
oflag=direct绕过缓存:dd if=/dev/zero of=/mnt/test bs=1M count=1024 oflag=direct - 避免被 ext4 日志干扰:临时关 journal(仅测试用)
tune2fs -O ^has_journal /dev/sdX1,或加conv=fdatasync强制落盘 - SSD 要先
hdparm --user-master u --security-set-pass p /dev/sdX再--security-erase清空,否则测出来是“写放大后”的假慢 - NVMe 盘别用
dd测:它单线程,压不出队列深度,改用fio --name=randwrite --ioengine=libaio --rw=randwrite --bs=4k --iodepth=32
lvm 逻辑卷扩容后 df 不更新
因为 lvextend 只扩了块设备大小,没通知文件系统——这是最常卡住人的一步,错误现象就是 lvdisplay 显示 LV 已变大,但 df -h 完全没反应。
实操建议:
- ext4 用
resize2fs /dev/vg/lv(在线执行,不用 umount) - xfs 必须用
xfs_growfs /mount/point,且参数是挂载点,不是设备路径;传错会报XFS ERROR: The filesystem does not have a valid XFS superblock - LVM thin pool 扩容更麻烦:先
lvextendthin pool 本身,再lvconvert --thinpool更新元数据,最后才是逻辑卷 resize - 别跳过
pvs/vgs/lvs三级检查:有时 PV 空间没真正释放(比如用了--alloc anywhere却没新 PV),lvextend会静默失败
文件系统层和块设备层的边界,永远比看起来薄。一个 resize2fs 漏掉,前面所有扩容操作等于白干。









