网站突然变慢、后台打不开、接口响应时间变长时,很多站长第一反应是怀疑程序出错。但在 Ubuntu 服务器上,CPU、内存、磁盘和进程占用异常,同样会直接影响网站运行。本篇教程先从系统资源入手,带你一步步查看服务器当前状态,判断问题是不是出在资源不足或异常进程上。
一、为什么要先看系统资源
网站变慢、接口响应慢、后台打不开、数据库连接异常,很多时候并不是程序本身立刻出错,而是服务器资源已经接近上限。CPU 长时间满载、内存不足、磁盘空间耗尽、进程异常占用,都会让服务器表现得“不稳定”。
Ubuntu 服务器排查问题时,建议先看系统资源。这样可以快速判断问题大方向:是 CPU 计算压力大,还是内存不够,或者磁盘空间已经满了。
如果还不熟悉 Ubuntu 基础操作,可以先参考站内的 Ubuntu安装和登录教程,确认能正常登录服务器后再继续排查。
二、查看服务器负载和 CPU 状态
服务器负载可以先用 top 或 uptime 查看。
常用命令:
uptime
top
uptime 会显示服务器运行时间、在线用户数和 load average。top 可以实时查看 CPU、内存和进程占用。
1、load average 怎么看
load average 通常会显示 1 分钟、5 分钟、15 分钟的平均负载。它不是简单等于 CPU 使用率,而是系统正在运行和等待运行的任务数量。
如果服务器是 1 核 CPU,load 长时间高于 1,就说明任务压力偏高;如果是 4 核 CPU,load 长时间高于 4,就需要进一步检查进程。
2、CPU 占用高先看进程
在 top 界面中,可以看到哪些进程占用 CPU 较高。常见情况包括:
- Web 服务请求过多;
- 数据库查询压力大;
- 定时任务异常循环;
- 某个脚本执行时间过长;
- 程序出现死循环。
不要看到 CPU 高就直接重启服务器。先记录占用高的进程名称、PID 和运行用户,再判断是否可以安全处理。
三、查看内存使用情况
查看内存可以使用:
free -h
这个命令会显示总内存、已用内存、空闲内存、缓存和 swap。
1、不要只看 free
Ubuntu 会把一部分内存用于缓存,所以 free 数字很小不一定代表内存真的不够。更应该关注 available 字段,它更接近当前系统还能给程序使用的内存。
2、swap 占用过高要注意
如果 swap 长时间占用很高,说明物理内存可能不足。网站访问量上来后,服务器会频繁使用磁盘当临时内存,性能会明显下降。
这时可以检查:
- 是否有异常进程占用内存;
- PHP、数据库、Java 等服务是否配置过高;
- 服务器配置是否已经无法支撑当前业务;
- 是否需要优化程序或升级配置。
四、查看磁盘空间和目录占用
磁盘空间不足会导致日志无法写入、数据库异常、上传失败、缓存错误,甚至影响系统服务启动。
查看磁盘分区:
df -h
查看某个目录占用:
du -sh /var/log
du -sh /www
du -sh /home
如果想查看当前目录下各文件夹大小:
du -h --max-depth=1
1、优先检查日志和备份目录
磁盘突然变满,常见原因包括:
- 日志文件过大;
- 网站备份文件堆积;
- 数据库备份未清理;
- 上传目录异常增长;
- 临时文件没有删除。
如果不熟悉 Ubuntu 目录结构,可以先看站内的 Ubuntu文件目录介绍,再判断哪些目录可以清理,哪些目录不能随便动。
2、不要盲目删除系统文件
磁盘满了不能随便删 /usr、/etc、/var/lib 这类目录里的文件。更安全的做法是先确认文件来源,再清理日志、缓存、临时文件或旧备份。
重要文件删除前应先备份,生产服务器尤其要谨慎。
五、查看进程和端口占用
如果某个服务异常,可以查看进程:
ps aux
按关键词过滤:
ps aux | grep nginx
ps aux | grep mysql
查看端口监听情况可以使用:
ss -tulnp
这个命令能看到哪些服务正在监听哪些端口。比如网站常见端口是 80 和 443,SSH 常见端口是 22,具体端口以实际配置为准。
六、排查时建议记录结果
系统资源排查不是只看一眼命令输出。建议记录:
- 排查时间;
- 当前负载;
- CPU 占用最高的进程;
- 内存 available;
- 磁盘使用率;
- 异常服务名称;
- 已执行的处理动作。
这样后续问题再次出现时,可以对比变化,而不是每次重新猜原因。
FAQ
Q1:Ubuntu CPU 占用高一定是网站访问量大吗?
A:不一定。访问量大可能导致 CPU 占用高,但脚本异常、定时任务循环、数据库慢查询也可能造成 CPU 长时间满载。
Q2:磁盘满了可以直接删除日志吗?
A:不建议直接删除。应先确认日志文件来源和是否仍被服务占用,再按安全方式清理或轮转日志。
Q3:free 命令里 free 很低是不是内存不够?
A:不一定。Ubuntu 会使用内存做缓存,更应关注 available 字段和 swap 是否持续占用较高。

