跳到正文

诊断命令

SysAdmin Crisis 的十条诊断命令中,九条不花任何代价、即时响应,hint 则要扣分。它们合起来构成排查过程。

最后更新:

诊断免费且即时。运行它们没有预算成本,没有时间成本,也不扣分——这意味着永远没有理由凭猜测行动。

命令提供的信息
status服务器群概览:每台服务器、其状态以及全局指标
top某台主机的进程列表,按 CPU 和 RAM 排序
logs某台主机的最近日志行;-f 实时跟随
netstat连接概要以及每个来源地址的请求速率
df每个挂载点的磁盘用量
db_stat数据库状态:活动查询、锁和等待时间
ping主机是否应答,以及耗时多久
man单条命令的手册页
help所有可用命令
hint针对当前事件的提示

哪条命令回答哪个问题

服务器群的大多数故障模式都对应一项指标,而每项指标都只有一条命令看得到:

  • 到底有没有问题?——status。它是唯一能一次显示整个服务器群的命令,通常也是正确的第一步。
  • 是哪个进程?——top,附主机参数。进程名、PID、CPU 和 RAM 占比。进程在这里不再是无名之辈。
  • 谁在连接?——netstat。每个来源地址的请求速率,地址正是借此从一行日志变成一个目标。
  • 问题出在磁盘吗?——df。每个挂载点一行,一条命令就能把整个类别纳入或排除。
  • 数据库在等待吗?——db_stat。查看锁和查询等待时间的唯一途径;游戏中没有别的东西看得到它们。
  • 那台主机还活着吗?——ping。以毫秒计的延迟,或者超时。

hint 是例外

hint 扣的是 15 分,而不是预算。它是唯一有代价的诊断命令,在困难难度下完全禁用,在教程中免费。

先读后打

这里没有任何命令会改变世界。事件正在升级时,列表中的每条诊断命令都可以连着运行,除了秒数之外不付出任何代价——而秒数才是真正的货币,因为速度加分从事件出现的那一刻起就开始衰减。