当前位置: 主页 > 性能调优 >

基于linux服务器的性能分析与优化(六)

时间:2013-05-06 23:23来源:转载 作者:会员 点击:
uptime命令 uptime是监控系统性能最常用的一个命令,主要用来统计系统当前的运行状况。输出的信息依次为:系统现在的时间、系统从上次开机到现在运行了多少时间,系统目前多少登录
欢迎大家分享自己的文档,请点击查阅:分享方法,Linux系统运维
如果你喜欢这文章,可以点击文章结尾处百度分享,分享到你的各种社区收藏,或推荐给朋友……


uptime命令

uptime是监控系统性能最常用的一个命令,主要用来统计系统当前的运行状况。输出的信息依次为:系统现在的时间、系统从上次开机到现在运行了多少时间,系统目前多少登录用户,系统在1分钟内、5分钟内、15分钟内的平均负载。
 
[plain] view plaincopy
 
  1. uptime  
  2.  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命令用于显示本机网络连接、运行端口、路由表等信息。
 
[plain] view plaincopy
 
  1. usage: netstat [-veenNcCF] [<Af>] -r         netstat {-V|--version|-h|--help}  
  2.        netstat [-vnNcaeol] [<Socket> ...]  
  3.        netstat { [-veenNac] -i[<Iface>] | [-cnNe] -M | -s } [delay]  
  4.   
  5.         -r, --route                display routing table  
  6.         -i, --interfaces=[<Iface>] display interface table  
  7.         -g, --groups               display multicast group memberships  
  8.         -s, --statistics           display networking statistics (like SNMP)  
  9.         -M, --masquerade           display masqueraded connections  
  10.   
  11.         -v, --verbose              be verbose  
  12.         -n, --numeric              don't resolve names  
  13.         --numeric-hosts            don't resolve host names  
  14.         --numeric-ports            don't resolve port names  
  15.         --numeric-users            don't resolve user names  
  16.         -N, --symbolic             resolve hardware names  
  17.         -e, --extend               display other/more information  
  18.         -p, --programs             display PID/Program name for sockets  
  19.         -c, --continuous           continuous listing  
  20.   
  21.         -l, --listening            display listening server sockets  
  22.         -a, --all, --listening     display all sockets (default: connected)  
  23.         -o, --timers               display timers  
  24.         -F, --fib                  display Forwarding Information Base (default)  
  25.         -C, --cache                display routing cache instead of FIB  
  26.   
  27.   <Iface>: Name of interface to monitor/list.  
  28.   <Socket>={-t|--tcp} {-u|--udp} {-w|--raw} {-x|--unix} --ax25 --ipx --netrom  
  29.   <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命令组合可以显示网络接口的详细信息
[plain] view plaincopy
 
  1.  netstat -i  
  2. Kernel Interface table  
  3. Iface       MTU <span style="white-space:pre">  </span>Met    <span style="white-space:pre">    </span>RX-OK <span style="white-space:pre">     </span>RX-ERR RX-DRP RX-OVR    TX-OK <span style="white-space:pre">     </span>TX-ERR TX-DRP TX-OVR <span style="white-space:pre">  </span>Flg  
  4. eth0       1500   <span style="white-space:pre">    </span>0       16      <span style="white-space:pre">   </span>0      0      0        <span style="white-space:pre">    </span>0      <span style="white-space:pre">        </span>0      0      0 <span style="white-space:pre">   </span>BMRU  
  5. eth1       1500   <span style="white-space:pre">    </span>0 <span style="white-space:pre"> </span>30284491725     0      0      0 <span style="white-space:pre">   </span>37698810506     0      0      0 <span style="white-space:pre">   </span>BMRU  
  6. lo        16436   <span style="white-space:pre">    </span>0 <span style="white-space:pre"> </span>31192969      <span style="white-space:pre"> </span>0      0      0 <span style="white-space:pre">   </span>31192969      <span style="white-space:pre"> </span>0      0      0 <span style="white-space:pre">   </span>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命令的输出完全相同
[plain] view plaincopy
 
  1. netstat -r  
  2. Kernel IP routing table  
  3. Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface  
  4. 10.32.25.0      *               255.255.255.0   U         0 0          0 eth1  
  5. 169.254.0.0     *               255.255.0.0     U         0 0          0 eth1  
  6. 192.168.0.0     10.32.25.1      255.255.0.0     UG        0 0          0 eth1  
  7. 172.16.0.0      10.32.25.1      255.240.0.0     UG        0 0          0 eth1  
  8. 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文件中
 
下面来看一个例子
[plain] view plaincopy
 
  1. top - 19:59:47 up 27 days,  4:55,  6 users,  load average: 1.06, 1.04, 1.06  
  2. Tasks: 123 total,   2 running, 119 sleeping,   1 stopped,   1 zombie  
  3. Cpu(s):  0.1% us,  2.5% sy, 10.2% ni, 87.2% id,  0.0% wa,  0.0% hi,  0.0% si  
  4. Mem:  47811272k total, 28204544k used, 19606728k free,    41044k buffers  
  5. Swap:        0k total,        0k used,        0k free,  4276844k cached  
  6.   
  7.   PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND                                                
  8. 23699 user       35  10 70932  17m 4992 R 99.9  0.0   1842:59 sh                                                     
  9.    63 root      15   0     0    0    0 S  0.0  0.0  54:00.46 kswapd0                                                
  10. 18661 root      16   0 98408 7344 3136 S  0.0  0.0  43:54.33 naming-agent                                                                                   
  11. 12944 root      16   0 18020 2844 2016 S  0.0  0.0   4:54.12 executor                                               
  12. 24971 root      16   0  241m 184m 3060 S  0.0  0.4   3:54.96 webfoot-agent                                          
  13.  1298 root      16   0  5792  844  612 S  0.0  0.0   3:35.97 syslogd                                                                                           
  14.    62 root      15   0     0    0    0 S  0.0  0.0   1:42.33 pdflush                                                
  15.    61 root      15   0     0    0    0 S  0.0  0.0   1:37.29 pdflush           
[plain] view plaincopy
 
  1.   
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秒

转载请注明linux系统运维
http://www.linuxyw.com/linux/tiaoyou/20130506/241.html

------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
验证码: 点击我更换图片
栏目列表
推荐内容