网络相关和进程活动相关

netstat命令是一个监控TCP/IP网络的非常有用的工具,它可以显示路由表、实际的网络连接以及每一个网络接口设备的状态信息。

tcpdump命令用于监视TCP/IP连接并直接读取数据链路层的数据包头。

 ipcs命令往标准输出写入一些关于活动进程间通信设施的信息。

ipcrm 命令删除一个或更多的消息队列、信号量集或者共享内存标识。


系统性能相关调试命令

uptime

我们可以使用uptime命令来监视Linux系统性能和状态,这是一种非常有效的简单方法。uptime命令会显示在一定时间间隔内系统运行队列中进程的信息。通过这些信息可以大致地分析系统的工作负载。所以当系统性能下降时,首先应使用uptime命令来观察系统运行队列中进程的情况。

 $uptime

2:07pmup 11 days,4:54, 9 users, load average: 1.90, 1.98, 2.01

 在上面显示内容其中有用的信息是三个负载的平均值:1.901.982.01分别是前1分钟、5分钟和15分钟内的负载平均值。

 系统管理员需要定期运行uptime命令以观察系统的平均负载值及其变化趋势。系统的问题往往通过上述数据反映出来。当系统负载增大时,说明多条命令被阻塞在内存和I/O系统中。这时需要检查系统的有关信息。一般Linux系统,负载为23表示轻载,56表示中等程度负载,10以上为过载。不同系统的划分标准是不同的。系统管理员应根据实际情况确定自己系统中划分轻载和过载的界限。

 free

使用free命令可以查看系统中内存空间的大小。内存是以KB为单位来衡量的。例如用户可以用free命令来获取系统内存空间的大小信息,命令如下:

 $free

          Total  used  frdd  shared  buffers cached

Mem:      95772 86748   9024  54480  5796   36164

-/+buffers/cache: 44788   50984

Swap:     136512 7000    129512

 在上面显示内容中,Mem行中的total栏显示了当前Linux正在使用的RAM总量。used栏显示的是被占用的内存空间,但Mem行与这一栏结合并不能产生最好的分析结果,因为其中包含了Linux分配给磁盘缓冲区的一部分分区。在大多数系统中,used栏显示的值和total栏的值相当。然而,我们可以核对used栏、-/+buffers/cache行对应的值来查看有多少内存处于使用状态(used栏、Swap栏对应的数值)。这一部分是作为内存来用的磁盘,而磁盘速度比内存慢,所以最好优先使用物理内存,交换内存则较少使用。

top

在本书第三章我们已经介绍过了top命令,它可以动态实时的察看系统性能,分析CPU、内存的使用资源以及相关进程的信息等。关于top命令的具体的使用方法和命令参数这里就不再谈及了,如果读者还不了解,请参看第三章“3.5.6 top 命令小节的内容。

 top会显示系统现在的负载情况,如下所示:

#top

2:58pm up 3:40,  1 user,  load average: 0.00, 0.01, 0.00

37processes: 35sleeping, 2 running, 0 zombie, 0 stopped  

CPUstates:  5.6% user, 1.6% system,  0.0% nice, 92.8%idle

Mem:190776Kav,183588Kused,7188K free,0K shrd, 80180K buff 

Swap:385520K av,1476Kused, 384044K free  65096K cached   

                                                     

PIDUSER PRI  NI SIZE  RSS SHARE STAT %CPU %MEMTIME COMMAND

 6root 10   0    0   0   0   SW   0.5  1.70:18  find

 9root 9   0   1036 1036  860 R    0.3 0.4 0:00   top 

 1root 8   0   100  84   52  S    0.0  0.0 0:03  init

 2root 9   0    0   0     0 SW   0.0  0.0 0:00 kevent

 3root 9   0    0   0     0 SW    0.0  0.0 0:00 kapmd

 5root 9   0    0   0     0 SW   0.0  0.0 0:00 kswapd

 7root 9   0    0   0     0 SW   0.0  0.0 0:00 bdflus

 8root 9   0    0   0     0 SW   0.0  0.0 0:00 kdated

 9root -1 -20    0   0     0 SW<  0.0  0.0 0:00 telnet

 top显示的系统信息包括运行时间、进程的数量和状态、CPU周期的百分比和每个进程占用的存储空间、每个进程运行的时间,以及大量的其它信息。进程是按使用资源的多少来排列的,显示每5秒钟自动更新一次。在显示过程中,也可以按下空格键手动更新显示。在查找并解决系统性能故障时,这些信息是相当有用的。

 在上面显示的信息中,大家可以看到显示的系统情况,运行中的进程有正在使用的top程序,它使用了0.3%CPU0.4%的存储空间;还有 find 进程使用了0.5%CPU1.7%的存储空间。而其它进程要么处于睡眠状态(S),要么处于睡眠并被换出状态(SW)。

 vmstat

vmstatVirtual MeomoryStatistics(虚拟内存统计)的缩写,可对操作系统的虚拟内存、进程、CPU活动进行监视。它对系统的整体情况进行统计,不足之处是无法对某个进程进行深入分析。

 vmstat 命令我们也曾在本书第三章简单提及过,现在让我们详细了解一下它。

 

vmstat的语法为: vmstat [-V] [-n][delay [count]]

 其中,-V表示打印出版本信息;-n表示在周期性循环输出时,输出的头部信息仅显示一次;delay是两次输出之间的延迟时间;count是指按照这个时间间隔统计的次数。对于vmstat输出各字段的含义,可运行man vmstat查看。

 当我们运行vmstat命令后,显示结果如下:

 $vmstat

procs    memory       swap   io  system   cpu    

rb w  swpd free buff  cache si so bi bo  in cs  ussy  id

00 0  1460 7768 79864 65040 0 0 12 10 103  25 1 0   98



Logo

更多推荐