Linux查看系统负载,uptime和w命令详解
前言
服务器卡不卡,先看负载。Linux看系统负载最常用的就是uptime和w命令,一行输出就能看到系统跑了多久、现在有多少人登录、负载高不高。本文讲怎么看这些信息。
一、uptime命令
直接敲
uptime
输出:
07:39:01 up 35 days, 2:15, 2 users, load average: 0.08, 0.03, 0.00
逐个解释
| 字段 | 含义 |
|---|---|
| 07:39:01 | 当前时间 |
| up 35 days, 2:15 | 系统运行了35天2小时15分 |
| 2 users | 当前有2个用户登录 |
| load average: 0.08, 0.03, 0.00 | 系统负载,分别是1分钟、5分钟、15分钟 |
负载怎么看
load average三个数:
- 第一个:最近1分钟的平均负载
- 第二个:最近5分钟的平均负载
- 第三个:最近15分钟的平均负载
判断标准:
| 负载值 | 状态 |
|---|---|
| 0.00-0.70 | 正常 |
| 0.70-1.00 | 注意一下 |
| 1.00-2.00 | 有点高 |
| 2.00以上 | 很高了,要排查 |
注意: 负载和CPU核数有关。比如4核CPU,负载4.00才是满。
看CPU核数
nproc
# 4
或者:
cat /proc/cpuinfo | grep processor | wc -l
# 4
判断: 负载小于CPU核数就是正常的。
二、w命令
直接敲
w
输出:
07:39:01 up 35 days, 2:15, 2 users, load average: 0.08, 0.03, 0.00
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
root pts/0 1.2.3.4 07:35 5.00s 0.03s 0.00s w
www pts/1 5.6.7.8 07:30 8:12 0.01s 0.01s -bash
逐个解释
第一行和uptime一样。
下面是登录用户列表:
| 字段 | 含义 |
|---|---|
| USER | 用户名 |
| TTY | 终端类型(pts/0表示远程连接) |
| FROM | 从哪个IP登录的 |
| LOGIN@ | 登录时间 |
| IDLE | 空闲时间 |
| JCPU | 整个终端所有进程用的CPU时间 |
| PCPU | 当前进程用的CPU时间 |
| WHAT | 当前在跑什么命令 |
三、其他查看命令
who命令
看谁登录了:
who
输出:
root pts/0 2026-10-09 07:35 (1.2.3.4)
www pts/1 2026-10-09 07:30 (5.6.7.8)
last命令
看登录历史:
last
输出最近登录的记录。
lastb命令
看失败的登录:
lastb
四、负载高了怎么排查
第一步:看CPU
top
按P按CPU排序,看哪个进程占CPU多。
第二步:看内存
free -h
看内存够不够,有没有用swap。
第三步:看磁盘
df -h
看磁盘满了没。
第四步:看IO
iostat
看磁盘IO高不高。
五、常见坑
坑1:负载高不代表CPU高
负载包括:
- 正在用CPU的进程
- 等着CPU的进程
- 等着磁盘IO的进程
可能是磁盘IO高,CPU不高,但负载也高。
坑2:负载和核数对比
1核CPU,负载1.0就是满了。
4核CPU,负载4.0才是满了。
别光看数字,要看CPU核数。
坑3:三个负载数的区别
- 1分钟高,5分钟、15分钟不高:可能是突然有个进程跑了一下
- 15分钟都高:说明系统一直很忙
总结
记住:
uptime看系统运行时间和负载w看谁登录了、在干嘛- 负载三个数:1分钟、5分钟、15分钟
- 负载要和CPU核数对比
- 负载高了用top、free、df、iostat排查
最常用:
uptime # 看负载
w # 看谁在登录
top # 看哪个进程占CPU
遇到问题加QQ23979811 协助处理
Linux怎么查看当前在线用户,踢出用户命令
前言
服务器是多人用的,有时候需要看看谁在线上,或者把某个挂机的用户踢下线。Linux 自带了几个命令可以查看当前在线用户,本文就讲一下怎么用。
查看在线用户
who 命令
最简单的命令,直接看谁在线:
who
输出类似:
root pts/0 2026-10-06 09:00 (192.168.1.100)
zhangsan pts/1 2026-10-06 09:15 (192.168.1.101)
lisi pts/2 2026-10-06 09:20 (192.168.1.102)
每一列分别是:用户名、终端、登录时间、来源 IP。
w 命令
比 who 更详细,还能看到用户在干嘛:
w
输出类似:
09:30:00 up 2:15, 3 users, load average: 0.00, 0.01, 0.05
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
root pts/0 192.168.1.100 09:00 5.00s 0.03s 0.01s w
zhangsan pts/1 192.168.1.101 09:15 15.00s 0.02s 0.00s bash
lisi pts/2 192.168.1.102 09:20 1:30 0.01s 0.01s top
多了几列:
LOGIN@:登录时间IDLE:空闲时间JCPU:该终端所有进程用的 CPU 时间PCPU:当前进程用的 CPU 时间WHAT:当前在跑什么命令
users 命令
只看用户名,重复的就重复显示:
users
输出:
root zhangsan lisi
last 命令
看历史登录记录:
last
会列出最近登录过的用户,包括用户名、终端、来源 IP、登录时间、退出时间、总共在线多久。
踢出用户
pkill 踢出某个用户
比如把 zhangsan 踢下线:
pkill -u zhangsan
这会杀掉 zhangsan 的所有进程,直接把他踢下线。
杀掉某个终端
先看 who,找到要踢的人的终端,比如 pts/1:
who
然后杀掉这个终端:
pkill -t pts/1
或者:
kill -9 $(ps -t pts/1 -o pid=)
踢所有非 root 用户
警告!这会把其他所有登录的人都踢掉:
pkill -u -root
常见坑
坑1:把自己踢下线了
执行 pkill 的时候把自己的终端也杀掉了,SSH 直接断开。
解决: 踢人的时候确认一下自己的终端,别把自己踢了:
who am i
先看自己是哪个终端,然后踢别人的时候避开自己的终端。
坑2:踢了用户但他又登回来了
踢了之后用户马上又登上来了,没用。
解决: 如果是恶意用户,直接改密码或者封 IP:
# 改密码
passwd 用户名
# 封 IP
firewall-cmd --permanent --add-rich-rule="rule family='ipv4' source address='192.168.1.101' reject"
firewall-cmd --reload
坑3:看不到图形界面登录的用户
who 只看终端登录的,图形界面登录的可能看不到。
解决: 用 last 看历史记录,或者看 /var/log/auth.log(CentOS 是 /var/log/secure)。
总结
查看在线用户的常用命令:
| 命令 | 作用 |
|---|---|
who |
看谁在线 |
w |
看谁在线 + 在干嘛 |
users |
只看用户名 |
last |
看历史登录记录 |
pkill -u 用户名 |
踢出某个用户 |
pkill -t pts/1 |
杀掉某个终端 |
日常运维用 w 就够了,信息最全。
遇到问题加QQ23979811 协助处理
Linux查看系统运行时间,uptime和w命令使用
前言
想知道服务器已经连续运行了多少天?现在有多少人在线?系统负载怎么样?这些问题用 uptime 和 w 两个命令就能搞定。这两个命令虽然简单,但都是运维日常最常用的,一个看运行时间和负载,一个看谁在线。本文就把这两个命令讲透。
uptime 命令
基本用法
直接输入:
uptime
输出示例:
10:30:45 up 30 days, 2:15, 1 user, load average: 0.50, 0.40, 0.30
输出详解
| 字段 | 含义 |
|---|---|
10:30:45 |
当前系统时间 |
up 30 days, 2:15 |
系统已运行30天2小时15分钟 |
1 user |
当前有1个用户登录 |
load average: 0.50, 0.40, 0.30 |
系统负载,分别是1分钟、5分钟、15分钟的平均值 |
负载怎么看
负载(load average)是衡量系统繁忙程度的指标。数值越高说明越忙。
判断标准:
- 负载数值和CPU核心数有关
- 比如4核CPU,负载4.0才算跑满
- 一般来说,负载不要超过CPU核心数的70%
- 比如4核CPU,负载在2.8以下算正常
uptime 常用参数
uptime -V
查看版本号。
uptime -h
查看帮助。
w 命令
基本用法
直接输入:
w
输出示例:
10:30:45 up 30 days, 2:15, 1 user, load average: 0.50, 0.40, 0.30
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
root pts/0 192.168.1.100 10:20 5.00s 0.05s 0.00s w
输出详解
第一行和 uptime 完全一样:系统时间、运行时间、在线用户数、负载。
下面是当前登录的用户列表:
| 列 | 含义 |
|---|---|
USER |
登录用户名 |
TTY |
终端类型(pts/0 表示远程SSH连接) |
FROM |
登录来源IP |
LOGIN@ |
登录时间 |
IDLE |
空闲时间 |
JCPU |
该终端所有进程占用的CPU时间 |
PCPU |
当前进程占用的CPU时间 |
WHAT |
当前正在运行的命令 |
w 常用参数
w -h
不显示第一行标题,只显示用户列表。
w -s
精简模式,不显示 JCPU 和 PCPU 列。
w root
只查看某个用户的登录信息。
who 命令
除了 uptime 和 w,还有个 who 命令,更简单:
who
输出:
root pts/0 2026-10-05 10:20 (192.168.1.100)
只显示谁在线、从哪来、什么时候登录的。
last 命令
想知道历史登录记录,用 last:
last
输出最近的登录记录,包括:
- 谁登录的
- 从哪个IP登录的
- 什么时候登录的
- 登录了多久
last -10
只看最近10条。
实际应用场景
场景1:服务器重启过没有
用 uptime 看运行时间,如果才几天,说明最近重启过。
uptime
场景2:谁在登录我的服务器
用 w 看当前有谁在线,来源IP是哪里。如果有不认识的IP,可能是被入侵了。
w
场景3:系统负载高不高
用 uptime 看 load average,如果负载很高,再用 top 看是哪个进程占的。
uptime
top
场景4:排查登录历史
用 last 看历史登录记录,有没有异常登录。
last
常见坑
坑1:负载高就以为CPU不够
负载高不一定是CPU的问题。负载包括所有等待CPU的进程,也包括等待I/O的进程。可能是磁盘I/O瓶颈,也可能是大量进程在排队。要结合 top 一起看。
坑2:把在线用户数看得很重要
1 user 这个数字只是当前登录的用户数,不代表系统性能。一个用户也可能把系统跑满,100个用户也可能很空闲。
坑3:last 显示的是历史记录,不是实时状态
last 是看历史登录记录的,现在谁在线要用 w 或 who。两者别搞混了。
总结
uptime 和 w 是最基础的系统监控命令:
- uptime:看系统运行时间和负载
- w:看谁在线、从哪来、在干嘛
- who:更简单的在线用户查看
- last:看历史登录记录
这几个命令都是秒出结果,排查问题的时候先跑一遍,快速了解系统基本状态。
遇到问题加QQ23979811 协助处理