1. 环境准备篇:服务器选型与操作系统初始化

做运维这些年,我见过太多项目栽在第一步。服务器还没上线,坑就埋下了。说白了,环境准备就像盖楼打地基——地基歪了,后面装修得再好也白搭。

这一章,咱们聊聊服务器选型和系统初始化。我会把踩过的坑、总结的经验,一股脑倒出来。

1.1 服务器选型:别光看配置单

选服务器,很多人只看 CPU 核数和内存大小。其实不然。我遇到过一家公司,买了高配服务器,结果业务跑起来卡得要命。查了半天,发现是磁盘 IO 成了瓶颈。

选型时,你得想清楚几个问题:

  • 业务类型:是计算密集型,还是 IO 密集型?
  • 存储需求:SSD 还是 HDD?RAID 级别怎么选?
  • 网络带宽:内网还是公网?峰值流量多大?
  • 扩展性:未来 3 年业务增长,服务器能扛住吗?
我的建议:如果预算允许,优先选 SSD + 大内存的机型。磁盘 IO 往往是系统瓶颈,SSD 能省很多心。

1.2 操作系统安装:最小化原则

系统安装,我坚持一个原则:最小化安装。不需要的包,一个都不装。为什么?

  • 减少攻击面——少一个包,少一个漏洞
  • 降低维护成本——升级、打补丁都省事
  • 提升性能——系统越干净,跑得越稳

我个人习惯用 CentOS 或 Ubuntu LTS 版本。生产环境别追新,稳定第一。

注意:千万别装桌面环境!我曾经见过有人给生产服务器装了 GNOME,结果内存被吃掉一大块,业务直接崩了。

1.3 内核参数调优:别让默认值坑了你

系统装完,第一件事就是调内核参数。默认参数是为通用场景设计的,生产环境根本不够用。

我整理了一份常用参数表,你直接拿去用:

参数 默认值 推荐值 说明
net.core.somaxconn 128 65535 TCP 连接队列长度,高并发场景必须调大
net.ipv4.tcp_tw_reuse 0 1 允许复用 TIME_WAIT 状态的连接
vm.swappiness 60 10 降低 swap 使用倾向,优先用内存
fs.file-max 系统默认 1000000 最大文件句柄数,高 IO 场景必调

举个例子,net.core.somaxconn 这个参数。默认 128,意味着同一时间只能有 128 个连接在排队。如果业务量稍微大点,新连接就直接被丢了。我遇到过线上服务间歇性超时,查了半天,就是这玩意儿搞的鬼。

调优命令:

# 临时生效
sysctl -w net.core.somaxconn=65535

# 永久生效,写入 /etc/sysctl.conf
echo "net.core.somaxconn = 65535" >> /etc/sysctl.conf
sysctl -p

1.4 文件系统配置:选对格式,少走弯路

文件系统这块,坑也不少。我见过有人用 ext2 跑数据库,结果断电后数据全丢了。嗯,这里要注意:

  • ext4:稳定,适合普通业务
  • xfs:大文件、高并发场景首选
  • btrfs:功能多,但生产环境慎用

我个人习惯用 xfs。为什么?它支持在线扩容,而且对大文件处理效率高。数据库、日志存储这些场景,xfs 表现很好。

避坑指南:我曾经在项目中用了 btrfs,结果遇到一次内核 panic,文件系统直接挂了。从那以后,生产环境我再也不敢用 btrfs 了。

1.5 磁盘分区与挂载:规划要长远

分区这事儿,看似简单,但规划不好后面很麻烦。我见过有人把所有数据放一个分区,结果日志把磁盘写满,系统直接宕机。

我的分区方案:

  • /boot:512MB,放内核和引导文件
  • /:50GB,系统根分区
  • /var:100GB,日志和临时数据
  • /data:剩余空间,业务数据

挂载时,记得加 noatime 参数。这个参数能减少磁盘写入,提升性能。

小技巧:用 LVM 管理磁盘。这样以后扩容方便,不用重新分区。

1.6 网络配置:别忽略 MTU 和 DNS

网络配置,很多人只配个 IP 就完事了。其实 MTU 和 DNS 也很关键。

  • MTU:默认 1500,但内网环境可以调到 9000(巨帧)。能提升大文件传输效率。
  • DNS:别用默认的。我建议用 114.114.114.114 或 8.8.8.8,解析速度快,稳定性好。

我曾经遇到过一个问题:内网传输大文件,速度死活上不去。查了半天,发现是 MTU 没调。改成 9000 后,速度直接翻倍。

知识体系总览

下面这张图,把环境准备的核心逻辑串起来了。你一看就明白:

环境准备知识体系 环境准备核心流程 服务器选型 操作系统安装 内核参数调优 文件系统配置 磁盘分区与挂载 网络配置 关键原则 • 最小化安装 • 参数按需调优 • 文件系统选稳定版 常见陷阱 • 默认参数不够用 • 分区规划不合理 • 忽略 MTU 和 DNS

你看,环境准备不是简单装个系统就完事。从选型到网络配置,每一步都得想清楚。跳过任何一步,后面都可能出大问题。

总结一下:

  • 选型看业务,别只看配置
  • 系统最小化安装,减少风险
  • 内核参数必须调,默认值不够用
  • 文件系统选 xfs 或 ext4,别追新
  • 分区规划要长远,用 LVM 管理
  • 网络配置别忽略 MTU 和 DNS

好了,环境准备篇就聊到这儿。记住一句话:前期多花一小时,后期少熬一个通宵。