WEB开发网
开发学院操作系统Linux/Unix IBM AIX V5.3 系统管理(Test 222)认证指南系列,第... 阅读

IBM AIX V5.3 系统管理(Test 222)认证指南系列,第 4 部分:监视和性能优化(下)

 2008-11-10 08:29:07 来源:WEB开发网   
核心提示:性能工具概述以下各部分将介绍最有用的性能工具,vmstat 命令vmstat 命令报告有关内核线程、虚拟内存、磁盘、陷阱和 CPU 活动的统计信息,IBM AIX V5.3 系统管理(Test 222)认证指南系列,第 4 部分:监视和性能优化(下),注意:从 AIX 5L V5.3 开始, vmstat 命令将报告微

性能工具概述

以下各部分将介绍最有用的性能工具。

vmstat 命令

vmstat 命令报告有关内核线程、虚拟内存、磁盘、陷阱和 CPU 活动的统计信息。

注意:从 AIX 5L V5.3 开始, vmstat 命令将报告微分区 (Micro-Partitioning™) 环境中已使用的物理处理器 (pc) 数量和已使用的授权值 (ec) 百分比。只有在微分区环境中才会显示这些指标。

vmstat 命令生成的报告可用于平衡系统负载活动。这些系统范围的统计信息(包括所有处理器)计算为用百分比表示的值的平均数,或者计算为总和。如果不带标志调用 vmstat 命令,则报告将包含自从系统启动以来的虚拟内存活动的摘要。

vmstat 命令的语法是:

vmstat [ -f ] [ -i ] [ -s ] [ -I ] [ -t ] [ -v ] [ -w] [ -l ]

[ PhysicalVolume ...] [ Interval [ Count ] ]

表 1 提供了 vmstat 命令的主要标志。

表 1

标志 描述
-f 报告自从系统启动以来的 fork 数量。
-i 显示自从系统启动以来每个设备引发的中断数量。
-s 将 sum 结构的内容写到标准输出,此结构包含自从系统初始化以来的分页事件的绝对计数。-s 选项与其他 vmstat 命令选项是互斥的。

vmstat 命令的常用标志

PhysicalVolume 参数可用于指定一至四个名称。传输统计信息是按指定的顺序针对每个指定的驱动器给出的。此计数表示对物理设备的逻辑和物理请求。它并不意味着读取或写入的数据量。可以在一个物理请求中组合多个逻辑请求。

Interval 参数指定每个报告之间以秒为单位的时间量。第一个报告包含自从系统启动以来的时间统计信息。后续的报告将包含前一个报告以来的间隔期间收集到的统计信息。如果未指定 Interval 参数,则 vmstat 命令将生成单个报告,然后退出。

Count 参数只能与 Interval 参数一起指定。如果指定了 Count 参数,则其值将确定要生成的报告数量和每个报告之间相隔的秒数。如果指定了 Interval 参数而未指定 Count 参数,则会连续生成报告。Count 参数的值不允许为零 (0)。内核维护内核线程、分页和中断活动的统计信息,vmstat 命令将访问这些信息。磁盘输入/输出统计信息由设备驱动程序维护。对于磁盘,平均传输速度由活动时间和传输信息数量确定。百分比活动时间是从报告期间驱动器处于忙状态的时间量计算而来的。

vmstat 命令的报告输出

vmstat 命令生成的报告包含如表 2 所示的列标题。

表 2

描述
Kthr:内核线程状态。
r 采样间隔期间的平均可运行内核线程数量。可运行线程是指已准备就绪但是在等待运行的线程和已经在运行的线程。
b 在采样间隔期间放在 VMM 等待队列中(等待资源和等待输入/输出)的平均内核线程数量。

Memory:有关虚拟和实际内存使用的信息。已访问过的虚拟页面被看作是活动的。

avm 活动的虚拟页,即页空间中已分配的总页数。很高的值并不表示性能很差。
fre 空闲列表的大小。实际内存的很大部分被用作文件系统数据的缓存。空闲列表的大小保持很小并没有什么不正常。
Page:有关缺页和分页活动的信息。这些是间隔期间的平均值,并以每秒的单位数给出。
re 分页程序输入/输出列表。
pi 从分页空间调入的页数。
po 调出到分页空间的页数。
fr 释放的页数(页面替换)。
sr 按页面替换算法扫描的页数。
cy 页面替换算法使用的时钟周期。
Faults:采样间隔期间每秒的陷阱和中断速度平均值。
in 设备中断。
sy 系统调用。
cs 内核线程上下文切换。
CPU:百分比 CPU 使用时间的细分。
us 用户时间
sy 系统时间
id CPU 空闲时间
wa 在系统具有未完成的磁盘/NFS I/O 请求期间的 CPU 空闲时间。
pc 使用的物理处理器数量。仅当分区在使用共享处理器运行时才显示。(仅在微分区环境中显示)。
ec 有权使用的容量的已使用百分比。仅当分区在使用共享处理器运行时才显示。(仅在微分区环境中显示)。
Disk:提供在采样间隔期间每秒传输到指定物理卷的传输量。

vmstat 输出的列标题

下面的示例演示了 vmstat 命令的部分用法:

要以 1 秒的间隔显示五个摘要,可以输入以下命令:

# vmstat 1 5                             
System configuration:lcpu=4 mem=3792MB               
                                   
