服务器磁盘配置怎么看?三个命令加一个思路,帮你彻底搞懂
服务器磁盘相关配置,核心就两件事:一是看清硬件底细,二是摸透使用状态。 无论你是刚接手一台二手服务器,还是排查线上告警,只要掌握Linux下几个关键命令,再懂一点硬件常识,就能在五分钟内对磁盘状况了如指掌。
第一步:用系统命令摸清家底
进入服务器后,最先要做的不是看品牌,而是用系统自带命令直接读取磁盘信息。 这些命令在绝大多数Linux发行版上都能直接运行,不需要额外安装软件。
查看磁盘容量和挂载点:df
df -h 是你最常用的命令。-h 参数会自动转换单位,让输出结果更易读,它会列出所有已挂载的文件系统,包括总容量、已用、可用空间以及挂载点。关注点在于“已用百分比”和“挂载点”。 如果发现某个分区使用率超过80%,就需要留意了。
查看磁盘设备列表:fdisk 或 lsblk
fdisk -l能列出所有磁盘设备的基本信息,包括设备名(如/dev/sda)、扇区大小、总容量等,但注意,它需要root权限,且输出信息比较原始。lsblk是更友好的选择,它以树状结构展示磁盘和分区的关系,比如系统盘是/dev/sda,下面有sda1、sda2两个分区,而数据盘是单独的一块/dev/sdb。这个命令能帮你快速判断服务器有几块磁盘,每块磁盘的分区情况如何。
查看磁盘品牌和型号:smartctl 或 lshw
想知道磁盘是三星还是希捷,是SSD还是机械盘,需要借助更底层的工具。 smartctl -i /dev/sda 可以读取磁盘的SMART信息,其中包含型号、序列号、固件版本等关键数据,如果没有安装smartmontools,可以用 lshw -class disk 查看,但输出不如smartctl详细。
行业共识认为,在排查磁盘故障时,SMART信息是首先应该查看的数据来源,它记录了磁盘的自我监测记录。
第二步:区分磁盘类型,判断性能底线
不同场景对磁盘配置的要求天差地别。 一台数据库服务器和一台备份服务器,对磁盘的诉求完全不同,在查看配置时,首先要明确你的服务器在承担什么角色。
机械硬盘(HDD)、固态硬盘(SSD)与NVMe SSD的识别
- 机械硬盘型号中常带有
ST(希捷)或WD(西部数据),转速多为 7200转 或 5400转。 - 普通SATA SSD型号中常带有
SSD字样,接口为SATA。 - NVMe SSD型号中常带有
NVMe或PCIe字样,接口为M.2或U.2。
如果你在 smartctl -i 输出中看到 Rotation Rate 一项,机械盘会显示具体转速(如7200 rpm),SSD则会显示 Solid State Device。 这是最直接的区分方法。
查看磁盘读写速度:hdparm 或 dd
想验证实际性能,可以用 hdparm -t /dev/sda 测试读取速度,或者用 dd 命令做简单的写入测试。 但要注意,dd 测试会写入真实数据,务必在非生产环境或临时目录下进行。
典型案例: 某台服务器 df -h 显示 /data 分区占用已满,但 du -sh /data/ 却找不到大文件。此时大概率是删除了文件但进程仍持有句柄,导致空间未释放。 用 lsof | grep deleted 找到对应进程并重启,空间就会恢复正常。
服务器磁盘空间满了怎么办?排查思路与清理实操
磁盘空间告警是最常见的运维事故。 处理思路有三步:定位大文件、排查疑似残留、清理日志与缓存。
定位大文件的三个命令
du -sh /目录/ | sort -rh | head -10:查看该目录下前10个最占空间的子目录或文件。find / -xdev -size +100M -exec ls -lh {} ;:查找整个根分区下超过100MB的文件。ncdu工具:交互式界面,用方向键浏览目录大小,效率极高,但需要安装。
清理日志与缓存
- 系统日志存放在
/var/log/下,journalctl --vacuum-size=200M可以清理Systemd日志,只保留200MB大小。 - 包管理器缓存:
yum clean all(CentOS)或apt-get clean(Ubuntu)可以清理下载的软件包缓存。 - 临时文件
/tmp下的内容可以直接删除,但不要删除/tmp目录本身。
查看磁盘分区信息与inode
有时磁盘空间没满,但提示“No space left on device”,这可能是inode耗尽了。 用 df -i 查看inode使用率,大量小文件(如PHP会话文件、邮件队列)会耗尽inode,即使空间还有剩余,清理方式是找到对应目录并删除无用的海量小文件。
服务器磁盘配置怎么选才合理?场景决定方案
这里需要结合业务场景来谈配置。 与其问“什么配置最好”,不如问“我的业务需要什么性能”。
不同业务场景的磁盘选型建议
| 业务类型 | 推荐配置 | 理由 |
|---|---|---|
| Web前端、静态资源 | SATA SSD 或 NVMe SSD | 读取频繁,但写入量小,容量要求中等 |
| 数据库(MySQL/PostgreSQL) | NVMe SSD,建议组RAID 1 | 高随机读写性能,数据可靠性要求高 |
| 大数据分析(Hadoop) | 大容量HDD,建议组RAID 6 | 顺序读写为主,容量需求大,成本敏感 |
| 备份服务器 | HDD + 磁带库 | 写入大文件,读写频率低,对速度不敏感 |
在这类场景下,磁盘性能瓶颈往往比CPU和内存更早出现。 对于数据库服务器,建议将日志文件和数据文件放在不同的物理磁盘上,以减少IO竞争。
查看磁盘RAID级别
RAID配置属于阵列卡层面,操作系统不一定能直接看到。 常见查看方式:
- 使用
MegaCli(LSI阵列卡)或
sas3ircu(LSI SAS控制器)。 cat /proc/mdstat查看Linux软RAID状态。- 如果服务器是品牌机(如Dell、HPE),开机时按
Ctrl+R或Ctrl+C进入阵列卡配置界面查看。
举个例子: 一台戴尔R740服务器,配了4块2.4TB SAS硬盘,做了RAID 5。fdisk -l 看到的是一块逻辑磁盘(约7.2TB),而物理上是4块独立硬盘。这种配置适合普通文件存储,但对数据库来说,RAID 5的写入性能并不理想,RAID 10是更常见的选择。
磁盘配置常见问题速查
以下是三个高频问题,能覆盖多数排查场景。
为什么 df -h 显示的容量比磁盘标称容量小?
这是因为厂商按1GB=1000MB计算,而操作系统按1GB=1024MB计算。 一块标称480GB的SSD,在系统中显示约447GB,这是正常现象,文件系统本身也会占用少量空间。
如何查看磁盘的扇区大小和队列深度?
扇区大小用 fdisk -l 或 blockdev --getss /dev/sda 查看。 队列深度(queue depth)是衡量磁盘并行处理能力的指标,可以用 iostat -x 查看 avgqu-sz 列,对于NVMe SSD,队列深度通常大于32,而SATA机械盘通常只有1-2。
服务器磁盘开机不识别,怎么快速定位?
先从硬件报警灯看起,再做系统排查。 如果阵列卡指示灯报警,说明物理盘故障,如果指示灯正常但系统看不到盘,检查阵列卡配置是否丢失,在Linux下,lsblk 看不到磁盘时,可以用 lspci | grep -i raid 确认阵列卡型号,再对照厂商文档排查驱动问题。
磁盘配置不是一成不变的,它随着业务增长而动态调整。 从命令查看到性能分析,再到容量规划,这套方法论能帮你应对大多数场景,磁盘是服务器中最慢的部件,也是最容易成为瓶颈的部件,定期检查磁盘健康状态、空间使用率和IO性能,比任何高深的理论都更实在。
首发原创文章,作者:王坚,如若转载,请注明出处:https://idctop.com/article/566895.html




