带上下文捕获小型基线
使用允许检查你所运营应用的 Linux 账户。这里的命令用于检查状态;它们不会删除文件或调整存储大小。某些目录和日志需要提升权限。请将 /var/lib/field-api, /opt/field-api 和 /opt/first-api 替换为真实的应用路径,并在解读结果之前确认这些路径存在。
记录时间、当前发布版本和活动情况:普通流量、一次上传、一个报表任务或一次部署构建。在可比活动期间再取一次读数。两张不相关的截图可能让健康的机器看起来不一致。如果用户已经受到影响,请先从 应用故障指南 中捕获第一条有用线索,然后再同时做多项变更。
读取可用内存,然后检查工作负载
free -h
ps -eo pid,comm,rss --sort=-rss | head -n 12
在 free中,可用内存估计在不进行交换的情况下可用于新应用的内存。它计算了可回收缓存,因此回答的是与完全未使用的“空闲”内存不同的问题。参见 上游 free 手册。Linux 使用内存进行文件缓存;仅缓存很大并不构成泄漏的证据。 内核内存概述 解释了为什么缓存和应用内存会共存。
示例读数,并非服务器测量结果: 一台小型主机约有 1.9 GiB 可用内存,其中 80 MiB 空闲、850 MiB 可用。仅凭较低的空闲数值并不能成为升级的理由。如果可用内存在一份报表期间反复接近零、请求变慢,并且出现相关的内存分配或内存不足消息,那么这种综合证据值得调查。
该 ps 命令按 KiB 列出各进程 RSS,从大到小排列。RSS 描述的是常驻内存,并不是独占归属的完整核算;共享页可能出现在多个进程中。不要将所有 RSS 数值相加并把结果当作精确的主机使用量。 上游 ps 参考 定义了 RSS 和排序。记录进程名称,以及其占用在工作负载结束后是否回到先前水平。
正在使用的交换空间可能反映较早的活动;它本身并不证明当前存在压力。还要区分主机容量与服务或容器限制。受限进程可能失败,而主机仍有可用内存。在扩大 VPS 规格之前,请检查已配置的限制和故障发生时间。内核的 proc 文件系统参考 记录了这些观察结果背后的内存字段。
找到实际正在被占满的文件系统
df -h / /opt/first-api
df -i / /opt/first-api
第一条命令报告包含这些路径的文件系统上的空间。第二条报告 inode,即文件和目录所需的文件系统记录。包含大量小文件的工作负载可能耗尽 inode,而字节容量仍有剩余。请检查挂载点以及两种容量,而不是把整个 VPS 的大小作为唯一数字。参见 GNU df 手册.
位于单独挂载卷上的路径可能独立于根文件系统而被占满。反过来,列出的两个路径可能属于同一文件系统,因此它们的可用空间不能相加。文件系统预留、配额和存储层也可能影响应用可以写入的内容。单个显示的百分比并不能指出增长的归属者。
将增长归因于日志、上传或构建产物
sudo du -xhd1 /var/lib/field-api
sudo du -xhd1 /var/log
sudo du -xhd1 /opt/field-api
sudo journalctl --disk-usage
GNU du 估计每个目录下已分配的空间。这里 -x 避免跨越到另一个文件系统, -h 使用可读单位,并且 -d1 限制显示的深度。大型目录树仍可能花费时间并产生磁盘活动才能扫描。权限错误意味着视图不完整。参见 GNU du 手册。journal 命令报告日志存储情况,包括活动文件和归档文件,如 journalctl.
将最大的目录与其用途进行比较:
- 日志: 重复错误是否增加了数量,是否配置了轮转?
- 上传: 保留的用户文件是否按预期增长,被放弃的部分上传是否已计入?
- 发布构建产物: 旧构建是否在回滚策略之外不断累积?
- 数据库文件: 数据库自身的工具是否解释了增长和维护需求?
不要删除不熟悉的数据库目录,也不要把大范围的容器卷清理作为调查步骤。先确定归属、保留要求和可恢复副本。如果 df 与目录总计差异很大,请与有经验的操作人员一起检查挂载边界、访问错误以及删除后仍被保持打开的文件;反复删除可见文件可能无法触及被占用的空间。
将读数转化为具体的下一步行动
示例情况: 可用内存保持在舒适水平,但一个上传目录在两个观察日每天增长约 400 MiB。文件系统约有 2 GiB 可用。用剩余空间除以这一短期增长率,并且不考虑运行余量,表明按同样速度大约只有五天。这是规划估算,不是预测,也不是等到那时的安全截止期限;上传和临时工作可能不均衡地到来。
下一步是检查上传保留策略和预期需求,如有依据则规划额外存储,并设置足够早的警报以便采取行动。更多 RAM 并不会解决这一发现。在另一种情况下,部署构建可能造成短暂的内存峰值,而服务本身仍然很小;将构建移出 VPS 可能比永久扩大运行时更有用。
在有依据的变更之后,重复同样的读数和一项应用操作。确认空间确实可用,并且预期数据仍然有效。将删除和调整大小作为有计划、带恢复步骤的操作,而不是对红色数字的自动响应。使用 资源预算指南 将已证明的需求转化为配置选择,并在依赖清理或迁移之前练习 恢复 。
使用的文档
本页的主要参考资料。检查您自己环境中安装版本的文档。