kthr  memory       page       faults    cpu   
----- ----------- ------------------------ ------------ ----------- 
r b  avm  fre re pi po fr  sr cy in  sy cs us sy id wa 
0 0 159012 649264  0  0  0  0  0  0  9 1266 82 0 0 99 0
0 0 159013 649263  0  0  0  0  0  0  6 1154 84 0 0 99 0
0 0 159013 649263  0  0  0  0  0  0  4 1152 82 0 0 99 0
0 0 159013 649263  0  0  0  0  0  0  6 1158 90 0 0 99 0
0 0 159013 649263  0  0  0  0  0  0  4 1160 85 0 1 99 0
#

要显示各种事件的计数,可以输入以下命令:

# vmstat -s
367947 total address trans. faults
22409 page ins
4607 page outs
0 paging space page ins
0 paging space page outs
0 total reclaims
215640 zero filled pages faults
4540 executable filled pages faults
0 pages examined by clock
0 revolutions of the clock hand
0 pages freed by the clock
50503 backtracks
0 free frame waits
0 extend XPT waits
9018 pending I/O waits
27017 start I/Os
15751 iodones
69848 cpu context switches
15486 device interrupts
27013 software interrupts
90354 decrementer interrupts
400 mpc-sent interrupts
400 mpc-receive interrupts
234 phantom interrupts
0 traps
1163018 syscalls
#

要以 2 秒的间隔显示 hdisk0 和 hdisk1 的五个摘要,可以输入以下命令;

# vmstat hdisk0 hdisk1 2 5                           
System configuration:lcpu=4 mem=3792MB drives=7                
                                        
kthr  memory       page       faults    cpu   disk xfer 
----- ----------- ------------------------ ------------ ----------- -----------
r b  avm  fre re pi po fr  sr cy in  sy cs us sy id wa 1 2 3 4
0 0 139021 817059  0  0  0  0  0  0  4 1200 93 0 0 99 0 9277 1151
- -                                     
0 0 139022 817058  0  0  0  0  0  0  2 1142 82 0 0 99 0 0 0 - 
-                                       
0 0 139022 817058  0  0  0  0  0  0  3 1148 78 0 0 99 0 0 0 - 
-                                       
0 0 139022 817058  0  0  0  0  0  0  3 1143 81 0 0 99 0 0 0 - 
-                                       
0 0 139022 817058  0  0  0  0  0  0  2 1142 78 0 0 99 0 0 0 - 
-                                       
#

要显示自从系统启动以来的 fork 数量,可以输入以下命令:

# vmstat -f        
2792 forks
启动一些进程,并在 fork 计数之后检查它们:
# for proc in 1 2 3 4 5  
> do            
>  lsvg > /dev/null   
> done           
# vmstat -f        
2798 forks
#

与上一次执行之差为 6,一个针对 for 命令,五个针对 lsvg > /dev/null 命令。

sar 命令

sar 命令收集、报告或保存系统活动信息。

sar 命令的缺省报告(CPU 利用报告)可能是系统管理员开始系统活动检查所必须运行的最初功能之一,因为它监视主要的系统资源。

可以使用标志来选择有关特定系统活动的信息。不指定任何标志则仅选择系统单元活动。指定 –A 标志将选择所有活动。在开始打印统计信息之前,sar 命令将打印当前活动的 CPU 数量和磁盘数量。

注意:从 AIX 5L V5.3 开始, sar 命令将报告利用率指标 physc 和 %entc ,这些指标与微分区和同步多线程环境有关。只有在微分区和同步多线程环境中才会显示这些指标。 physc 指示物理处理器的数量。

sar 报告的输出

sar 命令生成的报告包含如表 3 所示的列标题。

表 3

描述
%idle: 报告在没有未完成的磁盘 I/O 请求情况下的 CPU 空闲时间百分比。
%sys 报告 CPU 在系统(或内核)级别执行所花的时间百分比。
%usr 报告 CPU 在用户(或应用程序)级别执行所花的时间百分比。
physc 报告已使用的物理处理器数量。仅当分区使用共享处理器运行或启用了同步多线程时,才会报告此信息。
%entc 报告有权使用的容量的已使用百分比。仅当分区使用共享处理器运行时,才会报告此信息。

sar 命令的列标题

如果 CPU 利用率接近 100%(%user 列 + %sys 列),则采样的工作负载是 CPU 受限的 (CPU-bound)。如果相当大的时间百分比花在 I/O 等待上,这意味着 CPU 的执行由于等待磁盘 I/O 而受到阻塞。该 I/O 可能是必需的文件访问,或者可能是由于缺乏足够内存而与分页相关联的 I/O。

注意:如果没有请求任何其他特定的内容选项,则 sar 命令将报告系统单元活动。如果使用了 –P 标志,并且分区在使用共享处理器运行,而且分区容量使用就是所分配的容量,则会报告一个带有 cpuid U 的 CPU 行,以显示系统范围的未使用容量。

如果分区在使用共享处理器以无上限 (uncapped) 模式运行,则 %entc 将在每个 CPU 行中报告已授予的有权使用的容量百分比,并在系统范围的 CPU 行中报告已分配的有权使用的容量百分比。

下面的示例演示了 sar 命令的部分用法:

要报告在接下来的五秒中每两秒内的当前活动,可以输入以下命令:

# sar 2 5 
AIX server2 3 5 00C478DE4C00  12/02/05    
System configuration:lcpu=4          
                        
