在Linux中,我们有很多命令可以查看服务器负载,资源占用情况。常用的命令有top,free,uptime, vmstat, iostat本文重点讲下top
一.top指令
1.作用
top命令用来显示执行中的程序进程,使用权限是所有用户。
2.格式
top [-] [d delay] [q] [c] [S] [s] [i] [n]
3.主要参数
d:指定更新的间隔,以秒计算。
q:没有任何延迟的更新。如果使用者有超级用户,则top命令将会以最高的优先序执行。
c:显示进程完整的路径与名称。
S:累积模式,会将己完成或消失的子行程的CPU时间累积起来。
s:安全模式。
i:不显示任何闲置(Idle)或无用(Zombie)的行程。
n:显示更新的次数,完成后将会退出top。
4.缺点:会消耗很多系统资源
先来看一下top命令显示的信息
第一行是任务队列信息,它们分别代表着
- 当前时间
- 系统运行时间
- 当前登录的用户数量
- 系统负载,即任务队列的平均长度。三个数值分别为1分钟、5分钟、15分钟前到现在的平均值 这个数据除以CPU核数小于3性能良好,大于5性能不足
第二、三行显示的是任务或者进程的总结。进程可以处于不同的状态。这里显示了全部进程的数量。除此之外,还有正在运行、睡眠、停止、僵尸(zombie)进程的数量(僵尸是一种进程的状态)。
- Tasks:进程总数
- running:正在运行进程数
- sleeping:睡眠进程数
- stopped:停止进程数
- zombie:僵尸进程数
- Cpu(s):用户空间占用CPU百分比
- 0.3 sy 内核空间占用CPU百分比
- 0.0 ni 用户进程空间内改变过优先级的进程占用CPU百分比
- 99.3id 空闲CPU百分比
- 0.0 wa 等待输入输出的CPU时间百分比
- 0.0 hi(不懂,懵逼)
- 0.0 si(不懂,懵逼)
第四五行是内存信息
Mem 物理内存总量 used 使用的物理内存总量 free 空闲内存总量 buffers 用作内核缓存的内存量
Swap 交换分区总量 used 使用的交换区总量 free 空闲交换区总量 cached 缓冲的交换区总量
最后看到的是各个进程的详细信息
PID 进程id
USER 进程所有者的用户名
PR 优先级
NI(NInice) 值。负值表示高优先级,正值表示低优先级
VIRT 进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RES
RES 进程使用的、未被换出的物理内存大小,单位kb。RES=CODE+DATA
SHR 共享内存大小,单位kb
S 进程状态。 D=不可中断的睡眠状态 R=运行 S=睡眠 T=跟踪/停止 Z=僵尸进程
%CPU 上次更新到现在的CPU时间占用百分比
%MEM 进程使用的物理内存百分比
TIME+ 进程使用的CPU时间总计,单位1/100秒
COMMAND 命令名/命令行
不同的系统你还可能看到以下参数:
PPID 父进程id
RUSER Realusername
UID 进程所有者的用户id
GROUP 进程所有者的组名
TTY 启动进程的终端名。不是从终端启动的进程则显示为?
P 最后使用的CPU,仅在多CPU环境下有意义
TIME 进程使用的CPU时间总计,单位秒
SWAP 进程使用的虚拟内存中,被换出的大小,单位kb。
CODE 可执行代码占用的物理内存大小,单位kb
DATA 可执行代码以外的部分(数据段+栈)占用的物理内存大小,单位kb
nFLT 页面错误次数
nDRT 最后一次写入到现在,被修改过的页面数。
二:free指令
1.作用
free命令用来显示内存的使用情况,使用权限是所有用户。
2.格式
free [-b-k-m] [-o] [-s delay] [-t] [-V]
3.主要参数
-b -k -m:分别以字节(KB、MB)为单位显示内存使用情况。
-s delay:显示每隔多少秒数来显示一次内存使用情况。
-t:显示内存总和列。
-o:不显示缓冲区调节列。
三:uptime指令
uptime显示信息和top指令第一行信息基本相同