“Linux 8 最低硬件要求”这几个字,我在过去几年里被问过不下二十次,而且几乎每次都跟着同一句吐槽:“官网上写的配置低得离谱,我照着配了一台,装完卡得连终端都敲不利索。”问题不在官网写错了,而在于“最低”这两个字和你理解的“能用”完全不是一回事。最低配置表回答的是“装得上吗”,你要问的是“跑得动吗”,中间隔着的距离,往往就是一次返工和一堆冤枉钱。这篇就把企业级 Linux 8 系列(下面统一叫 EL8)的硬件门槛掰开揉碎讲清楚:从官方的纸面数字,到真实业务场景下的配置基线,再到分区布局、固件设置、虚拟化平台里的隐性坑,最后给一套可以直接照着做的装机流程和一组验证命令。不管你是第一次给测试机装系统的运维新人,还是正在给一批服务器做选型的老手,下面的内容都能直接拿去用。
1. 官方那张最低配置表,和你想的不是一回事
1.1 一张表把硬件门槛说清楚
先把纸面数据摆出来,这是所有讨论的基准。EL8 系列在 x86_64 平台上的官方最低要求,大致是这么几条:64 位处理器、主频 1 GHz 以上;文本模式安装至少 1.5 GB 内存,图形化安装至少 2 GB;最小化安装需要 10 GiB 磁盘空间,带图形界面的安装需要 20 GiB 左右;分辨率建议 1024×768 以上,否则图形安装界面会挤成一团。另外支持的架构不止 x86_64,还包括 64 位 ARM、Power 小端和 IBM Z 大型机,不同架构的门槛略有差别,但普通场景基本用不上。
| 项目 | 官方最低值 | 实际建议值 | 差异原因 |
|---|---|---|---|
| CPU | 64 位,1 GHz 以上 | 4 核起步,主频 2.0 GHz 以上 | 最低值只够跑内核和安装器 |
| 内存(文本安装) | 1.5 GB | 4 GB 起 | 安装器解包阶段内存峰值很高 |
| 内存(图形安装) | 2 GB | 8 GB 起 | 图形栈本身就要吃掉 1GB 以上 |
| 磁盘(最小安装) | 10 GiB | 40 GiB 起 | 日志、缓存、内核更新会持续增长 |
| 磁盘(图形安装) | 20 GiB | 60 GiB 起 | 桌面环境加上常用工具体积翻倍 |
| 显示分辨率 | 1024×768 | 1280×1024 | 低于这个值安装按钮会被裁掉 |
这张表里最容易被误读的是磁盘那两行。10 GiB 是“把系统装进去并且能起来”的数字,不含任何业务数据、不含日志轮转的余量、也不含后续几个版本的内核并存。我见过太多人按 20 GiB 给根分区,跑了半年 /var 就满了,然后服务一个接一个挂掉,排查半天才发现是磁盘。
1.2 最低配的潜台词:只保证装得上,不保证跑得动
为什么官方要给出这么低的数字?原因很实际:发行版厂商验证的是“在这套硬件上,安装介质能引导、能完成分区、能写入文件系统、能重启进入系统”。它验证的不是“你拿这台机器跑数据库会不会卡”。这两个目标的测试成本差了一个量级,所以官方只对前者负责。
可以类比成买车的“最小转弯半径”——它只告诉你车能转过去,没告诉你转过去之后舒不舒服、乘客会不会吐。1.5 GB 内存装 EL8 确实能装完,装完之后你开个 sshd、跑个 crond,free -h看一眼剩余内存大概还有几百兆,感觉还行。可一旦你启动任何稍微像样的服务——一个 Java 应用、一个数据库实例、一个容器运行时——内核就开始疯狂回收页缓存,swap 开始抖动,top里的 load average 一路飙升,你会误以为是 CPU 不够,其实是内存被榨干了。
还有一个更隐蔽的问题:内存不足时,安装器本身可能就崩。这一点在第 6 节会详细说,先记住结论——给 EL8 装机的内存,永远不要贴着 1.5 GB 这条线走。
1.3 三种落地场景的配置基线
抛开纸面数字,按真实用途分三档来定配置,比死抠官方文档靠谱得多。下面这三档是我这几年反复用、基本没翻过车的经验值。
第一档:测试机、临时验证环境。2 核 CPU、2 GB 内存、20 GiB 磁盘,最小化安装,不装图形界面。这类机器生命周期通常只有几天到几周,用来验证一个软件包能不能装、一个脚本能不能跑。2 GB 内存跑最小化安装的系统绰绰有余,但别在上面开容器,开两个就撑不住了。
第二档:常规业务服务器。4 到 8 核、8 到 16 GB 内存、系统盘 60 GiB 加数据盘单独挂载。这是绝大多数中间件、Web 服务、跳板机的配置区间。8 GB 是个比较舒服的临界点,能留出足够的页缓存给文件读写,日志暴涨的时候也不至于立刻触发 OOM。
第三档:数据库、虚拟化宿主机、容器集群节点。16 核起步、64 GB 内存起、系统盘用 SSD 且不低于 100 GiB,数据盘按业务量单独规划。这一档的瓶颈往往不在 CPU 和内存,而在磁盘 IOPS 和网络带宽,第 3 节会展开讲。
提示:上面三档里的“系统盘”都建议单独划分,不要和业务数据混在一个分区里。业务数据写爆了盘,系统还能起来让你登进去处理;混在一起就是整机失联。
2. CPU 与内存:真正决定体验的是这两项
2.1 64 位是硬门槛,指令集是软门槛
CPU 这一项看起来最简单——64 位就行,1 GHz 以上就行。但实际操作中,有两个细节会绊人。
第一是架构匹配。EL8 只有 64 位版本,没有 32 位版本。有些老机器标称支持 64 位扩展,但 BIOS 里默认关着,或者 CPU 型号太老压根不支持。装之前用安装介质引导起来,在引导菜单按 Tab 看一眼,如果提示 “This kernel requires an x86-64 CPU”,那就是硬件层面不满足,别折腾了,换机器。
第二是指令集。官方文档只写了主频,但 EL8 里不少组件在编译时利用了新指令集,比如加密相关的 AES-NI、校验用的 SSE4.2 和 POPCNT。这些指令在 2010 年之后的 CPU 上基本都有,但如果你的机器是更早期的型号,系统能装能跑,只是某些操作会退回到软件模拟路径。表现就是:openssl speed跑出来的数字低得离谱,或者 ssh 握手明显比别的机器慢半拍。这种情况不是故障,是硬件能力不足,只能换。
判断方法很直接,装完系统执行一条命令:
lscpu | grep -E "Model name|Flags" | head -2输出里如果没有aes、sse4_2、popcnt这几个标志,就说明这台机器的指令集偏老。跑轻量服务没问题,跑加密密集或者压缩密集的业务要三思。
2.2 内存怎么算:安装器、内核、业务进程三层叠加
内存的账要分三层算,很多人只算了最后一层。
第一层是安装器。EL8 的安装器在解包软件包阶段内存占用会冲到峰值,文本模式大约 1 GB 出头,图形模式接近 1.8 GB。如果你给虚拟机配 2 GB 内存做图形安装,安装过程中大概率会卡在“正在安装软件包”这一步,进度条纹丝不动,过一会儿安装器直接退出,回到 shell。这不是安装介质坏了,是内存不够。
第二层是内核和基础服务。最小化安装完、什么都不装的情况下,EL8 启动后的常驻内存大约在 300 到 500 MB 之间,取决于是否启用 SELinux、跑多少个 systemd 服务。这部分是固定开销,省不掉。
第三层才是业务进程。这一层没有公式,只能按你实际要跑的东西估。Java 应用按堆内存乘以 1.3 到 1.5 估(堆外还有元空间、线程栈、直接内存);数据库按共享缓冲区加连接数乘以每连接开销估;容器按镜像数量和每个容器的基础内存估。
三层的数字加起来,再往上浮 30% 作为余量,就是你应该配的内存。举个具体例子:一个跑 Java 应用的服务器,JVM 堆设 4 GB,堆外大约 1 GB,系统本身 0.5 GB,加起来 5.5 GB,浮 30% 就是 7.15 GB,向上取整配 8 GB。这个算法粗糙但实用,比拍脑袋强。
2.3 图形界面吃掉的内存比你想的多
很多人对“装个图形界面能多占多少内存”没有概念,觉得顶多几百兆。实测下来不是这样。EL8 装完带图形界面的服务器环境,登录到桌面之后,常驻内存会稳定在 1.2 到 1.8 GB 之间,空闲状态下free -h显示的 used 就是这个数字。
更麻烦的是图形界面的服务进程会持续占用 CPU。即使你没有打开任何窗口,显示管理器、桌面环境的各个组件、各种后台索引服务都在跑,top里能看到一串进程时不时跳出来占几个百分点的 CPU。在一台 2 核的机器上,这些零散的占用会明显影响你跑的性能测试结果,测出来的数字全是噪音。
所以结论很明确:服务器上不要装图形界面。官方给的“图形安装 20 GiB 磁盘、2 GB 内存”指的是安装过程本身,不是装完之后你日常使用的状态。真要图形化管理,用远程的方式连,别在服务器本机上装。
2.4 swap 大小的确定逻辑与实操取值
swap 这件事,网上的说法从“必须两倍内存”到“现代系统不需要 swap”什么都有。EL8 的实际建议是有一套分段公式的,我把它整理成表,直接查就行。
| 物理内存大小 | 建议 swap 大小 | 说明 |
|---|---|---|
| ≤ 2 GB | 内存的 2 倍 | 小内存机器靠 swap 撑住峰值 |
| 2 GB ~ 8 GB | 等于内存大小 | 兼顾峰值和休眠需求 |
| 8 GB ~ 64 GB | 4 GB 到 8 GB | 内存够了,swap 主要是兜底 |
| > 64 GB | 4 GB | 只做应急,避免长时间换页 |
这套公式背后的逻辑是:小内存机器物理内存不够用,swap 是实际参与工作的;大内存机器物理内存充裕,swap 只在极端情况下被用到,配太大反而是浪费磁盘。实际部署时我一般会再补一条经验——如果这台机器上跑的是数据库或者对延迟敏感的服务,swap 宁可配小一点甚至关掉,因为一旦开始换页,响应时间会从毫秒级掉到秒级,比直接报错还难排查。
配好之后不要忘了调vm.swappiness。EL8 的默认值是 30,比老版本低,但对服务器来说还可以再降。把下面两行写进/etc/sysctl.d/99-swap.conf:
vm.swappiness = 10 vm.vfs_cache_pressure = 50第一条让内核尽量少用 swap,第二条让内核更倾向于保留目录和 inode 缓存。改完执行sysctl -p /etc/sysctl.d/99-swap.conf生效,用cat /proc/sys/vm/swappiness确认。
3. 磁盘:10GB 起步,但分区布局错了照样出事
3.1 那 10GB 到底被谁吃了
先算一笔账,看看最小化安装的 EL8 里,10 GiB 是怎么被分掉的。基础系统包大约 1.5 到 2 GiB,这其中包括内核、systemd、glibc、基础命令行工具;SELinux 策略和相关的包大约 200 MB;包管理器的元数据缓存大约 300 MB;剩下的空间留给你装额外软件和放日志。
看起来还有很大余量对不对?但实际跑起来,增长点比比皆是。/var/log下的日志每天都在写,即使配了 logrotate,压缩后的历史日志也会累积;/var/cache/dnf里的包缓存默认不会自动清理,装了几次软件之后轻松上 GB;每次内核更新会在/boot留一个新内核加一个 initramfs,旧的不清理就一直堆着;容器运行时和镜像更是吃盘大户,一个基础镜像就几百兆。
我的经验值是:系统盘按最小化安装给 40 GiB,带业务软件的给 60 GiB,跑容器的给 100 GiB。这个数字不是拍脑袋,是“装完之后跑一年不用管磁盘”的余量。磁盘空间这种事,事前多给 20 GiB 成本几乎为零,事后扩容却要停机。
3.2 /boot 与 /boot/efi 的尺寸为什么必须放大
/boot和/boot/efi这两个分区,是装机时最容易被分得太小的地方,因为很多老教程还在用十几年前的数值。
/boot在老系统上给 200 MB 就够,但 EL8 的内核和 initramfs 体积明显变大,一个内核加一个 initramfs 大约 100 到 150 MB,而系统默认会保留若干个旧版本以便回滚。给 200 MB 的话,第二次内核更新就会报“空间不足”,更新失败,然后你被卡在一个很尴尬的状态——新内核没装上,旧内核还在,但下次更新还是失败。建议值 1 GiB,这是官方推荐值,也是实践中真正够用的数字。
/boot/efi的问题更微妙。官方文档写的是“至少 200 MiB”,但同时推荐 600 MiB。为什么差这么多?因为 UEFI 分区用的是 FAT32 文件系统,簇大小和分区表结构会浪费一部分空间;而且如果这台机器上还要装别的系统做多引导,每个系统都会往这个分区里放自己的引导文件。给 600 MiB 是稳妥的选择,给 200 MiB 的话,装完系统再想加个引导项就可能失败。
注意:
/boot/efi的文件系统类型必须选EFI System Partition(也就是 vfat/FAT32),不能选 xfs 或 ext4。选错了安装器会报错,而且这个错误在安装后期才出现,前面的分区操作全部白做。
3.3 /var 单独分区的实战理由
/var要不要单独分区,争论了很多年。我的立场很明确:服务器上必须单独分。
理由只有一个但足够充分——/var是整台机器上最可能失控的目录。日志写满、包缓存堆积、容器镜像暴涨、数据库的临时文件、邮件队列积压,全都在这底下。如果/var和/在同一个分区,/var满了就是根分区满了,后果是系统无法写入任何文件:日志写不进去、服务起不来、连ssh登录都可能失败,因为登录过程要写/var/log/wtmp和/var/run下的文件。
单独分了区,/var满了顶多是日志停了、服务报警,但系统还在,你能登进去,能删文件,能处理问题。这个差别在故障现场是决定性的。
分区大小的建议:常规服务器 20 GiB 起,跑容器的给 50 GiB 起。同时配好日志轮转,把/etc/logrotate.conf里的保留周期按实际需求调,别用默认值。容器场景还要额外配置镜像清理策略,不然镜像层会一直堆。
3.4 块设备类型对安装时长和运行性能的影响
同样是 100 GiB 空间,放在机械盘、SATA SSD 和 NVMe 上,体验完全是三个世界。
安装阶段最明显。在机械盘上装最小化系统,解包软件包那一步大概要 15 到 25 分钟,磁盘指示灯狂闪,iostat里%util一直是 100%。换到 SATA SSD,同样的安装 5 到 8 分钟搞定。NVMe 上能压到 3 分钟左右。这个差距不是线性的,因为安装过程大量是小文件随机写,正是机械盘最不擅长的场景。
运行阶段的差距集中在两处。一是日志写入,高并发场景下每秒几千条日志,机械盘的写延迟会让日志成为瓶颈,甚至拖慢主业务。二是软件包操作,dnf update在机械盘上跑十几分钟是常态,SSD 上两分钟完事。
如果预算有限必须用机械盘,那就至少做两件事:一是把/var/log的写入频率降下来,调整应用的日志级别,别什么都往磁盘刷;二是给系统盘做 RAID1,两块盘冗余,避免单盘故障导致整机报废。这两条能缓解但不能消除性能问题,能上 SSD 就上 SSD。
3.5 LVM 与 XFS 的默认选择逻辑
EL8 的安装器默认用 LVM 管理磁盘,文件系统默认用 XFS。这个组合不是随便定的,背后有明确理由。
LVM 的价值在于在线扩容。业务跑起来发现磁盘不够,如果当初用的是 LVM,加一块盘、扩一下卷组、扩一下逻辑卷、再扩一下文件系统,全程不停机。如果当初是裸分区,那就得停机、备份、重新分区、恢复数据,一套流程下来几个小时。装机的五分钟决定后面几小时的 downtime,这笔账很好算。
XFS 成为默认文件系统,主要是因为它在大文件和高并发写入上的表现,而且支持在线扩容(注意:XFS 只能扩不能缩,这点和 ext4 不同)。EL8 上的 XFS 支持的最大文件系统和单文件尺寸都是 EB 级别,普通业务根本碰不到上限。日常运维里唯一要注意的是 XFS 的xfs_growfs命令用法——扩完逻辑卷之后必须执行它,否则df -h看到的还是老数字。
# 扩完逻辑卷之后扩展 XFS 文件系统 lvextend -L +20G /dev/mapper/rootvg-rootlv xfs_growfs / df -Th /最后一条df -Th是必须的,用来确认扩容真的生效了。我见过有人只跑了lvextend就去跟业务方说扩好了,结果文件系统没扩,业务照样写不进去。
4. 固件、外设与虚拟化平台上的隐性门槛
4.1 UEFI 与 Secure Boot 的检查顺序
EL8 支持传统 BIOS 引导和 UEFI 引导两种方式,但推荐 UEFI。区别在于:UEFI 引导需要 EFI 分区,支持 Secure Boot,启动速度也快一些;传统 BIOS 引导用 MBR 分区表,有 2 TB 磁盘上限。
装之前先确认固件状态。开机进 BIOS 设置界面,找这几个选项:
- Boot Mode:确认是 UEFI 还是 Legacy。如果选了 UEFI,安装时就必须有 EFI 分区;选 Legacy 则不需要。两者混着来会装不上。
- Secure Boot:默认可能是开启的。EL8 的官方内核是签过名的,开着能正常引导;但如果你要装第三方内核模块(比如某些 RAID 卡驱动、显卡驱动),Secure Boot 会拦截未签名的模块,导致驱动加载失败。这种情况要么关掉 Secure Boot,要么给模块签名。
- CSM / Compatibility Support Module:兼容模式,开启后 UEFI 会模拟传统 BIOS。建议关掉,开着容易导致引导行为混乱。
还有一个容易被忽略的点:固件版本。老固件在 UEFI 引导上有各种奇怪的 bug,比如识别不到 EFI 分区、引导项写入失败、重启之后引导顺序被重置。装之前去厂商的支持页面看一眼有没有固件更新,有就刷一下。这一步花十分钟,可能省掉后面两小时的排查。
4.2 网卡、RAID 卡驱动的适配判断
EL8 的内核里集成了大量常见硬件的驱动,绝大多数服务器网卡插上就能认。但有几种情况需要提前确认。
服务器板载网卡基本都没问题,主流的千兆、万兆芯片都在支持列表里。独立的万兆或 25G 网卡要看具体型号,部分较新的芯片需要额外安装驱动包,安装系统时网卡认不出来,就没法通过网络安装,只能走本地介质。
硬件 RAID 卡是另一个坑点。EL8 能识别大多数主流 RAID 卡的逻辑卷,但如果卡比较新或者是某些定制型号,安装器可能看不到它管理下的磁盘。表现是进入分区界面,磁盘列表是空的,或者只显示了没接在 RAID 卡上的那几块盘。这种情况需要提前准备好驱动盘(Driver Update Disk),在安装启动时加载。
判断方法很实用:先在目标机器上用任意一个 Linux 的 Live 环境引导起来,跑lspci -nn | grep -i -E "ethernet|raid|storage",把设备 ID 记下来,然后去发行版的硬件兼容列表里对一遍。这一步在正式装机之前做,比装到一半发现驱动缺失强得多。
4.3 跑在虚拟机里时的资源分配陷阱
现在很多 EL8 是装在虚拟机里的,这时候“硬件要求”就变成了“虚拟硬件怎么分配”,有几个坑很典型。
第一个坑是虚拟 CPU 的核数不等于物理核数。给虚拟机配 8 个 vCPU,如果宿主机本身只有 8 个物理核还给别的虚拟机分了,那这 8 个 vCPU 是抢着用的,性能表现会远低于预期。分配 vCPU 的原则是:单台虚拟机的 vCPU 数量不要超过宿主机的物理核数,集群里所有虚拟机的 vCPU 总和不要超过物理核数的 2 到 3 倍。
第二个坑是内存超分。宿主机内存 64 GB,开了 10 台各配 8 GB 的虚拟机,总和 80 GB,靠的是内存气球和页共享。轻负载下没问题,一旦所有虚拟机同时开始干活,宿主机开始换页,所有虚拟机的响应时间一起崩。对延迟敏感的服务,内存不要超分。
第三个坑是虚拟磁盘的分配方式。精简置备的磁盘看起来很大,实际占用按需增长,方便但有风险——所有虚拟机同时写满,宿主机存储就炸了。厚置备的磁盘一次性占满空间,安全但浪费。我的做法是:系统盘用厚置备保证稳定,数据盘用精简置备方便扩展,同时给存储池设一个告警阈值。
第四个坑是虚拟网卡型号。默认的虚拟网卡模拟老式千兆网卡,性能有限。改成半虚拟化网卡(不同平台叫法不同)性能能提升几倍,但需要系统里装了对应的驱动。EL8 默认带这类驱动,改之前确认一下,改完用ethtool看一下速率协商结果。
4.4 显卡与图形化安装的兼容细节
服务器一般用板载显卡,装系统时如果不装图形界面,显卡基本不参与工作。但要装图形界面,显卡就会成为一个变量。
EL8 的图形安装界面需要显卡支持基本的帧缓冲。绝大多数服务器板载显卡都满足,但有些老服务器或者特殊型号的显卡,在图形安装界面上会出现花屏、分辨率不对、鼠标指针不显示的问题。遇到这种情况不用慌,安装介质在引导菜单里提供了“基本图形模式”选项,用这个模式进入,界面会退化成低分辨率的通用驱动,能完成安装。
装完之后如果要长期用图形界面,还需要装对应的显卡驱动。开源驱动一般开箱可用,闭源驱动要看厂商是否提供了适配当前内核版本的包。服务器场景下我一般建议直接用开源驱动,稳定优先,图形性能不是重点。
5. 从裸机到可交付:一套完整的装机配置流程
5.1 装之前的硬件清点与固件准备
正式动手之前的准备工作,决定了后面是顺风顺水还是反复返工。我习惯按下面这个顺序走一遍,大概二十分钟。
第一步,确认硬件清单。打开机箱或者看资产记录,记录下 CPU 型号和核数、内存条数量和单条容量、磁盘数量和接口类型、网卡型号、RAID 卡型号。把这些信息写进一个表格,后面装机时对照着看,避免出现“以为有 64 GB 内存结果只插了 32 GB”这种事。
第二步,检查固件版本和设置。进 BIOS 确认引导模式、Secure Boot 状态、虚拟化支持(如果要跑虚拟机)、磁盘控制器模式(AHCI 还是 RAID)。固件有更新就刷,特别是机器闲置了很久没开过机的那种。
第三步,确认引导介质。用dd或者专门的写盘工具把镜像写到 U 盘,写完之后校验一下校验和。这一步看着多余,但介质写坏的情况比你想象的多。
第四步,准备好网络信息。IP 地址、网关、DNS、主机名,这些在安装过程中要填。如果环境里有 DHCP,可以先不填,装完再配。
第五步,想清楚分区方案。别在安装界面里临时想,提前写在纸上或者文档里,安装时照着填。下一节给一个可以直接抄的方案。
5.2 分区方案的直接抄作业版本
下面这套方案适用于 UEFI 引导、单系统、常规业务服务器的场景,用的是 LVM + XFS。磁盘按 200 GiB 算,其他容量按比例调整。
| 挂载点 | 大小 | 文件系统 | 分区类型 | 说明 |
|---|---|---|---|---|
| /boot/efi | 600 MiB | EFI System Partition | EFI | UEFI 引导必需 |
| /boot | 1 GiB | xfs | 标准分区 | 内核和 initramfs |
| / | 30 GiB | xfs | LVM 逻辑卷 | 根文件系统 |
| /var | 50 GiB | xfs | LVM 逻辑卷 | 日志和缓存 |
| /home | 10 GiB | xfs | LVM 逻辑卷 | 用户目录 |
| swap | 8 GiB | swap | LVM 逻辑卷 | 按内存大小调整 |
| /data | 剩余空间 | xfs | LVM 逻辑卷 | 业务数据 |
几个说明。/boot和/boot/efi必须是标准分区,不能放在 LVM 上,因为引导加载器读不了 LVM 里的文件。/data放在最后,用剩余空间,方便后续扩容。如果这台机器要跑容器,把/var调到 80 GiB 以上,或者单独分一个/var/lib/containers。
在安装界面的“手动分区”里,操作顺序是:先建 EFI 分区和/boot标准分区,再建 LVM 卷组,然后在卷组里建各逻辑卷。安装器里有一键创建 LVM 的选项,但自动创建的分区布局往往不符合需求,还是手动来靠谱。
5.3 安装界面里几个关键勾选项
安装界面里有几个选项,默认值和实际需求经常不一致,需要手动改。
软件选择这一页,默认可