sstore - Solaris Statistics Store
通过 Oracle Solaris Statistics Store (sstore),可以捕获、导出并显示统计信息系统信息库中包含的统计信息和事件信息。
本手册页简要概述了 sstore 功能,并通过引用手册页提供更多信息。
sstore 功能由 sstored(8) 提供。缺省系统统计信息系统信息库由服务 svc:/system/sstore:default。 管理
Oracle Solaris Statistics Store 使用的标识符称为统计信息存储标识符 (Statistics Store Identifier, ssid)。有关更多信息,请参见 ssid(7) 手册页。ssid 可命名系统资源、统计信息和事件。ssid 还可以指定统计信息和事件的统计运算和格式。
ssid 由 sstore(1) 命令和 libsstore(3LIB) 库调用使用。ssid 可以通过元数据定义,如 ssid-metadata(7) 手册页中所述。
例如,CPU 0 的用法由以下 ssid 指定:
//:class.cpu//:res.id/0//:stat.usage
sstore list 命令允许使用通配符浏览名称空间。名称空间的每个元素均由元数据进行描述,元数据可以通过 sstore info 命令列出。
统计信息和事件可以使用 sstore 命令的 capture 子命令或者通过 sstore_data_read(3SSTORE) 函数捕获并输出。
任何时候记录的统计信息均会保存为历史数据。但是,并非所有统计信息均会在所有时间点主动收集(捕获)。Collections(如 ssid-collection.json(5) 中所述)描述统计信息已显式配置为以持久方式捕获。
使用 sstore(1) 命令的 export 子命令,可以在 CLI 中查看历史统计信息。
由统计信息存储捕获的数据是从一组提供者收集来的。对于提供的统计信息或事件,每个提供者在名称空间中都有一个本机位置。本机提供者 ssid 视为实现详细信息,不显示在缺省输出中。但是,来自提供者的特定统计信息将映射到 ssid(7) 名称空间的更稳定部分中。
统计信息存储支持以下提供者:
统计信息存储中将自动提供通过查询 libkstatv2 库获得的所有 kstat。这些统计信息位于 //:class.kstat 中,并使用由 kstatv2 库提供的名称。如果可用,将会继承 kstatv2 元数据。
通过不时地查询 /proc 来使进程可用。这些统计信息位于 //:class.proc 下。由于名称空间通过轮询填充,所以可能会缺少短暂的进程。如果用户无法查看 /proc 下的 pids,那么也无法通过 sstore 进行查看。
大量 API 允许用户级的应用程序直接为统计信息存储提供统计信息。A C API 允许用户级的程序在共享内存位置中更新基于计数器的统计信息。请求时,sstored(8) 按照自己的速率对共享数据进行抽样,无需考虑提供者更新。这消除了锁定步骤更新的性能开销,使得统计信息的更新过程变得非常高效。
有关更多信息,请参见 sstore_data_attach(3SSTORE) 手册页。
缺省情况下,应用程序统计信息应在 //:class.app/<company/product/app> 中创建
//:class.app/solaris/ 保留供 Oracle Solaris 使用。
FMA 事件、故障、缺陷和警报由统计信息存储使用,并提供给 //:class.event 中的统计信息存储使用者。
DTrace 统计信息的格式目前是专用的。//:class.dtrace 中提供了由 D scripts 生成的统计信息。
sstore(1)、libsstore(3LIB)、ssid-metadata(7)、ssid-op(7)、sstoreadm(1)、sstored(8)