16:26:29  %usr  %sys  %wio  %idle  physc
16:26:31    0    0    0   100  2.00
16:26:33    0    0    0   100  2.00
16:26:35    0    0    0   100  2.00
16:26:37    0    0    0   100  2.00
16:26:39    0    0    0   100  2.00
                        
Average    0    0    0   100  2.00
#

要报告前两个处理器在接下来的五秒中每秒的活动,可以输入以下命令:

# sar -u -P 0,1 1 5                   
                             
AIX server2 3 5 00C478DE4C00  12/02/05         
                             
System configuration:lcpu=4               
                             
16:28:55 cpu  %usr  %sys  %wio  %idle  physc   
16:28:56 0    0    0    0   100  0.48   
     1    0    0    0   100  0.48   
16:28:57 0    0    0    0   100  0.53   
     1    0    0    0   100  0.48   
16:28:58 0    0    0    0   100  0.53   
     1    0    0    0   100  0.48   
16:28:59 0    0    0    0   100  0.53   
     1    0    0    0   100  0.48   
16:29:00 0    0    0    0   100  0.53   
     1    0    0    0   100  0.48   
                             
Average  0    0    0    0   100  0.52   
     1    0    0    0   100  0.48   
#

topas 命令

topas 命令在字符终端上报告有关本地系统上的活动的至关重要的统计信息。topas 命令以缺省的两秒间隔从系统中提取并显示统计信息。topas 命令提供了以下替代屏幕:

总体系统统计信息

最忙的进程列表

WLM 统计信息

注意:必须在系统上安装 bos.perf.tools 和 perfagent.tools 文件集才能运行 topas 命令。

topas 监视器的总体系统统计信息屏幕

总体系统统计信息屏幕的输出包括一个固定部分和一个可变部分。输出屏幕左侧的顶部两行显示运行 topas 程序的系统名称、上次观察的日期和时间,以及监视间隔。

topas 显示屏幕的可变部分可以有一个、两个、三个、四个或五个子部分。如果显示了多个子部分,则始终按以下顺序显示它们:

CPU

Network Interfaces

Physical Disks

Workload Management Classes

Processes

CPU utilization

此子部分显示一个条形图,其中显示累积的 CPU 使用情况。如果存在多个 CPU,通过按两次 c 键可以显示 CPU 列表。仅按一次 c 键将关闭此子部分。两种格式都将显示下列字段:

User% 显示在用户模式下执行的程序所使用的 CPU 百分比。(缺省按 User% 排序)

Kern % 显示在内核模式下执行的程序所使用的 CPU 百分比。

Wait% 显示等待 IO 所花的时间百分比。

Idle% 显示 CPU 的空闲时间百分比。

Physg 授予该分区的物理处理器数量(如果是微分区)。

%Entg 授予某个分区的有权使用的容量百分比(如果是微分区)。

Network Interfaces

此子部分显示活动的网络接口列表。显示的最大接口数量是 –n 标志所指定的受监视活动接口的数量。如果还显示了其他子部分,则会显示一个较小的接口数量。按 n 键将关闭此子部分。再次按 n 键将显示所有网络接口活动的单行报告摘要。两种报告都会显示下列字段:

Interf 网络接口的名称。

KBPS 监视间隔期间每秒的总吞吐量(以 MB 为单位)。此字段是每秒接收和发送的 KB 数之和。

I-Pack 监视间隔期间每秒接收的数据包数量。

O-Pack 监视间隔期间每秒发送的数据包数量。

KB-In 监视间隔期间每秒接收到的 KB 数。

KB-Out 监视间隔期间每秒发送的 KB 数。

Physical Disks

此子部分显示活动的物理磁盘列表。显示的最大物理磁盘数量是用 –d 标志指定的受监视活动物理磁盘的数量。如果还显示了其他子部分,则会显示一个较小的物理磁盘数量。按 d 键将关闭此子部分。再次按 d 键将显示所有物理磁盘活动的单行报告摘要。两种报告都会显示下列字段:

Disk 物理磁盘的名称。

Busy% 指示物理磁盘的活动时间百分比(该驱动器的带宽利用率)。

KBPS 监视间隔期间每秒读取和写入的 KB 数。此字段是 KB-Read 和 KB-Writ 之和。

TPS 每秒向该物理磁盘发出的传输数量。传输是针对该物理磁盘的 I/O 请求。可以在针对该磁盘的单个 I/O 请求中组合多个逻辑请求。传输具有不确定的大小。

KB-Read 每秒从该物理磁盘读取的 KB 数。

KB-Writ 每秒写到该物理磁盘的 KB 数。

WLM classes

此子部分显示活动的工作负载管理 (WLM) 类的列表。显示的最大 WLM 类数量是用 –w 标志指定的受监视活动 WLM 类的数量。如果还显示了其他子部分,则会显示一个较小的类数量。按 w 键将关闭此子部分。将针对每个类显示下列字段:

% CPU Utilization 该 WLM 类在监视间隔期间的平均 CPU 利用率。

% Mem Utilization 该 WLM 类在监视间隔期间的平均内存利用率。

% Blk I/O 该 WLM 类在监视间隔期间的平均块 I/O 百分比。

Processes

此子部分显示活动进程的列表。显示的最大进程数量是用 –p 标志指定的受监视活动进程的数量。如果还显示了其他子部分,则会显示一个较小的进程数量。按 p 键将关闭此子部分。各进程按它们在监视间隔期间的 CPU 使用率进行排序。将针对每个进程显示下列字段:

