xfs文件系统通过组配额(gquota)模拟项目级配额:需挂载时启用gquota,创建专用组并设setgid使目录下文件自动继承该组,再用xfs_quota -c "report -g"等命令按gid统计用量。

XFS 文件系统本身不支持直接按“项目目录”设置配额,所谓“项目级监控”其实是通过组配额(gquota)机制模拟实现的:把项目目录及其所有文件归属到一个专用组,并确保新文件自动继承该组(靠 setgid),再用 xfs_quota -c "report" 查看该组的实时用量。整个过程不依赖路径,只认 GID。
确认挂载时已启用组配额
配额功能必须在文件系统挂载时开启,否则 report 无数据:
- 运行
mount | grep xfs,检查目标挂载点(如/data)是否含gquota - 若没有,编辑
/etc/fstab,在对应行挂载参数中追加,gquota,例如:/dev/sdb1 /data xfs defaults,gquota 0 0
- 执行
sudo mount -o remount /data生效
创建专用组并绑定项目目录
XFS 配额不识别路径,只统计属组为某 GID 的文件:
Linux 性能分析与调优专家,覆盖 CPU、内存、磁盘 I/O、网络、内核参数、编译优化、容器/K8s。适用场景:系统卡顿/高负载、内存不足/OOM/Swap 高、CPU 异常/iowait 高。
- 新建组(如
proj-api):sudo groupadd proj-api - 修改目录属组并设 setgid(保证新建文件自动归属):
sudo chgrp -R proj-api /data/project-api sudo chmod -R g+s /data/project-api
- (可选)将开发成员加入该组:
sudo usermod -aG proj-api devuser
用 report 命令查看组级物理消耗详情
执行以下命令,输出包括已用块、inode 数、软硬限制、宽限期等完整状态:
- 查所有组配额:
sudo xfs_quota -x -c "report -g" /data - 更清晰格式(带单位、块和 inode):
sudo xfs_quota -x -c "report -gbih" /data - 只查某组(如
proj-api):sudo xfs_quota -x -c "quota -g proj-api" /data
实现接近实时的监控
report 是快照式命令,需配合 shell 工具达成“实时感”:
- 每 5 秒刷新一次并过滤目标组:
watch -n 5 'sudo xfs_quota -x -c "report -gbih" /data | grep proj-api'
- 定期写入日志供后续分析:
sudo xfs_quota -x -c "report -gbih" /data >> /var/log/xfs-quota.log
- 若批量修改过文件属组,发现统计滞后,可手动触发更新:
sudo xfs_quota -x -c "scan -g" /data
不复杂但容易忽略










