Go to main content

手册页第 7 部分:标准、环境、宏、字符集和杂项

退出打印视图

更新时间: 2018年8月8日 星期三
 
 

ssid (7)

名称

ssid - 统计信息存储标识符

描述

Oracle Solaris 统计信息存储库使用统计信息标识符(称为 ssid),ssid 可命名系统资源、统计信息和事件。SSID 还对事件输出的统计信息和格式指定算术和统计运算。

ssid 由 sstore(1) 命令和 libsstore(3LIB) 库调用使用。ssid 可以通过元数据定义,如 ssid-metadata(7) 手册页中所述。

概述

ssid 是一个字符串,其中只有 //: 是保留序列,用于分隔 ssid 的各个组成部分。每个组成部分均可有自己的字符限制。

标识系统资源需要一对 //:class//:res 组成部分。以下示例标识了 CPU 0:

//:class.cpu//:res.id/0

//:stat 组成部分标识统计信息。以下 SSID 表示 CPU 0 的使用情况:

//:class.cpu//:res.id/0//:stat.usage

某些统计信息可以视为聚合或按选定分区查看,正如 //:part 部分中所述。例如,CPU 使用情况可以按模式(内核、用户等)细分:

//:class.cpu//:res.id/0//:stat.usage//:part.mode

事件是指对资源或类进行时间特定的更改。以下 SSID 描述了 CPU 0 的故障:

//:class.cpu//:res.id/0//:event.fault

可以针对统计信息采取各种不同的运算。例如:

//:class.cpu//:res.id/0//:stat.usage//:part.mode//:op.rate

可以针对事件采取一组预定义的格式化操作。

//:class.cpu//:res.id/0//:event.fault//:fmt.summary

系统资源之间的关系可以表示为 ssid 中的拓扑。

分片和通配符表示法可用于匹配 ssid 中的多项。* 是简单的通配符。以下示例说明如何匹配 ssid 中的 CPU:

匹配所有 CPU
//:class.cpu//:res.id/*
匹配特定 CPU
//:class.cpu//:res.id///:s.[0:5]

SSID 的每个组成部分都有元数据,其中包含说明和数据类型等信息。使用 sstore(1)info 子命令可检索此信息。

集合是对统计信息和事件组的引用。

组成部分

SSID 可以具有以下组成部分:

//:system

生成统计信息的系统。缺省值为 //:system.name/localhost。目前仅支持 //:system.name/localhost

//:class//:res

系统资源由类、资源类型和资源名称的组合标识。类定义资源如何在该类内命名。单个资源可通过同一类中的多个名称获取。例如,以下两个名称均指代同一设备。

  • //:class.disk//:res.dev/zvblk0

  • //:class.disk//:res.name/zvblk0

SSID 中的资源名称通常与在管理命令中使用的资源名称相同。

另请注意,某些资源可能会以不同的名称(形式上称为别名)出现在多个类中。例如,某磁盘可能同时出现在 //:class.disk//:class.dev 中。但是,给定资源的所有别名并非始终可用。

类名称只能包含字母数字字符(强烈建议使用小写)和连字符 (-),并且必须以字母数字字符开头。资源名称没有限制。

作为最佳实践,添加类时应使用唯一公司名称。//:class.solaris///:class.s/ 已显式保留。//:class.site 可用于管理。

查看类

可以使用以下命令查看特定系统上的当前类列表:

$ sstore list //:class.*
查看资源

可以使用以下命令查看类中的资源:

$ sstore list //:class.cpu//:res.*

拓扑

资源之间的关系在 ssid 名称空间中表示为拓扑链接。无论拓扑如何,均可按 ssid 中的最后一个类和资源引用系统中的任何资源。资源从不按其拓扑单独命名。

尽管您无需知道系统拓扑即可命名资源,但很多情况下,浏览和表示拓扑非常有用。通过允许类/资源对出现在其他相关资源之后(如以下示例中所示),可以表示拓扑:

//:class.chip//:res.id/0//:class.cpu//:res.id/0
//:class.chip//:res.id/0//:class.cpu//:res.id/1

这说明芯片 0 包含 cpu 0 和 1。

拓扑仅在特定时间点有效,因为它们会发生变化。通过浏览过去某个时间范围内的名称空间,可以查询过去某个时间点的拓扑。

//:stat

资源和类均可具有统计信息。统计信息是任何一条关于资源或类的信息。系统提供了一组受支持的通用统计信息类型,例如,计数器(首选)和标量。有关通用元数据和特定统计信息类型的更多信息,请参见 sstore(7)

//:class.link/phys//:res.name/net0//:stat.in-bytes
//:part

只能对统计信息进行分区。通过分区可以动态查看构成该统计信息的实体。分区可以定义为 staticdynamicstatic 分区包括该分区中各个实体的确切名称的完整枚举(在元数据中)。一个此类 static 分区是 CPU 使用情况的 mode partition,如下所示:

//:class.cpu//:stat.usage//:part.mode

dynamic 分区返回不同的实体列表,具体取决于查询时间。通常,您应当将分区定义为完整。将所有实体组合到一个分区中应当生成 100% 的统计信息。可以使用 sstore list 命令搜索统计信息上的分区,如下所示:

$ sstore list //:class.cpu//:stat.usage//:part.*
//:event

事件是资源或类更改的时间特定的信息。目前,系统针对各种资源的故障和管理操作捕获事件。

例如,所有 CPU 的管理操作、故障和警报分别如下所示:

  • //:class.cpu//:res.id/*//:event.adm-action
  • //:class.cpu//:res.id/*//:event.fault
  • //:class.cpu//:res.id/*//:event.alert
//:op

允许对统计信息执行一组预定义的数学和统计运算。所有特定统计信息或事件可用的运算均受其类型和元数据限制。

运算的完整列表记录在 ssid-op(7) 中,可以通过以下命令显示:

//:class.cpu//:stat.usage//:part.mode//:op.rate
//:fmt

允许针对事件采取一组预定义的格式化操作。格式化操作的完整列表记录在 ssid-op(7) 中,可以通过以下命令显示:

//:class.cpu//:res.id/0//:event.fault//:fmt.summary
//:collection

有关更多信息,请参见 ssid-collection.json(5) 手册页

//:swildcards

可以使用 * 作为简单的通配符机制。例如,可按如下所示匹配所有类:

//:class.*

* 可以随时出现并与下一个 //: 分隔符匹配。例如,可按如下所示匹配所有类:

//:clas*

还可以使用分片匹配名称空间中的资源、统计信息、分区以及其他实体的列表。这在使用运算时可能非常有用。

可以使用分片匹配 ID 为 0-5 的 CPU,如以下示例中所示:

//:class.cpu//:res.id///:s.[0:5]

另请参见

sstore(1)ssid-collection.json(5)ssid-metadata(7)、ssid-op(7)sstoreadm(1)