Name 在该进程中执行的可执行程序的名称。此名称将剥离任何路径名称和参数信息,并将长度截断为 9 个字符。

Process ID 该进程的进程 ID。

% CPU Utilization 该进程在监视间隔期间的平均 CPU 利用率。在第一次显示某个进程时,此值是该进程在生存期中的平均 CPU 利用率。

Paging Space Used 分配给该进程的分页空间大小。可将这视为该进程的内存占用空间大小,但是不包括用于保存可执行程序及其依赖的任何共享库的内存。

Process Owner 拥有该进程的用户的用户名(如果关闭了 WLM 部分)。

WLM Class 该进程所属的工作负载管理类(如果打开了 WLM 部分)。

Events/queues

显示监视间隔期间每秒频率的选定系统全局事件,以及线程运行和等待队列的平均大小。

Cswitch 上下文切换的数量。

Syscalls 系统调用的总数。

Reads read 系统调用的数量。

Writes write 系统调用的数量。

Forks fork 系统调用的数量。

Execs exec 系统调用的数量。

Runqueue 已准备好运行但是在等待某个处理器可用的线程平均数。

Waitqueue 正在等待分页完成的平均线程数量。

File/TTY

显示每秒频率的选定文件和 TTY 统计信息。

Readch 在监视间隔期间每秒通过 read 系统调用读取的字节数。

Writech 在监视间隔期间每秒通过 write 系统调用写入的字节数。

Rawin 监视间隔期间每秒从 TTY 读取的原始字节数。

Ttyout 监视间隔期间每秒写到 TTY 的字节数。

Igets 在监视间隔期间每秒对索引节点查找例程的调用数量。

Namei 监视间隔期间每秒对路径名查找例程的调用数量。

Dirblk 监视间隔期间目录搜索例程每秒扫描的目录块数量。

Paging

显示每秒频率的分页统计信息。

Faults 监视间隔期间每秒发生的缺页数量。这包括没有导致分页活动的缺页。

Steals 监视间隔期间每秒由虚拟内存管理器替换的物理内存 4 K 帧数。

PgspIn 监视间隔期间每秒从分页空间读取的 4 K 页数。

PgspOut 监视间隔期间每秒写到分页空间的 4 K 页数。

PageIn 监视间隔期间每秒读取的 4 K 页数。这包括与从文件系统读取相关联的分页活动。将此值减去 PgspIn 将获得监视间隔期间每秒从文件系统读取的 4 K 页数。

PageOut 监视间隔期间每秒写入的 4 K 页数。这包括与写入到文件系统相关联的分页活动。将此值减去 PgspOut 将获得监视间隔期间每秒写到文件系统的 4 K 页数。

Sios 监视间隔期间每秒由虚拟内存管理器发出的 I/O 请求数量。

Memory

显示实际内存大小和使用中的内存分布。

Real,MB 以 MB 为单位的实际内存大小。

% Comp 当前分配给计算性页帧的实际内存百分比。计算性页帧一般是由分页空间支持的页帧。

% Noncomp 当前分配给非计算性页帧的实际内存百分比。非计算性页帧一般是由文件空间(无论是数据文件、可执行文件还是共享库文件)支持的页帧。

% Client 当前分配用于缓存远程安装的文件的实际内存百分比。

Paging space

显示分页空间的大小和利用率。

Size,MB 系统上所有分页空间的和(以 MB 为单位)。

% Used 当前已使用的总分页空间百分比。

% Free 当前空闲的总分页空间百分比。

NFS

显示每秒调用中的 NFS 统计信息。

服务器 V2 调用数/秒

客户机 V2 调用数/秒

服务器 V3 调用数/秒

客户机 V3 调用数/秒

图 1 显示了总体系统统计信息屏幕的示例输出。

图 1 总体系统统计信息屏幕

IBM AIX V5.3 系统管理(Test 222)认证指南系列,第 4 部分:监视和性能优化(下)(1)

除了可变的 Processes 子部分以外,通过将光标移动到所需列的顶部,您可以按任何列对所有子部分排序。除了 Processes 子部分外,所有可变的子部分都具有下列视图:

使用资源最多的用户列表

表示活动之和的单行报告

例如,该单行报告视图可能仅显示总体磁盘或网络吞吐量。对于 CPU 子部分,您可以选择繁忙处理器的列表或全局 CPU 利用率,如前面的示例所示。

最忙的进程列表屏幕

要查看列出最忙进程的屏幕,可以使用 topas 命令的 –P 标志。此屏幕类似于总体系统统计信息屏幕的 Processes 子部分,但是带有附加的详细信息。通过将光标移动到所需列的顶部,您可以按任何列对此屏幕排序。

图 2 显示了最忙的进程屏幕的输出示例。

图 2 最忙的进程屏幕

IBM AIX V5.3 系统管理(Test 222)认证指南系列,第 4 部分:监视和性能优化(下)(1)

磁盘指标屏幕

要查看列出磁盘指标的屏幕,可以使用 topas 命令的 –D 标志。此屏幕报告磁盘服务时间、磁盘队列指标和磁盘吞吐量。报告的指标如下:

AQD 等待发送到磁盘的平均请求数量。

AQW 每个请求的队列平均等待时间(以毫秒为单位)。

