一、w 命令
作用:
- 用于显示已经登录系统的用户列表, 并显示用户正在执行的指令。 执行这个命令可得知目前登入系统的用户有哪些人, 以及他们正在执行的程序。 单独执行w 命令会显示所有的用户, 您也可指定用户名称,仅显示某位用户的相关信息。
选项:
-h 不打印头信息
-u 当显示当前进程和cpu 时间时忽略用户名
-s 使用短输出格式
-f 显示用户从哪登录
实例:
20:39:37 up 136 days, 3:58, 1 user, load average: 0.00, 0.00, 0.00 (平均负载)
USER TTY FROM [email protected] IDLE JCPU PCPU WHAT
root pts/0 222.94.97.122 20:39 1.00s 0.00s 0.00s w
二、uptime 命令
作用: 打印系统总共运行了多长时间和系统的平均负载。 uptime 命令可以显示的信息依次为:
现在时间, 系统已经运行时间, 目前登录用户个数, 系统1,5,15 分钟内的平均负载
实例: uptime
15:31:30 up 127 days, 3:00, 1 user, load average: 0.00, 0.00, 0.00
平均负载: 在特定时间间隔内运行队列中的平均进程数
如果每个CPU内核的当前活动进程数不大于3的话, 那么系统的性能是良好的。 如果每个CPU内核的任务数大于5, 那么这台机器的性能有严重问题。 如果linux主机是1双核CPU的话, 当Load Average 为6 的时候就说明机器被充分使用了。
三、top 命令
作用: 实时动态查看系统的整体运行情况, 是一个综合了多方信息监测系统性能和运行信息的实用工具。 默认按照CPU排序。
选项:
-b 以批处理模式操作
-c 显示完整的命令
-d 屏幕刷新间隔时间
-I 忽略失效过程
-s 保密模式
-S 累积模式
-i 设置时间间隔
-u 指定用户名
-p 指定进程
-n 循环显示的次数
top 交互命令
h 显示帮助画面, 给出一些简短的命令总结说明
k 终止一个进程
i 忽略闲置和僵死进程, 这是一个开关式命令
q 退出程序
r 重新安排一个进程的优先级
S 切换到累积模式
s 改变两次刷新之间的延迟时间, 默认是5S .
f 从当前显示中添加或者删除项目
o 改变显示项目的顺序
l 切换显示平均负载和启动时间信息
m 切换显示内存信息
t 切换显示进程和CPU 状态信息
c 切换显示命令名称和完整命令行
M 根据驻留内存大小进行排序
P 根据CPU 使用百分比大小进程排序
T 根据时间进程排序
w 将当前设置写入~、。toprc 文件
实例:
09:44:56 up 16 days, 21:23, 1 user, load average: 9.59, 4.75, 1.92
Tasks: 145 total, 2 running, 143 sleeping, 0 stopped, 0 zombie Cpu(s):
99.8%us, 0.1%sy, 0.0%ni, 0.2%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Mem: 4147888k total, 2493092k used, 1654796k free, 158188k
buffers Swap: 5144568k total, 56k used, 5144512k free, 2013180k cached
top - 09:44:56[当前系统时间]
16 days[系统已经运行了16天]
1 user[个用户当前登录]
load average: 9.59
4.75
1.92[系统负载,即任务队列的平均长度] Tasks: 145 total[总进程数]
2 running[正在运行的进程数]
143 sleeping[睡眠的进程数]
0 stopped[停止的进程数]
0 zombie[冻结进程数]
Cpu(s): 99.8%us[用户空间占用CPU百分比]
0.1%sy[内核空间占用CPU百分比]
0.0%ni[用户进程空间内改变过优先级的进程占用CPU百分比] nice -20 -> 19
0.2%id[空闲CPU百分比]
0.0%wa[等待输入输出的CPU时间百分比]
0.0%hi[]
0.0%st[]
Mem: 4147888k total[物理内存总量]
2493092k used[使用的物理内存总量]
1654796k free[空闲内存总量]
158188k buffers[用作内核缓存的内存量] Swap: 5144568k total[交换区总量]
56k used[使用的交换区总量]
5144512k free[空闲交换区总量]
2013180k cached[缓冲的交换区总量],
top -bn1 : 直接运行后退出
四、vmstat 命令
作用:vmstat 的含义为显示虚拟内存状态(virtual memor statics),但是它可以报告关于进程,内存,I/O 等系统整体运行状态
选项:
-a 显示活动内页
-f 显示启动后创建的进程总数
-m 显示slab 信息
-n 头信息仅显示一次
-s 以表格方式显示事件计数器和内存状态
-d 报告磁盘状态
-p 显示指定的硬盘分区状态
-S 输出信息的单位
参数
事件间隔:状态信息刷新的时间间隔
次数: 显示报告的次数
实例:
vmstat 3
procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu-----
r b swpd free buff cache si so bi bo in cs us sy id wa st
0 0 0 952092 10236 38704 0 0 47 3 17 24 0 0 99 0 0
0 0 0 952084 10236 38704 0 0 0 0 5 7 0 0 100 0 0
0 0 0 952084 10236 38704 0 0 0 0 5 6 0 0 100 0 0
0 0 0 952084 10236 38704 0 0 0 0 6 8 0 0 100 0 0
0 0 0 952084 10236 38704 0 0 0 0 5 6 0 0 100 0 0
字段说明
Proc (进程)
*r : 运行队列中进程数量, 这个值也可以判断是否需要增加CPU。(长期大于1)
*b : 等待IO 的进程数量
Memory (内存)
*swpd : 使用虚拟内存大小,如果swpd 的值不为0 , 但是SI, SO的值长期为0, 不会影响系统性能
*free : 空闲物理内存大小
*buff : 用作缓冲的内存大小
*cache : 用作缓存的内存大小, 如果cache的值大的时候, 说明cache处的文件数多, 如果频繁访问到的文件都被cache处, 那么磁盘的IO BI会非常小
Swap
*si : 每秒从交换区写到内存的大小, 由磁盘调入内存. swapped in from disk
*so : 每秒写入交换区的内存大小, 由内存调入磁盘 swapped to disk
IO (现在的Linux版本块的大小为1kb)
*bi : 每秒读取的块数 block received from a block device
*bo: 每秒写入的块数 block sent to a block device
随机磁盘读写的时候, 这两个值越大能看到CPU的IO等待值也会变大
System
*in : 每秒中断数
*cs : 每秒上下文切换数
CPU
*us : 用户进程执行时间百分比(user time),us 的值比较高时,说明用户进程消耗的CPU时间多, 但是如果长期超50% 的使用,那么就应该考虑优化程序算法或者加速
*sy : 内核系统进程执行时间百分比(system time)
sy 的值高时, 说明系统内核消耗的CPU资源多, 需要检查原因
*wa : IO 等待时间百分比
wa 的值高时, 说明IO 等待比较严重, 这可能是由于磁盘大量随机访问造成, 也有可能是磁盘出现瓶颈
*id : 空闲时间百分比
文件:
/proc/meminfo
/proc/stat
/proc/*/stat
五、ps 命令
作用:
Linux中的ps 命令是process status 的缩写。 ps 命令用来列出系统中当前运行的进程。 ps 命令列出的是当前进程的快照,就是执行ps 命令的那个时刻的进程。 如果想要动态的显示进程信息, 使用top 命令
状态 :
1.运行 R(正在运行或在运行队列中等待)
2.中断 S( 休眠中, 受阻,在等待某个条件的形成或接受到信号)
3.不可中断 D(收到信号不唤醒和不可进行, 进程等待直到有中断发生)
4.僵死 Z(进程已终止,但进程描述符存在,直到父进程调用wait4() 系统调用后释放)
5.停止 T(进程收到SIGSTOP 等信号后停止运行)
< 优先级高
N 优先级低
L 超线程
l 锁定
+ 在前端运行
参数:
a 显示所有进程
-a 显示同一终端下的所有程序
-A 显示所有进程
c 显示进程的真实名称
-N 反向选择
e 显示环境变量
f 显示程序间的关系
i 忽略大小写
r 显示当前终端的进程
T 显示当前终端的所有进程
u 指定用户的所有进程
au 显示较详细的信息
-elf 显示所有进程信息, 显示命令行
aux 显示目前多有的正在内存中的程序
axjf 列出类似程序树的程序显示
实例:
ps aux
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.0 10348 588 ? Ss 2014 0:22 init [3]
root 2 0.0 0.0 0 0 ? S< 2014 1:48 [migration/0]
root 3 0.0 0.0 0 0 ? SN 2014 0:01 [ksoftirqd/0]
root 4 0.0 0.0 0 0 ? S< 2014 1:39 [migration/1]
root 5 0.0 0.0 0 0 ? SN 2014 0:01 [ksoftirqd/1]
%CPU: CPU 资源百分比
%MEM: 物理内存百分比
VSZ: 虚拟内存量(kbytes)
RSS : 固定的内存量
TTY : 运作的终端机, 若无关终端机, 则显示? ,pts/0 为网络连接进主机的程序
六、pstree
七、free -m /-g
八、netstat
九、ulimit -n
十、sar