uptime命令
uptime是监控系统性能最常用的一个命令,主要用来统计系统当前的运行状况。输出的信息依次为:系统现在的时间、系统从上次开机到现在运行了多少时间,系统目前多少登录用户,系统在1分钟内、5分钟内、15分钟内的平均负载。
uptime
13:05:56 up 353 days, 21:08, 7 users, load average: 1.01, 0.85, 0.43
load average3个值的大小一般不能大于系统CPU的个数。
例如:本输出中系统有8个cpu,如果load average的3个值长期大约8时,说明CPU很繁忙,负载很高,可能会影响系统性能;如果偶尔大于8,一般不会影响系统性能。
netstat命令
netstat命令用于显示本机网络连接、运行端口、路由表等信息。
usage: netstat [-veenNcCF] [<Af>] -r netstat {-V|--version|-h|--help}
netstat [-vnNcaeol] [<Socket> ...]
netstat { [-veenNac] -i[<Iface>] | [-cnNe] -M | -s } [delay]
-r, --route display routing table
-i, --interfaces=[<Iface>] display interface table
-g, --groups display multicast group memberships
-s, --statistics display networking statistics (like SNMP)
-M, --masquerade display masqueraded connections
-v, --verbose be verbose
-n, --numeric don't resolve names
--numeric-hosts don't resolve host names
--numeric-ports don't resolve port names
--numeric-users don't resolve user names
-N, --symbolic resolve hardware names
-e, --extend display other/more information
-p, --programs display PID/Program name for sockets
-c, --continuous continuous listing
-l, --listening display listening server sockets
-a, --all, --listening display all sockets (default: connected)
-o, --timers display timers
-F, --fib display Forwarding Information Base (default)
-C, --cache display routing cache instead of FIB
<Iface>: Name of interface to monitor/list.
<Socket>={-t|--tcp} {-u|--udp} {-w|--raw} {-x|--unix} --ax25 --ipx --netrom
<AF>=Use '-A <af>' or '--<af>'; default: inet
-a 显示本机的所有连接和监听端口
-n 以网络IP地址的形式显示当前建立的有效连接和端口
-r 显示路由表信息
-s 显示按协议的统计信息,默认将显示IP、IPv6、ICMP、ICMPv6、TCP、TCPv6、UDP、UDPv6的统计信息
-v 显示当前的有效连接,与-n选项类似
-t 显示所有TCP协议连接情况
-u 显示所有UDP协议连接情况
-c<秒数> 后面的秒数表示每隔几秒就刷新一次
-i 显示自动配置接口的状态
-l 仅显示连接状态为LISTEN的服务的网络状态
-p 显示连接对应的PID和程序名
netstat -i命令组合可以显示网络接口的详细信息
netstat -i
Kernel Interface table
Iface MTU Met RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR Flg
eth0 1500 0 16 0 0 0 0 0 0 0 BMRU
eth1 1500 0 30284491725 0 0 0 37698810506 0 0 0 BMRU
lo 16436 0 31192969 0 0 0 31192969 0 0 0 LRU
每项输出的解释如下:
Iface表示网络设备的接口名称
MTU表示最大传输单元,单位为字节
RX-OK/TX-OK表示已经准确无误的接收/发送了多少数据包
RX-ERR/TX-ERR表示接收/发送数据包时产生了多少错误
RX-DRP/TX-DRP表示接收/发送数据包时丢弃了多少数据包
RX-OVR/TX-OVR表示由于误差而遗失了多少数据包
Flg表示接口标记,其中
L表示该接口是个回环设备;
B表示设置了广播地址
M表示接收所有数据包
R表示接口还在活动
U表示接口处于活动状态
O表示在该接口上禁用arp
P表示一个点到点的连接
正常情况下RX-ERR/Tx-ERR、RX-DRp/TX-DRP、RX-OVR/TX-OVR的值都应该是0,如果这几个值不为0,并且很大,那么网络质量应该有问题,网络传输性能也一定会下降。
在网络不通或者网络异常时,首先检查系统的路由表信息,netstat -r的输出结果与route命令的输出完全相同
netstat -r
Kernel IP routing table
Destination Gateway Genmask Flags MSS Window irtt Iface
10.32.25.0 * 255.255.255.0 U 0 0 0 eth1
169.254.0.0 * 255.255.0.0 U 0 0 0 eth1
192.168.0.0 10.32.25.1 255.255.0.0 UG 0 0 0 eth1
172.16.0.0 10.32.25.1 255.240.0.0 UG 0 0 0 eth1
10.0.0.0 10.32.25.1 255.0.0.0 UG 0 0 0 eth1
top命令
top提供了实时对系统处理器状态的监控,能够实时显示系统中各个进程的资源占用状况。可以按照CPU的使用、内存的使用、和执行时间对系统任务进程排序,同时可以通过交互式命令进行设定显示。类似于windows的任务管理器。
top选项很多,常用的有
-d 指定每两次屏幕信息刷新之间的时间间隔
-i 不显示闲置或者僵死的进程
-c 显示进程的整个命令路径,而不是只显示命令名称
-s 使top在安全模式下运行,此时top的交互式指令被取消,
-b分屏显示输出信息,结合-n选项可以将屏幕信息输出到文档
-n top输出信息更新次数,完成后将退出top命令
top除了以上选项还有很多交互式命令
h或者?显示帮助信息
k 终止一个进程,系统将提示用户输入一个需要终止进程的PID
i忽略闲置进程或者僵死进程,是一个开关命令
s 改变top输出信息两次刷新间隔,系统提示输入新的实践,单位是秒,如果是小数,就换成毫秒,如果输入0,系统输出将不断被刷新,默认为5秒,如果设置时间太小,可能会引起系统不断刷新,无法看清输出内容,而且系统负载也会加大
o或者O 改变top输出信息中显示项目的顺序,按小写的a-z键可以将相应的列向右移动,大写的A-Z可以将相应的列向左移动,最后按回车确定
f或者F 从当前显示列表中添加或删除项目,按f之后会显示列的列表,按a-z之间的任意键即可显示或隐藏对应的列,最后按回车确定
m切换显示内存信息
t切换显示进程和cpu状态信息
r 重新设置一个进程的优先级,系统提示用户输入需要改变的进程PID以及需要设置的进程优先级设置。输入一个正值将使优先级降低,反之则使进程有用更高的优先级,默认是0
l 切换显示平均负载和启动时间信息
q 退出top显示
c 切换显示完整命令行和命令名称信息
M根据驻留内存大小进行排序输出
P根据CPU使用百分比大小进行排序输出
T根据时间/累积时间进行排序输出
S切换到累积模式
W将当前top设置写入~/.toprc文件中
下面来看一个例子
top - 19:59:47 up 27 days, 4:55, 6 users, load average: 1.06, 1.04, 1.06
Tasks: 123 total, 2 running, 119 sleeping, 1 stopped, 1 zombie
Cpu(s): 0.1% us, 2.5% sy, 10.2% ni, 87.2% id, 0.0% wa, 0.0% hi, 0.0% si
Mem: 47811272k total, 28204544k used, 19606728k free, 41044k buffers
Swap: 0k total, 0k used, 0k free, 4276844k cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
23699 user 35 10 70932 17m 4992 R 99.9 0.0 1842:59 sh
63 root 15 0 0 0 0 S 0.0 0.0 54:00.46 kswapd0
18661 root 16 0 98408 7344 3136 S 0.0 0.0 43:54.33 naming-agent
12944 root 16 0 18020 2844 2016 S 0.0 0.0 4:54.12 executor
24971 root 16 0 241m 184m 3060 S 0.0 0.4 3:54.96 webfoot-agent
1298 root 16 0 5792 844 612 S 0.0 0.0 3:35.97 syslogd
62 root 15 0 0 0 0 S 0.0 0.0 1:42.33 pdflush
61 root 15 0 0 0 0 S 0.0 0.0 1:37.29 pdflush
top输出分为统计信息区和进程信息区
1)统计信息区
第一行为任务队列信息
19:59:47 表示当前系统时间
up 27days 4:55 表示系统已经启动了27天4小时55分
6users表示当前登录系统的用户数
load average表示系统平均负载,3个数值分布式1分钟,5分钟和15分钟前到现在的系统平均负载值
第二、三行为进程和CPU信息,
tasks表示进程的总数
2 running 表示正在运行的进程数
119sleeping 处于休眠的进程数
1 stopped 停止的进程数
1 zombie 僵死的进程数
Cpu(s); 0.1% us用户进程占用CPU百分比
2.5%sy 系统进程占用CPU百分比
10.2%ni 用户进程空间内改变过优先级的进程占用CPU
87.2%id 空闲CPU
0.0%wa 等待输入输出的进程占用CPU百分比
最后两行输出的是内存信息,
Mem total系统的物理内存大小
used 已经使用的物理内存大小
free 目前空余的内存大小
buffers 用作内核缓冲区的内存大小
Swap total交换分区的内存大小
used 已经使用的交换分区大小
free空闲的交换分区大小
cached 高速缓存的大小
2)进程信息区
显示了每个进程的运行状态,
PID进程的id
USER进程所有者的用户名
PR进程优先级
NI:nice值,负值表示高优先级,正值表示低优先级
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 正在运行进程的命令名或命令路径