ART 指示从承载服务器收到已发送读请求的响应的平均时间。后缀指示时间单位。缺省时间单位为毫秒。

AWT 指示从承载服务器收到已发送写请求的响应的平均时间。后缀指示时间单位。缺省时间单位为毫秒。

MRT 指示从承载服务器收到已发送读请求的响应的最长时间。后缀指示时间单位。缺省时间单位为毫秒。

MWT 指示从承载服务器收到已发送写请求的响应的最长时间。后缀指示时间单位。缺省时间单位为毫秒。

图 3 显示了磁盘指标屏幕的输出示例

IBM AIX V5.3 系统管理(Test 222)认证指南系列,第 4 部分:监视和性能优化(下)(1)

常规 topas 子命令

当 topas 命令在运行时,它可以接受一个字符的子命令。每当监视间隔结束,该程序就检查是否输入了表 4 所示的子命令之一,并响应要求的操作。

表 4 topas 命令的子命令

子命令 描述
a 显示所有接受监视的可变子部分(CPU、network、disk、WLM 和 process)。按 a 键始终会将 topas 命令返回到初始主屏幕。
c 关闭累积报告和最忙的 CPU 列表之间的 CPU 子部分。所显示的最忙 CPU 的数量取决于屏幕上可用的空间。
C 大写的 C 键将激活 Cross-Partition 面板,或者如果该面板当前是活动的,则将其复位以显示全局摘要、专用和共享部分。
d 关闭最忙的磁盘列表和系统总体磁盘活动报告之间的磁盘子部分。所显示的最忙磁盘的数量取决于屏幕上可用的空间。
D 大写的 D 键将当前屏幕替换为 Disk Metric 屏幕。此屏幕提供了有关磁盘访问时间和磁盘队列的附加信息。再次按 D 键将切换回缺省主屏幕。
f 将光标移到某个 WLM 类上面并按 f 键,将会在 WLM 屏幕底部显示该类中的进程列表。仅当 topas 处于全屏幕 WLM 显示模式(通过使用 W 键或 –W 标志来实现)时,此键才有效。
h 显示帮助屏幕。
H 显示本地面板的帮助屏幕(如果可用的话)。
L 大写的 L 键将当前屏幕替换为逻辑分区屏幕;并将显示与 lparstat 和 mpstat 提供的指标类似的LPAR、微分区和同步多线程指标。
n 关闭最忙的接口列表和系统总体网络活动报告之间的网络接口子部分。所显示的最忙接口的数量取决于屏幕上可用的空间。
p 打开和关闭活动进程子部分。所显示的最忙进程的数量取决于屏幕上可用的空间。
q 退出该程序。
r 刷新屏幕。
w 打开和关闭工作负载管理 (WLM) 类子部分。所显示的最忙 WLM 类的数量取决于屏幕上可用的空间。
W 大写的 W 键将缺省屏幕替换为全屏幕的 WLM 类屏幕。此屏幕提供了有关 WLM 类和分配到各个类的进程的更详细信息。再次按 W 键将切换回缺省主屏幕。
箭头和 Tab 键 主屏幕中的各个子部分,例如 CPU、Network、Disk、WLM Classes 以及全屏幕的 WLM 和 Process 屏幕等,可以按不同条件进行排序。将光标定位在某个列上面将激活对该列的排序。条目始终是从最高到最低值排序。使用 Tab 键或箭头键可以移动光标。排序仅对 128 个磁盘和 16 个网络适配器有效。

netstat 命令

当您遇到通信问题时,netstat 可能是帮助您确定问题的非常有用的工具。

接口可用性、地址和统计信息

首先,您应该使用 netstat –i 命令来验证所有已配置的接口的状态,如下面的示例所示。接口 en0 已启用,而接口 en1 则关闭了。缺省情况下,netstat 命令尝试将 IP 地址解析到某个主机。要显示 IP 地址,您可以另外使用 n 标志,这样就可以使用 netstat 命令同时查找接口的 MAC 地址和 IP 地址。

示例 使用 netstat -i 确定所有接口的状态

# netstat -i
Name Mtu  Network   Address      Ipkts Ierrs  Opkts Oerrs Coll
en0  1500 link#2   0.2.55.2f.a7.e  14322381   0 14957286 19956   0
en0  1500 9.3.5    server2.itsc.aust 14322381   0 14957286 19956   0
en1* 1500 link#3   0.2.55.2f.a7.f      0   0    1   1   0
en1* 1500 9.1.1    alm-bd-as.almaden    0   0    1   1   0
lo0  16896 link#1              12017   0  12950   0   0
lo0  16896 127     localhost      12017   0  12950   0   0
lo0  16896 ::1               12017   0  12950   0   0
# netstat -in
Name Mtu  Network   Address      Ipkts Ierrs  Opkts Oerrs Coll
en0  1500 link#2   0.2.55.2f.a7.e  14321816   0 14957179 19956   0
en0  1500 9.3.5    9.3.5.195     14321816   0 14957179 19956   0
en1* 1500 link#3   0.2.55.2f.a7.f      0   0    1   1   0
en1* 1500 9.1.1    9.1.1.1         0   0    1   1   0
lo0  16896 link#1              12009   0  12942   0   0
lo0  16896 127     127.0.0.1      12009   0  12942   0   0
lo0  16896 ::1               12009   0  12942   0   0

