HCRM博客

CentOS如何查看磁盘,查看磁盘空间用什么命令?

在CentOS系统中进行磁盘管理是保障服务器稳定运行的核心环节,要高效、准确地查看磁盘状态,不能仅依赖单一命令,而需要建立一套从宏观空间概览到微观文件追踪,再到底层硬件健康监测的多维查看体系,掌握dfdulsblksmartctl等核心工具的组合使用,能够迅速定位空间占用异常、排查性能瓶颈并预防硬件故障,这是系统管理员必须具备的专业技能。

基础空间概览:df命令的深度应用

查看磁盘使用情况的首选命令是df(Disk Free),它主要用于显示文件系统的磁盘空间使用情况,在实际运维中,直接使用df往往信息量过大且不易读,推荐使用df hT组合。

CentOS如何查看磁盘,查看磁盘空间用什么命令?-图1

  • h参数:以人类可读的格式(如GB、MB)显示容量,避免换算的困扰。
  • T参数:显示文件系统类型(如ext4、xfs、overlay),这对于判断系统是采用传统的ext4还是高性能的xfs文件系统至关重要,特别是在容器化环境中,识别overlay文件系统有助于排查Docker存储占用问题。

除了查看剩余空间,关注Use%(使用率)是关键,当某个分区使用率超过90%时,系统性能可能会因碎片化而下降,甚至导致服务无法写入日志,使用df i查看Inode(索引节点)使用情况常被忽视,在CentOS中,如果存储了大量小文件,即便磁盘空间未满,Inode耗尽也会导致“No space left on device”的错误,定期检查IUse%是专业运维的必要习惯。

目录级深度分析:du命令的精准定位

df显示磁盘空间紧张时,需要使用du(Disk Usage)命令层层下钻,定位具体占用空间的目录,最常用的组合是du sh /*,用于快速列出根目录下各个文件夹的大小。

  • s参数:显示总计大小,不列出子目录,避免输出刷屏。
  • h参数:同样以人类可读格式显示。

为了找出占用空间最大的前10个目录或文件,可以结合管道命令:du sh * | sort hr | head n 10,这里sort hr表示按人类可读数字进行逆序排序,这种排查方式在处理日志文件暴涨(如/var/log下nginx或tomcat日志)或备份文件残留时极其高效,值得注意的是,在执行du命令时,如果目录挂载了其他文件系统,建议加上exclude参数排除挂载点,以免重复计算或遍历非目标路径,浪费系统I/O资源。

磁盘结构与挂载详情:lsblk与blkid

了解磁盘的物理分区结构和挂载关系,对于扩容和故障恢复至关重要。lsblk命令默认以树状图形式列出所有块设备,直观地展示磁盘名称、大小、类型、挂载点以及读写状态。

相比于fdisk l输出的原始信息,lsblk更易读,它能清晰显示LVM(逻辑卷管理)关系,例如PV(物理卷)、VG(卷组)、LV(逻辑卷)的层级结构,在CentOS 7及以上版本中,系统默认使用LVM和XFS,理解lsblk的输出是进行在线扩容的前提。

CentOS如何查看磁盘,查看磁盘空间用什么命令?-图2

blkid命令用于查看块设备的UUID(通用唯一识别码)和文件系统类型,在配置/etc/fstab实现开机自动挂载时,使用UUID而非设备名(如/dev/sdb1)是更专业、更稳定的做法,因为设备名可能会在插入新硬盘后发生变化,而UUID是永久的标识符。

硬件健康与I/O性能:smartctl与iostat

查看磁盘不仅看用了多少,还要看“身体好不好”和“跑得快不快”。smartctl是SMART(SelfMonitoring, Analysis and Reporting Technology)工具的控制器,用于监控硬盘健康状态。

使用smartctl H /dev/sda可以快速查看硬盘健康状态是否通过,更详细的检查可以使用smartctl a /dev/sda,查看SMART属性表,重点关注ID 5(重映射扇区数)、ID 197(当前待映射扇区数)和ID 198(脱机无法校正的扇区数),如果这些数值非零,通常意味着硬盘即将出现物理坏道,数据迁移刻不容缓。

在性能方面,iostat(属于sysstat包)是分析磁盘I/O瓶颈的神器,使用iostat x 1命令,可以每秒刷新一次磁盘的详细I/O统计,关键指标包括:

  • %util:设备利用率,如果长期接近100%,说明磁盘I/O已经饱和。
  • await:I/O请求的平均等待时间(包括队列时间和服务时间),数值越大,系统响应越慢。
  • svctm:平均服务时间,数值越小说明磁盘性能越好。

常见场景的解决方案与优化建议

在实际生产环境中,经常会遇到“空间未满但报错”或“写入极慢”的问题,针对Inode满的情况,如果是小文件过多,解决方案是使用find命令批量删除或归档旧文件,find /path/to/dir type f name "*.tmp" mtime +7 delete

CentOS如何查看磁盘,查看磁盘空间用什么命令?-图3

针对写入慢的问题,如果iostat显示%util极高但w/s(写操作每秒)并不高,可能是磁盘随机读写性能差,或者文件系统本身存在碎片,对于XFS文件系统,可以使用xfs_fsr进行碎片整理,对于SSD硬盘,确保开启TRIM功能(通过fstrim命令或定时任务)以维持长期写入性能。

合理的日志轮转策略是防止磁盘被撑爆的防线,配置/etc/logrotate.conf,限制日志文件的大小和保留天数,是自动化运维的重要组成部分。

相关问答

Q1:在CentOS中,为什么磁盘空间还有剩余,但系统提示“No space left on device”?A1: 这种情况通常是因为Inode(索引节点)耗尽导致的,在Linux文件系统中,每个文件和目录都需要一个Inode,如果磁盘上存在大量的小文件(例如数万个零碎的缓存文件),即使这些文件占用的总数据量(Block)不大,也会耗光所有的Inode资源,解决方法是使用df i命令确认Inode使用率,然后使用find命令查找并删除特定目录下的小文件,或者调整文件系统的Inode数量(这通常需要重新格式化,因此预防性的清理更为重要)。

Q2:如何在不重启服务器的情况下,让系统识别新插入的硬盘?A2: 在较旧的CentOS版本中,可能需要扫描SCSI总线,但在现代CentOS 7及以上版本中,通常只需重新扫描主机总线适配器,首先使用ls /sys/class/scsi_host/查看主机适配器,假设是host0,则执行echo "" > /sys/class/scsi_host/host0/scan,如果是虚拟机环境,有时直接在虚拟化平台层面重新扫描SCSI控制器更有效,识别后,可以通过lsblk确认新设备是否已出现,随后即可进行分区、格式化和挂载操作。 能帮助您全面掌握CentOS磁盘查看的技巧,如果您在操作过程中遇到特殊的报错信息,或者有更复杂的存储环境需要分析,欢迎在评论区留言,我们一起探讨解决方案。

本站部分图片及内容来源网络,版权归原作者所有,转载目的为传递知识,不代表本站立场。若侵权或违规联系Email:zjx77377423@163.com 核实后第一时间删除。 转载请注明出处:https://blog.huochengrm.cn/pc/93356.html

分享:
扫描分享到社交APP
上一篇
下一篇
发表列表
请登录后评论...
游客游客
此处应有掌声~
评论列表

还没有评论,快来说点什么吧~