Linux 查看磁盘、内存和进程:df、du、free、ps、top 入门
Linux 服务器入门 · 第 10 篇 / 共 18 篇
“文件写不进去”和“程序运行慢”可能来自不同原因。先读取状态,把问题描述准确,再决定要不要清理文件或调整程序。
本篇命令在 Ubuntu 服务器上执行,先只查看,不删除文件、不结束陌生进程。
文件写不进去,先看所在的文件系统
mkdir -p ~/linux-practice
cd ~/linux-practice
df -h .df 查看文件系统空间,. 限定为当前目录所在的文件系统,-h 使用易读单位。重点看可用空间、使用比例和挂载位置,不要把整台机器所有挂载项相加当成一个硬盘。
还想知道自己的练习文件占了多少:
du -sh ~/linux-practicedu 查看目录占用,-s 汇总,-h 使用易读单位。它与 df 的统计对象不同:一个看目录内容,一个看文件系统;已删除但仍被程序打开的文件等情况,也可能让两者结果不一致。
磁盘容量未满仍可能写入失败,例如配额、权限或可用 inode 耗尽。必要时用 df -i . 查看 inode,但不要看到一个报错就直接删系统日志。
程序变慢,再看内存
free -h先看 Mem 行的 available,它估计不进行交换时可供新程序使用的内存。free 很低不一定代表内存耗尽,系统可能使用了缓存;缓存也不全都能立即回收。Swap 是交换空间,不能直接当作同等性能的物理内存。
这一条只能提供一个时刻的状态。程序偶发被终止,还需要结合发生时间和系统日志,不能仅凭一次输出认定内存不足。
找到进程,看看它在做什么
ps -u "$USER" -o pid,comm,%cpu,%mem这里列出当前用户的进程,并挑出 PID、命令名、CPU 和内存比例。PID 是系统分配的进程标识,不是固定程序编号;重启后可能变化。ps 的 CPU 数值也不等于当前瞬时采样。
动态观察可用:
top先看表头和进程行,用 q 退出。多核机器、不同显示模式和采样方式会影响 CPU 数字;这一节先要求找到自己的程序,不需要逐项解释所有字段。
把现象写成别人能判断的话
“服务器卡了”提供的信息太少。可以改成:“任务在 09:20 左右变慢;工作目录所在文件系统可用 8 GB;当时内存 available 约 1 GB;目标进程 PID 为某值。”数字以自己的现场输出为准,这里只是描述方式。
保留命令、时间、相关输出。不要贴整台共享服务器的所有进程和他人路径。自己练习:查看练习目录占用与所在文件系统剩余空间,解释为什么它们不是同一个数。
字段定义可查服务器上的 man df、man du、man free、man ps、man top,以及 procps-ng 项目文档。
资源持续不足时,再评估配置
程序偶尔变慢、一次 free 输出中的空闲内存很低,都不足以判断需要升级。先结合任务发生时的多次观察和日志,确认问题来自资源限制,而不是路径、权限、软件配置或其他原因。
如果实际任务持续受内存、CPU 或存储限制,把任务类型、数据规模和资源占用记录整理好,再了解适合这类任务的服务器配置。这些记录比一句“服务器卡了”更有助于判断需要多少资源。