如果 Ierrs 和 Oerrs 的值不为零,则检验网络接口和电缆或增加对应缓冲区的大小。在以太网上,冲突字段不受支持,并将始终显示 0(零)。

路由表

每次在系统上配置某个接口,都会将对应子网的路由添加到本地路由表中。如果希望系统与位于不是直接连接的网络上的远程系统通信,则必须在路由表中包括该子网的某个特定路由或包括某个缺省路由。确保您指定的网关是可用的并位于直接连接的网络上。可以使用 netstat –rn 命令显示系统中的路由表,如下面的示例所示。对于此示例,您可以看到网络 111.111.0.0 可通过网关 9.3.5.254 进行访问。对于所有其他远程路由,系统将使用缺省网关 9.3.5.41。

示例 显示路由表

# netstat -rn
Routing tables
Destination   Gateway      Flags  Refs   Use If  Exp Groups
Route Tree for Protocol Family 2 (Internet):
default     9.3.5.41     UG    4   64879 en0   -   -
9.1.1.0     9.1.1.1      UHSb   0     0 en1   -   -  =>
9.1.1/24     9.1.1.1      U     0     0 en1   -   -
9.1.1.1     127.0.0.1     UGHS   0     0 lo0   -   -
9.1.1.255    9.1.1.1      UHSb   0     0 en1   -   -
9.3.5.0     9.3.5.195     UHSb   0     0 en0   -   -  =>
9.3.5/24     9.3.5.195     U     4 14699083 en0   -   -
9.3.5.195    127.0.0.1     UGHS   6   1846 lo0   -   -
9.3.5.255    9.3.5.195     UHSb   0     1 en0   -   -
111.111/16    9.3.5.254     UG    0     0 en0   -   -
127/8      127.0.0.1     U     5   10313 lo0   -   -
Route Tree for Protocol Family 24 (Internet v6):
::1       ::1        UH    0     0 lo0   -   -

如果您有多个路由,每个路由具有到相同目标的不同成本,可以使用 netstat -C 命令显示路由成本。在下面的示例中,您可以看到系统有四个不同的路由,每个路由使用不同的网关并具有到达网络 111.111.0.0 的不同成本。

示例 使用 netstat -C 显示具有不同成本的路由

# netstat -Cn
Routing tables
Destination   Gateway      Flags   Wt Policy If  Cost Config_Cost
Route Tree for Protocol Family 2 (Internet):
default     9.3.5.41     UG     1  -  en0    0  0
9.1.1.0     9.1.1.1      UHSb    1  -  en1    0  0 =>
9.1.1/24     9.1.1.1      U     1  -  en1    0  0
9.1.1.1     127.0.0.1     UGHS    1  -  lo0    0  0
9.1.1.255    9.1.1.1      UHSb    1  -  en1    0  0
9.3.5.0     9.3.5.195     UHSb    1  -  en0    0  0 =>
9.3.5/24     9.3.5.195     U     1  -  en0    0  0
9.3.5.195    127.0.0.1     UGHS    1  -  lo0    0  0
9.3.5.255    9.3.5.195     UHSb    1  -  en0    0  0
111.111/16    9.3.5.254     UG     1  -  en0    0  0 =>
111.111/16    9.3.5.253     UG     1  -  en0    5  5 =>
111.111/16    9.3.5.252     UG     1  -  en0   10  10 =>
111.111/16    9.3.5.251     UG     1  -  en0   15  15
127/8      127.0.0.1     U     1  -  lo0    0  0
222.222.222/24  9.1.3.5      UG     1  -  en0    0  0
Route Tree for Protocol Family 24 (Internet v6):
::1       ::1        UH     1  -  lo0    0  0

MTU 大小

可通过网络发送的最大数据包大小称为“最大传输单元”(MTU)。相同物理或逻辑 (VLAN) 网络上的所有设备都应该使用相同的 MTU 大小。

可以使用 netstat –in 命令显示 MTU 大小。

内存缓冲区

内存管理例程为通信目的而保留了有关内核如何处理内存缓冲区 (mbuf) 的统计信息。每个处理器都有自己的 mbuf 池。

可以使用 netstat –m 命令显示这些统计信息,如下面的示例所示。

示例 使用 netstat -m 命令显示 mbuf 统计信息

Kernel malloc statistics:
******* CPU 0 *******
By size      inuse   calls failed  delayed  free  hiwat  freed
32          32    45   0     0   96  4852    0
64          49   56964   0     1   143  4852    0
128         229   15220   0    13   347  2426    0
256         191  8802219   0     9  2321  4852    0
512        3245 39247629   0   1706  4003  6065  18871
1024        127   1499   0    35   25  2426    0
2048        2056   20668   0   2765  2048  3639   714
4096         68    125   0     4   953  1213   746
8192        520   7635   0    505   668   606  2274
16384        512   3057   0    412   303   303   630
32768         0    144   0    24    1   151    0
65536         1    349   0    65   20   151    0
131072        0     6   0     0   86   121    0
******* CPU 1 *******
By size      inuse   calls failed  delayed  free  hiwat  freed
64          2   35430   0     0   62  4852    0
128          1   3136   0     1   95  2426    0
.
.
.
(省略的行)
.
.
.
Streams mblk statistic failures:
0 high priority mblk failures
0 medium priority mblk failures
0 low priority mblk failures

如果失败数量不为零,您可以修改可调整的 thewall 或 maxmbuf。

设备驱动程序统计信息

