本章介绍如何获取有关由 IPQoS 系统处理的流量的记帐和统计信息。本章包含以下主题:
以下任务列表列出了使用 flowacct 模块获取有关通信流的信息的一般任务。此列表还链接到执行这些任务的过程。
任务 |
说明 |
参考 |
---|---|---|
1. 创建包含通信流的记帐信息的文件。 |
使用 acctadm 命令创建一个文件,用来包含 flowacct 处理所得的结果。 | |
2. 在 IPQoS 配置文件中定义 flowacct 参数。 |
为 timer、timeout 和 max_limit 参数定义值。 |
您可以使用 IPQoS flowacct 模块来收集有关通信流的信息。例如,您可以收集源地址和目标地址、流中包的数量及类似数据。积累和记录有关流的信息的过程称为流记帐。
对属于特定类的通信进行流记帐的结果会记录在一个流记录表中。每个流记录都包括一系列属性。这些属性包含有关一个时间间隔内特定类的通信流量的数据。有关 flowacct 属性列表,请参阅表 37–4。
在记帐客户机的服务级别协议 (service-level agreement, SLA) 中定义的流记帐对于这些记帐客户机特别有用。您还可以使用流记帐来获取关键应用程序的流统计信息。本节包含使用 flowacct 和 Oracle Solaris : 扩展记帐功能来获取有关通信流量的数据的任务。
以下信息将在除本章以外的其他章节中介绍:
有关在 IPQoS 配置文件中创建 flowacct 的操作语句的说明,请参阅如何在 IPQoS 配置文件中配置流控制。
要了解 flowacct 的工作原理,请参阅分类器模块。
有关技术信息,请参阅 flowacct(7ipp) 手册页。
在向 IPQoS 配置文件添加 flowacct 操作之前,必须通过 flowacct 模块为流记录创建文件。为此,可以使用 acctadm 命令。acctadm 可以将基本属性或扩展属性记录到该文件中。表 37–4 中列出了所有的 flowacct 属性。有关 acctadm 的详细信息,请参阅 acctadm(1M) 手册页。
在启用 IPQoS 的系统上承担主管理员角色或成为超级用户。
主管理员角色拥有主管理员配置文件。有关如何创建该角色并将其指定给用户,请参见《系统管理指南:基本管理》中的第 2 章 “使用 Solaris Management Console(任务)”。
创建基本流记帐文件。
以下示例说明如何为示例 34–1 中配置的高级 Web 服务器创建基本流记帐文件。
# /usr/sbin/acctadm -e basic -f /var/ipqos/goldweb/account.info flow |
调用带有 -e 选项的 acctadm。-e 选项会启用后跟的参数。
说明仅会在文件中记录 flowacct 的八个基本属性的数据。
指定用于包含 flowacct 所获流记录的文件的全限定路径名。
指示 acctadm 启用流记帐。
通过键入不带参数的 acctadm,查看有关 IPQoS 系统上的流记帐的信息。
acctadm 会生成以下输出:
Task accounting: inactive Task accounting file: none Tracked task resources: none Untracked task resources: extended Process accounting: inactive Process accounting file: none Tracked process resources: none Untracked process resources: extended,host,mstate Flow accounting: active Flow accounting file: /var/ipqos/goldweb/account.info Tracked flow resources: basic Untracked flow resources: dsfield,ctime,lseen,projid,uid
所有项(最后四个项除外)都可用于 Solaris 资源管理器功能。下表介绍了特定于 IPQoS 的项。
项 |
说明 |
---|---|
Flow accounting: active |
指示流记帐已打开。 |
Flow accounting file: /var/ipqos/goldweb/account.info |
指定当前流记帐文件的名称。 |
Tracked flow resources: basic |
指示仅跟踪基本流属性。 |
Untracked flow resources: dsfield,ctime,lseen,projid,uid |
列出文件中未被跟踪的 flowacct 属性。 |
# acctadm -e extended -f /var/ipqos/goldweb/account.info flow |
(可选)返回,仅记录记帐文件中的基本属性。
# acctadm -d extended -e basic -f /var/ipqos/goldweb/account.info |
-d 选项可禁用扩展记帐。
查看流记帐文件的内容。
有关查看流记帐文件内容的说明,请参阅《系统管理指南:Oracle Solaris Containers-资源管理和 Oracle Solaris Zones》中的“libexacct 的 Perl 接口”。
有关扩展记帐功能的详细信息,请参阅《系统管理指南:Oracle Solaris Containers-资源管理和 Oracle Solaris Zones》中的第 4 章 “扩展记帐(概述)”。
要在 IPQoS 配置文件中定义 flowacct 参数,请参阅如何在 IPQoS 配置文件中为类启用记帐。
要列显使用 acctadm 创建的文件中的数据的信息,请参阅《系统管理指南:Oracle Solaris Containers-资源管理和 Oracle Solaris Zones》中的“libexacct 的 Perl 接口”。
可以使用 kstat 命令生成 IPQoS 模块的统计信息。使用以下语法:
/bin/kstat -m ipqos-module-name |
可以指定任何有效的 IPQoS 模块名称,如表 37–5 中所示。例如,要查看由 dscpmk 标记器生成的统计信息,请使用以下形式的 kstat:
/bin/kstat -m dscpmk |
有关详细技术信息,请参阅 kstat(1M) 手册页。
以下是运行 kstat 以获取有关 flowacct 模块的统计信息的可能结果示例。
# kstat -m flowacct module: flowacct instance: 3 name: Flowacct statistics class: flacct bytes_in_tbl 84 crtime 345728.504106363 epackets 0 flows_in_tbl 1 nbytes 84 npackets 1 snaptime 345774.031843301 usedmem 256 |
指定通信流量所属的类的名称,在本示例中为 flacct。
流表中的总字节数。总字节数是指当前驻留在流表中的所有流记录的字节总和。此流表的总字节数为 84。如果没有流在表中,则 bytes_in_tbl 的值为 0。
上次创建此 kstat 输出的时间。
在处理过程中导致错误的包的数量,在本示例中为 0。
流表中的流记录的数量,在本示例中为 1。该表中没有记录时,flows_in_tbl 的值为 0。
此 flowacct 操作实例发现的总字节数,在本示例中为 84。该值包括流表中当前的字节,还包括已超时而不再在流表中的字节。
此 flowacct 操作实例发现的包的总数,在本示例中为 1。npackets 包括当前位于流表中的包。npackets 还包括已超时(不再位于流表中)的包。
由此 flowacct 实例维护的流表所使用的内存(以字节为单位)。在本示例中,usedmem 值为 256。当流表没有任何流记录时,usedmem 的值为 0。