可以使用 netstat –v 命令显示设备驱动程序信息,如下面的示例所示。数据将使用 netstat 命令来生成。

示例 使用 netstat -v 命令

# netstat -v ent0|more
-------------------------------------------------------------
ETHERNET STATISTICS (ent0) :
Device Type:2-Port 10/100/1000 Base-TX PCI-X Adapter (14108902)
Hardware Address:00:02:55:2f:a7:0e
Elapsed Time:2 days 3 hours 44 minutes 33 seconds
Transmit Statistics:Receive Statistics:
--------------------             -------------------
Packets:14928988               Packets: 14347559
Bytes:2150983710               Bytes: 1895521071
Interrupts:0                 Interrupts: 2691358
Transmit Errors:0              Receive Errors: 0
Packets Dropped:10547            Packets Dropped: 0
Bad Packets: 0
Max Packets on S/W Transmit Queue: 8656
S/W Transmit Queue Overflow: 43999
Current S/W+H/W Transmit Queue Length: 1
Broadcast Packets:939            Broadcast Packets: 435771
Multicast Packets:0             Multicast Packets: 34
No Carrier Sense:0              CRC Errors: 0
DMA Underrun:0                DMA Overrun: 0
Lost CTS Errors:0              Alignment Errors: 0
Max Collision Errors:0            No Resource Errors: 0
Late Collision Errors:0           Receive Collision Errors: 0
Deferred:0                  Packet Too Short Errors: 0
SQE Test:0                  Packet Too Long Errors: 0
Timeout Errors:0               Packets Discarded by Adapter: 0
Single Collision Count:0           Receiver Start Count: 0
Multiple Collision Count: 0
Current HW Transmit Queue Length: 1
General Statistics:
-------------------
No mbuf Errors: 0
Adapter Reset Count: 0
Adapter Data Rate: 200
Driver Flags:Up Broadcast Running
Simplex 64BitSupport ChecksumOffload
PrivateSegment LargeSend DataRateSet
2-Port 10/100/1000 Base-TX PCI-X Adapter (14108902) Specific Statistics:
--------------------------------------------------------------------
Link Status :Up
Media Speed Selected:Auto negotiation
Media Speed Running:100 Mbps Full Duplex
PCI Mode:PCI-X (100-133)
PCI Bus Width:64-bit
Latency Timer: 144
Cache Line Size: 128
Jumbo Frames:Disabled
TCP Segmentation Offload:Enabled
TCP Segmentation Offload Packets Transmitted: 10649
TCP Segmentation Offload Packet Errors: 0
Transmit and Receive Flow Control Status:Disabled
Transmit and Receive Flow Control Threshold (High): 45056
Transmit and Receive Flow Control Threshold (Low): 24576
Transmit and Receive Storage Allocation (TX/RX): 16/48

此命令的输出将包括非常有用的消息,例如:

Device Type 适配器类型和可能的介质速度的描述。

Hardware Address 适配器的 MAC 地址。

Elapsed Time 自从重设统计信息以来所经过的时间。

Packets 成功传输的数据包数量。

Transmit Errors 输出错误的数量。这是由于硬件/网络错误导致的失败传输的计数器。

Packets Dropped 设备驱动程序已接受进行传输但是由于任何原因而未传输的数据包数量。

S/W Transmit Queue Overflow

已溢出软件传输队列的传出数据包总数。

No Carrier Sense 由于没有载波侦听错误而导致的失败传输数量。

Current HW Transmit Queue Length

硬件传输队列上当前存在的传出数据包数量。

No Resource Errors 由于适配器上没有接收缓冲区可用而被硬件丢弃的传入数据包数量。

No mbuf Errors mbufs 对设备驱动程序不可用的次数。

Adapter Reset Count

已重新初始化适配器的次数。

Link Status 接口的当前状态。

Media Speed Selected

适配器的已配置连接速度。

Media Speed Running

适配器的当前连接速度。

Jumbo Frames 指定是否启用 jumbo 帧。

协议统计信息

可以使用 netstat –s 命令显示所有协议的统计信息,或者使用 netstat –p 命令显示特定协议的统计信息,如下面的示例 所示。所显示的每部分数据与对应的协议相关。

示例 显示协议统计信息

# netstat -s
icmp:
5286 calls to icmp_error
0 errors not generated because old message was icmp
Output histogram:
echo reply: 161
destination unreachable: 5286
0 messages with bad code fields
0 messages < minimum length
0 bad checksums
0 messages with bad length
Input histogram:
echo reply: 13340245
destination unreachable: 5277
echo: 161
161 message responses generated
igmp:
34 messages received
0 messages received with too few bytes
0 messages received with bad checksum
0 membership queries received
0 membership queries received with invalid field(s)
34 membership reports received
0 membership reports received with invalid field(s)
34 membership reports received for groups to which we belong
4 membership reports sent
tcp:
83954 packets sent
75656 data packets (27181497 bytes)
558 data packets (945603 bytes) retransmitted
6237 ack-only packets (4732 delayed)
0 URG only packets
.
.
.
(省略的行)
.
.
.
udp:
178123 datagrams received
0 incomplete headers
0 bad data length fields
0 bad checksums
5287 dropped due to no socket
154419 broadcast/multicast datagrams dropped due to no socket
0 socket buffer overflows
18417 delivered
23689 datagrams output
ip:
14076261 total packets received
0 bad header checksums
0 with size smaller than minimum
0 with data size < data length
0 with header length < data size
0 with data length < header length
0 with bad options
0 with incorrect version number
644016 fragments received
.
.
.
(省略的行)
.
.
.
ipv6:
0 total packets received
0 with size smaller than minimum
0 with data size < data length
.
.
.
(省略的行)
.
.
.
icmpv6:
0 calls to icmp6_error
0 errors not generated because old message was icmpv6
Output histogram:
unreachable: 0
packets too big: 0
time exceeded: 0
.
.
.
(省略的行)
.
.
.
# netstat -p ip
ip:
14077033 total packets received
0 bad header checksums
0 with size smaller than minimum
0 with data size < data length
0 with header length < data size
0 with data length < header length
0 with bad options
0 with incorrect version number
644016 fragments received
0 fragments dropped (dup or out of space)
0 fragments dropped after timeout
181998 packets reassembled ok
13609226 packets for this host
.
.
.
(省略的行)

套接字

要显示有关系统上使用的套接字的信息,可以使用 netstat –a 命令,如下面的示例所示。

您可以查找有用的信息,例如使用的协议、IP 地址或套接字状态。

示例 使用 netstat -a 命令

活动的 Internet 连接(包括服务器)
Proto Recv-Q Send-Q Local Address     Foreign Address    (state)
tcp4    0   0 *.daytime       *.*          LISTEN
tcp    0   0 *.ftp         *.*          LISTEN
tcp    0   0 *.telnet        *.*          LISTEN
tcp4    0   0 *.smtp         *.*          LISTEN
tcp4    0   0 *.time         *.*          LISTEN
tcp4    0   0 *.sunrpc        *.*          LISTEN
tcp4    0   0 *.smux         *.*          LISTEN
tcp    0   0 *.exec         *.*          LISTEN
tcp    0   0 *.login        *.*          LISTEN
tcp    0   0 *.shell        *.*          LISTEN
tcp4    0   0 *.printer       *.*          LISTEN
tcp4    0   0 *.rmc         *.*          LISTEN
tcp4    0   0 *.sco_prin       *.*          LISTEN
tcp4    0   0 *.sco_s5_p       *.*          LISTEN
tcp4    0   0 *.filenet-       *.*          LISTEN
tcp4    0   0 *.filenet-       *.*          LISTEN
tcp4    0   0 *.filenet-       *.*          LISTEN
tcp4    0   0 *.wsmserve       *.*          LISTEN
tcp4    0   0 server2.itsc.aus.33060 kcyb72b.x11      ESTABLISHED
tcp4    0   0 server2.itsc.aus.filen server2.itsc.aus.filen ESTABLISHED
tcp4    0   0 server2.itsc.aus.filen server2.itsc.aus.filen ESTABLISHED
tcp4    0   0 server2.itsc.aus.filen server2.itsc.aus.filen ESTABLISHED
tcp4    0   0 server2.itsc.aus.filen server2.itsc.aus.filen ESTABLISHED
tcp4    0   0 server2.itsc.aus.filen server2.itsc.aus.filen ESTABLISHED
tcp4    0   0 server2.itsc.aus.filen server2.itsc.aus.filen ESTABLISHED
tcp4    0   0 localhost.smux     localhost.filenet-   ESTABLISHED
tcp4    0   0 localhost.filenet-   localhost.smux     ESTABLISHED
tcp4    0   0 server2.itsc.aus.telne tlm06.itsc.austi.carda ESTABLISHED
tcp4    0   17 server2.itsc.aus.telne tlm06.itsc.austi.mini- ESTABLISHED
tcp4    0   0 server2.itsc.aus.telne kcyb72b.discp-cl    ESTABLISHED
tcp4    0   0 server2.itsc.aus.telne kcyb72b.smart-di    ESTABLISHED
tcp4    0   0 server2.itsc.aus.telne esmsrv.itsc.aust.ms-cl ESTABLISHED
udp4    0   0 *.daytime       *.*
udp4    0   0 *.time         *.*
udp4    0   0 *.sunrpc        *.*
udp4    0   0 *.snmp         *.*
udp4    0   0 *.syslog        *.*
udp4    0   0 *.ntalk        *.*
udp4    0   0 *.rmc         *.*
udp4    0   0 *.xmquery       *.*
udp4    0   0 *.filenet-       *.*
udp4    0   0 *.32798        *.*
udp4    0   0 *.32801        *.*
Active UNIX domain sockets
SADR/PCB     Type  Recv-Q Send-Q   Inode      Conn       Refs      Nextref   Addr
|-------10--------20--------30--------40--------50--------60--------70--------80--------9|
|-------- XML error: The previous line is longer than the max of 90 characters ---------|
f1000d0001d77400 stream   0   0        0 f1000d000198be80        0        0
|-------10--------20--------30--------40--------50--------60--------70--------80--------9|
|-------- XML error: The previous line is longer than the max of 90 characters ---------|
f1000d0002021b00
f1000d00002dc000 dgram    0   0 f1000c00211673f8        0        0        0 /dev/.SRC-unix/SRCvFql7a
|-------10--------20--------30--------40--------50--------60--------70--------80--------9|
|-------- XML error: The previous line is longer than the max of 90 characters ---------|
f1000d0000476980

要显示有关系统上打开的套接字的详细信息,可以使用 netstat –an 命令。

Tags:IBM AIX

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接