管理与编程指南


Net.Data 高速缓存

高速缓存有助于您提高应用程序用户的响应时间。Net.Data 将来自对 Web 服务器的请求存储 在本地以备快速检索,直到刷新信息时为止。本章描述 Net.Data 高速缓存的概念、任务和限制。

关于 Web 页面高速缓存

许多软件组件都为 Web 应用程序执行高速缓存。这里是高速缓存应用程序的一些示例:

所有这些组件都各自完成它们的高速缓存过程,但是整个结果为用户改进了响应时间。为了确定 何时刷新高速缓存的项目,Web 组件(浏览器、代理服务器和 Web 服务器)通常考虑以下不同选项,包括:

关于 Net.Data 高速缓存

Net.Data 本身为 Net.Data 宏生成的频繁访问页面和相关数据项提供自己的高速缓存功能。通过从 Net.Data 高速缓存中传送页面,可以节省为了创建页面而运行 Net.Data 宏和访问数据库的时间。

对于每个服务器,可以使用一个高速缓存管理器。建议 : 为 Net.Data 的许多实例使用一个高速缓存管理器,每个高速缓存管理器对应多个高速缓存。

图 26显示 Net.Data 使用高速缓存管理器来管理来自一个宏 的 HTML 输出的高速缓存过程。此输出可能包含来自数据库的数据。

图 26. Net.Data 高速缓存


Figure dtwa1100 not displayed.

Net.Data 高速缓存术语

Net.Data 文档使用以下项目来描述 Net.Data 高速缓存。

高速缓存
一类包含最近访问过的数据的内存,是为了加快对相同数据的后继访问而设计的。高速缓存 经常是用来对网络中可以访问的、频繁使用的数据保留一个本地副本。在 Net.Data 中,指这样的 本地内存:它包含 Net.Data 所生成的 HTML Web 页面,以让 Net.Data 宏重新使用。在高速缓存 中存储了页之后,Net.Data 就不必重新生成高速缓存中的信息。每个高速缓存都是由高速缓存管理器来管理的,高速缓存管理器负责管理多个高速缓存,并可以服务于 Net.Data 的多个实例。

高速缓存标识符
一个标识特定高速缓存的字符串。

高速缓存管理器
为一台机器管理高速缓存的程序。它可以管理多个高速缓存。

高速缓存管理器配置文件
此文件包含一些设置,Net.Data 使用这些设置来确定对记录、跟踪、高速缓存大小 和其他选项的设置。它包含对高速缓存管理器和特定高速缓存管理器所管理的所有高速缓存文件的 设置。在 Net.Data 中封装时,文件名是 cachemgr.cnf

Net.Data 高速缓存概念

根据系统上具有多少 HTTP 服务器以及每个 HTTP 服务器是否运行 Net.Data 的自身副本 (使用各自的 Net.Data 配置文件),您可以使 Net.Data 的所有副本与一个或多个高速缓存管理器相关联。一个高速缓存管理器可以支持许多内存中的高速缓存,每个高速缓存具有 一个高速缓存标识符图 27显示一个高速缓存管理器,它处理多个宏并管理两个高速缓存。

图 27. 高速缓存管理器处理多个宏和高速缓存


Figure dtwa1110 not displayed.

任何数目的项目(称为高速缓存的页)都可以放在一个高速缓存中。每 个高速缓存的页具有唯一的标识符,例如一个统一资源定位器 (URL)。一个页面是一个完整的 HTML 页面或它的一个分段。

当 Net.Data 接收一个高速缓存化的数据的请求(例如,来自内置函数 DTW_CACHE_PAGE)时, 将发生以下步骤:

  1. Net.Data 连接至高速缓存管理器。
  2. Net.Data 检查数据是否已经高速缓存。
  3. Net.Data 断开与高速缓存管理器的连接

当宏成功完成处理之后,高速缓存管理器高速缓存 HTML 输出,确保只高速缓存 成功生成的 Web 页。数据直到发送到浏览器才被高速缓存,用户看到的数据与高速缓存的 数据相同。

当 Net.Data 遇到一个错误并从宏中退出时,高速缓存管理器:

Net.Data 高速缓存的限制

Net.Data 高速缓存具有以下限制:

安全性
高速缓存管理器不提供安全性。例如,一个数据库用户运行某个宏且将高速缓存某数据库结果页。而另一个数据库用户可以检索该高速缓存的页。

直接请求
Net.Data 的直接请求调用不能使用 Net.Data 高速缓存。

Net.Data 高速缓存接口

Net.Data 提供了一组灵活的接口,供您在为应用程序配置和设置高速缓存时使用。 表 14描述了使用 Net.Data 高速缓存功能的各种选项以及这些选项描述的地方。

表 14. Net.Data 高速缓存接口
接口 描述 转至 ...
高速缓存管理器配置选项 您可以在高速缓存管理器配置文件的高速缓存管理器节中为高速缓存管理器指定许多选项,例如记录和跟踪。 定义高速缓存管理器
高速缓存配置选项 在 Net.Data 的高速缓存管理器的单个实例中,您可以定义 许多高速缓存来保存高速缓存项。每个高速缓存具有自己的特性集(例如大小和位置)和高速缓存标 识符。在高速缓存管理器配置文件中的高速缓存节中定义了这些特性。每个节是由高速缓存标识符 来标识的。 定义高速缓存
Net.Data 初始化选项 如果 Net.Data 和相应的高速缓存管理器在各自系统上运行 ,则必须在 Net.Data 初始化文件中指定高速缓存管理器系统和端口号。 高速缓存管理器配置变量
Net.Data 高速缓存内置函数 可以使用 Net.Data 内置函数来处理 Net.Data 高速缓存的内 容。在适当的宏函数中指定高速缓存标识符来选取具有最合适特性的高速缓存。 参见Net.Data 参考的内置函数一章

高速缓存管理器的规划

在规划 Net.Data 高速缓存功能的使用时,必须考虑:

要使用 Net.Data 高速缓存,必须完成以下步骤,即需要了解您希望如何使用高速缓存。

建议:在着手于使用高速缓存的较大应用程序之前,必须先规 划和设计应用程序的原型,然后才将它投入生产。

高速缓存错误

当 Net.Data 遇到内部错误,使它在完成处理之前退出宏,则高速缓存管理器 不高速缓存 Web 页。高速缓存管理器不高速缓存不完整的或包含 Net.Data 错误 的页面。这些错误类型包含宏语法错误和 SQL 错误。

有错误的页在以下条件下可被高速缓存:

高速缓存标识符

在设计应用程序的高速缓存时,需要规划两种类型的标识符。

配置高速缓存管理器和 Net.Data 高速缓存

高速缓存管理器管理系统中一个或多个高速缓存。这些高速缓存中的每一个都包含动态生成的 HTML 页的内容。要配置高速缓存管理器和每个高速缓存,必须更新高速缓存管理器配置文件 cachemgr.cnf 中的关键字值。

高速缓存管理器配置文件中包含两种类型的节:高速缓存管理器节和高速缓存定义节。下列步骤 描述如何为应用程序定制这两个类型的节。

定义高速缓存管理器

通过指定允许的关键字的值,来定义高速缓存管理器节。所有关键字都是可选的;除非您不希望接受缺省值,否则不必指定它们。

要定义高速缓存管理器:

  1. 指定高速缓存管理器日志文件的名称。日志显示所有高速缓存的所有事务的动作, 并供调试和问题分析来使用。

    缺省情况是将信息写至控制台。

    语法:

    log=path
    

    其中,path 是高速缓存文件的路径与文件名称。

    提示:要指定每个高速缓存的日志文件,可在高速缓存定义节中使用 tran-log 关键字。

  2. 指定高速缓存管理器用于接受请求的 TCP/IP 端口号。只对于从远程机上联系高速 缓存管理器时,才使用该端口号码。

    此值必须与 DTW_CACHE_PORT 配置变量 在 Net.Data 初始化文件中指定的端口号匹配。用以下方法确定缺省值:

    1. 高速缓存管理器在路径 /etc/services 中检查与名称 ibm-cachemgrd 关联的值。如果找到此值,高速缓存管理器将使用此值 。如果找不到,则使用下一种方法。
    2. 高速缓存管理器使用缺省端口 7175。

    语法:

    port=port_number
    

    其中 port_number 是唯一的 TCP/IP 端口号。

  3. 以秒为单位指定一个最大时间长度,在此时间内,高速缓存管理器应当允许暂挂的读取操 作保持活动。如果超过此时间,高速缓存管理器删除连接。

    缺省值是 30 秒。

    语法:

    connection-timeout=seconds
    

    其中 seconds 是秒数,用于暂挂的读取操作应当活动的时间长度。

  4. 指定是否记录信息。

    缺省值是 nooff

    语法:

    logging=yes|on|no|off
    

    其中:

    yes|on
    指示需要进行记录。

    no|off
    指出不应执行记录。
  5. 指定是否环绕日志。

    缺省值是 no。如果指定为 yes,则在达到最大大小时当前日志将关闭 (参见下面的 log-size),文件具有文件类型 .old,新的日志被打开。只维护一代 日志文件(现存的 .old 文件被覆盖)。

    语法:

    wrap-log=yes|no
    

    其中:

    yes
    指定环绕日志。

    no
    指定不环绕日志。
  6. 指定最大大小,日志最多可为此大小(如果指定了环绕日志的话)。

    缺省值是 64000。

    语法:

    log-size=bytes
    

    其中 bytes 是最大大小的字节数。

  7. 指定要写入日志的信息级别。当这些值包含在 trace_flag_definitions 列表中时 ,则已被设置,不再需要进行任何设置。

    缺省值是只记录高速缓存管理器启动和关闭信息。

    语法:

    trace-flags=trace_flag_definitions
    

    其中:

    D_ALL
    启用所有跟踪标志。

    D_NONE
    禁用所有跟踪标志

示例:启用指定所有跟踪标志的跟踪标志:

trace=flags=D_ALL

节的示例:一个有效的配置管理器节:

cache-manager {
port = 7175
connection-timeout = 60
logging = off
log = /local/netdata/cachemgr/logs/cachemgr.log
wrap-log = yes
log-size = 32KB
} 

定义高速缓存

通过指定允许的关键字的值,来定义“高速缓存定义”节。大部分关键字都是可选的,除非您不希 望使用缺省值,否则不必指定它。

要定义一个高速缓存:

  1. 指定要保持高速缓存页的路径和目录名。就启动来说,包含此目录的文件系统必须至少象 fssize(参见下面)的值 一样大;否则高速缓存将不能启动。可将此值指定为一个绝对路径名或对应于高速缓存管理器启动 的路径的相对路径名。

    必需的。

    语法:

    root=path_name
    

    其中:

    path_name
    是高速缓存页所存储的绝对或相对的目录和路径名。
  2. 指定在高速缓存管理器启动时是否激活当前高速缓存。

    不是必需的;缺省值是 yes。如果设置为 no,则高速缓存被定义在高速缓存管理器中但是不激活。以后您可以用 cacheadm 命令来激活它。

    语法:

    caching=yes|no
    

    其中:

    yes
    指出当高速缓存管理器启动时将激活高速缓存。

    no
    指出当高速缓存管理器启动时将不激活高速缓存。
  3. 指定由当前高速缓存中的页在文件系统中所使用的最大空间。超过最大空间数时,高速缓存 管理器从最旧的页开始删除足够的页,以将高速缓存所占有的总空间限制在一个极限之内。您可以 通过将该值设置为一个很大的数目来有效禁用对条目的自动清除;但是如果超过物理文件系统空间 ,则试图将新的页面添加到高速缓存将会失败。

    不是必需的;缺省值是 0(没有高速缓存至磁盘)。

    语法:

    fssize=nnB|nnKB|nnM
    

    其中:

    nnB
    是字节数;例如 5000B。

    nnKB
    是千字节数;例如 640KB。

    nnMB
    是兆字节数;例如 30MB。
  4. 指定由该高速缓存中的所有页面使用的最大内存数。超过最大内存数时,高速缓存 管理器从最旧的页开始删除足够的页,以将高速缓存所占有的总内存限制在一个范围之内。您可以 通过将该值设置为一个很大的数目来有效禁用对页面的自动清除;但是如果 cachemgrd 过程消耗太多内存,操作系统可能会终止它。

    不是必需的;缺省值是 1MB。

    语法:

    mem-size=nnB|nnKB|nnMB
    

    其中:

    nnB
    是字节数;例如 5000B。

    nnKB
    是千字节数;例如 640KB。

    nnMB
    是兆字节数;例如 30MB。
  5. 指定了一个页面可在高速缓存中保持的最大时间长度。超过此值时,高速缓存管理器将页面标 记为期满,但是除非到达 fssize(如果高速缓存在磁盘上)或 memsize(如果高速缓存在内存中)极限,否则不删除 该页面。如果到达 memsizefssize 极限,则高速缓存管理器在所有其他页面之前删除标记为期满的页。可以使用 check_expiration 关键字来禁用 lifetime 检查。

    必需的:否;缺省值是 5 分钟。

    语法:

    lifetime=time_length
    

    其中:

    nnS
    秒数;例如 600S。

    nnM
    分钟数;例如 20M。

    nnH
    小时数;例如 30H。
  6. 指定是否将高速缓存页标记为期满并执行寿命检查。

    不是必需的;缺省值是 yes,缺省寿命长度是 60 秒。还可将此值设置为一个时间长度,以指出 yes 值并说明一个项目可在高速缓存中保持的最大时间长度。设置为 no 时,高速缓存页不标记为期满,并且不执行寿命检查。

    语法:

    check-expiration=yes|nnS|nnM|nnH|no
    

    其中:

    yes
    指出高速缓存管理器执行寿命检查,并且高速缓存页标记为期满。

    nnS
    秒数;例如 600S。

    nnM
    分钟数;例如 20M。

    nnH
    小时数;例如 30H。

    no
    指出高速缓存管理器不执行寿命检查,并且高速缓存页不标记为期满。
  7. 指定一个高速缓存的页面可在内存高速缓存中占用的最大空间量。如果对于内存来说页面太大 ,则选择文件高速缓存。如果存在足够的空间,高速缓存管理器将在文件高速缓存中擦除高速缓存页面。如果页面不匹配文 件高速缓存,则高速缓存的试图将失败。如果页面小于 datum_memory_limit 值 (cacheobj-memory-limit),但是如果高速缓存没有足够的空间,则将从内存高速缓存中删除最早的 高速缓存页面以容纳新的页面。

    不是必需的;缺省值是 1KB。

    语法:

    datum-memory-limit (cacheobj-memory-limit)=nnB|nnKB|nnMB
    

    其中:

    nnB
    是字节数;例如 5000B。

    nnKB
    是千字节数;例如 640KB。

    nnMB
    是兆字节数;例如 30MB。
  8. 指定一个高速缓存页面可在文件高速缓存中占用的最大空间量。如果一个页面小于 datum_disk_limit,但是在文件高速缓存中没有余留空间,则将从文件高速缓存中删除最早的 高速缓存页面以容纳新的页面。

    不是必需的;缺省值是 1KB。

    语法:

    datum-disk-limit (cacheobj-space-limit)=nnB|nnKB|nnMB
    

    其中:

    nnB
    是字节数;例如 5000B。

    nnKB
    是千字节数;例如 640KB。

    nnMB
    是兆字节数;例如 30MB。
  9. 指定了创建统计记录的时间。如果设置为 0,则不写下统计记录。

    不是必需的;缺省值是 0(无任何统计信息)。

    语法:

    stat-interval = nnS|nnM|nnH
    

    其中:

    nnS
    秒数;例如 600S。

    nnM
    是分钟数;例如 1M。

    nnH
    是小时数;例如 3H。
  10. 指定一个文件的路径和名称,该文件用于记录当前高速缓存的统计值。

    stat-interval 的值大于 0 时是必需的。

    语法:

    stat-files=filename
    

    其中 filename 是记录统计文件的路径和名称。

  11. 指定每次写日志文件时,统计计数器是否应当复位。

    不是必需的;缺省值是 yes

    语法:

    reset-stat-counters=yes|no
    

    其中:

    yes
    复位统计计数器。

    no
    不复位统计计数器。
  12. 定义存放每个高速缓存的事务日志的路径与文件名称。高速缓存事务日志文件独立与高速缓存 管理器日志文件,后者用于记录整个高速缓存管理器的活动。

    必需的;如果不指定,就不创建 高速缓存的事务日志。

    语法:

    tran-log=filename
    

    其中 filename 是每个高速缓存的事务日志的路径和文件名。

  13. 指定是否在高速缓存管理器首次启动时打开高速缓存的事务日志。除非已通过 tran-log 参数 指定了一个有效事务日志文件,否则忽略此参数。如果在高速缓存管理器配置文件中已经指定 tran-log 值,则当高速缓存管理器守护程序正在运行时,可使用 cacheadm 命令来激活事务日志。

    不是必需的;缺省值是 no

    语法:

    tran-logging=yes|on|no|off
    

    其中:

    yes|on
    指示需要进行记录。

    no|off
    指出不应执行记录。
  14. 指定是否应当环绕事务登记。

    不是必需的;缺省值是 yes。如果指定为 yes,则在达到最大大小时当 前日志将关闭(参见下 面的 tran-log-size),具有文件类型 .old,新的日志被打开。只维护一代日志 (现存的 .old 文件被覆盖)。

    语法:

    wrap-tran-log=yes|no
    

    其中:

    yes
    指定环绕日志。

    no
    指出不环绕日志。
  15. 以字节为单位指定最大大小,如果指定了 wrap-tran-log, 则允许事物日志多至这般大小。

    不是必需的;缺省值是 64000。

    语法:

    tran-log-size=bytes
    

    其中 bytes 是最大大小的字节数。

节的示例:高速缓存的一个有效的高速缓存定义节:

cache0
{
root = /locale/netdata/cachemgr/caches/cache0
caching = on
mem-size = 10MB
fs-size = 1MB
datum-memory-limit = 200KB
datum-disk-limit = 1MB
lifetime = 6000000
check-expiration = 999999
tran-logging = no
tran-log-size = 10000
wrap-tran-log = yes
tran-log = /ocale/netdata/cachemgr/logs/tran.log
}
 

启动和停止高速缓存管理器

以下章节描述了如何启动和停止高速缓存管理器。

启动高速缓存管理器

使用 cachemgrd 命令来启动高速缓存管理器守护程序。

语法:

>>-cachemgrd----c--config_file---------------------------------><
 

参数:

cachemgrd
命令关键字。

config_file
指定一个文件名称,在该文件中定义高速缓存管理器以及高速缓存管理器所管理的每个高 速缓存。Net.Data 装运的配置文件是 cachemgr.cnf

示例:

cachemgrd -c myconfig.cfg

停止高速缓存管理器

使用 cacheadm 来停止高速缓存管理器。

语法:

>>-cacheadm----+---------------------+---+-----------------+---->
               '-hostname--hostname--'   '-port--port_num--'
 
>----terminate-------------------------------------------------><
 

参数:

cacheadm
命令关键字。

hostname
指定高速缓存所运行的机器的名称,如果该机器不同于发出 cacheadm 命 令的机器的话。

port_num
指定高速缓存端口号,如果该号码不同于缺省值 (7175) 的话。

terminate
指定要停止高速缓存管理器。

示例:

cacheadm hostname host1 port 7178 terminate 

高速缓存 Web 页

利用使用 DTW_CACHE_PAGE 内置函数来高速缓存一个 Web 页。当 Net.Data 在 宏中发现 DTW_CACHE_PAGE 函数时,它与高速缓存管理器联系并开始在内存中保存宏的 HTML 输出。在 Net.Data 成功地处理了一个宏之后,HTML 输出就发送给浏览器,并且高速缓存管理器 如图 28中所示地在一个事物中将输出进行高速缓存。

图 28. DTW_CACHE_PAGE 函数初启高速缓存


Figure dtwa1109 not displayed.

高速缓存一个页面

使用 Net.Data DTW_CACHE_PAGE() 内置函数来指定要写至高速缓存的 Net.Data 生成的页面。

一旦确定在高速缓存中已经不存在页面或页面已经过期,DTW_CACHE_PAGE() 函数将高速缓存函 数语句之后的宏的所有输出。如果页面不存在于高速缓存中或超过指定的年龄,Net.Data 将把 输出页面发送回浏览器,从宏执行中生成新的输出页面,并将页面存储在高速缓存中。

如果高速缓存管理器找到高速缓存页面并且该页面仍然是当前的,则它显示高速缓存的内容,并 且 Net.Data 退出宏。此行为保证了在从高速缓存中检索了 Web 页面之后,不再作不需要的处理。

性能提示:把 DTW_CACHE_PAGE() 放在 最先,或作为宏中的第一条语句,以将执行宏的代价降到最低。

要高速缓存一个页面:

  1. 在宏的 HTML 块或 XML 块中,在进行 HTML 编码之前,插入以下函数语句:
    @DTW_CACHE_PAGE("cache_id", cached_page_id, "age", status)
    

    使用该函数来指出 Net.Data 将对跟 随此语句之后的宏中的所有 HTML 输出进行高速缓存。如果您希望高速缓存所有 HTML 输出, 则将该语句放在宏的最前面。

    参数:

    cache_id
    标志放置此页的高速缓存的字符串。您可以将高速缓存标识符与宏或宏组相关联。

    cached_page_id
    一个包含了一个标识符的字符串,该标识符用于标识后继 @DTW_CACHE_PAGE 高速缓 存请求中的高速缓存中的页,例如页面的 URL。

    age
    包含时间长度(以秒计)的字符串变量,是在认为页面过期时指定的。如果请求的 页在高速缓存中停留的时间长于值 age,Net.Data 将执行页面,并高速缓存所生成的页 面,代替过期页面。如果请求的 页在高速缓存中停留的时间等于或小于 age 的值,Net.Data 将在高速缓存中检索页面并将它发送 到浏览器。在此情况下,Net.Data 立即结束宏执行。

    status
    由 Net.Data 返回的一个字符串变量,它指出页面是否已经正确高速缓存。

示例:

%HTML(cache_example) {
 %IF (customer == "Joe Smith")
 @DTW_CACHE_PAGE("mymacro.dtw", "http://www.mypage.org", "-1", status)
%ENDIF
 ...
<html>
 
 <head>
 <:title>This is the page title</title>
 </head>
 
 <body>
 <center>
 <h3>This is the Main Heading</h3>
 <p>It is $(time). Have a nice day!
 </body>
 
</html>
 %}

高级高速缓存:动态确定是否高速缓存

DTW_CACHE_PAGE() 从宏中的位置初启高速缓存。您通常将函数放在宏的开头,以获取 最佳性能并确保所有 HTML 都已高速缓存。

对于高级的高速缓存应用程序,当您需要在处理期间决定在某个特定点作高速缓存时,可以把 DTW_CACHE_PAGE() 函数 放在 HTML 输出段,而不是在宏的开始。例如,您可能需要根据从查询或函数调用返回的行数来 作高速缓存决定。

示例: 因为进行高速缓存的决定取决于 HTML 输出的期望大小, 所以把函数放在 HTML 块或 XML 块中

 % DEFINE { ...%}
 
...
 
%FUNCTION(DTW_SQL) count_rows(){
  select count(*) from customer
%REPORT{
%ROW{
  @DTW_ASSIGN(ALL_ROWS, V1)
%}
%}
%}
 
%FUNCTION(DTW_SQL) all_customers(){
  select * from customer
%}
 
%HTML(OUTPUT) {
<html>
 <head>
 <title>This is the customer list
 </head>
 <body>
 
@count_rows()
 
 %IF (ALL_ROWS > "100")
 @DTW_CACHE_PAGE("mymacro.dtw", "http://www.mypage.org", "-1", status)
%ENDIF
 
@all_customers()
 
 </body>
</html>
%}

在此例中,此页根据 HTML 输出的期望大小作高速缓存或检索。只有当数据库表包含多于 100 行时,才认为 HTML 输出页是值得作高速缓存的。Net.Data 总是在执行这个宏之后,把 OUTPUT 块中的 文本 (This is the customer list) 发送给浏览器;此文本永不作高速缓存。跟在函数调 用后的行 (@count_rows()) 在满足 IF 块的条件时作高速缓存或检索。两部分共同形 成一个完整的 Net.Data 输出页。

CACHEADM 命令

对于以下任务,使用 CACHEADM 命令:

所有参数都可以缩写为最小唯一字符集。

语法:

>>-cacheadm----+---------------------+---+-----------------+---->
               '-hostname--hostname--'   '-port--port_num--'
 
>-----+-activate-------------------------------------+---------->
      +-deactivate-----------------------------------+
      +-flags--flags---------------------------------+
      +-flush----------------------------------------+
      +-query--+-all-------+-------------------------+
      |        '-url--url--'                         |
      +-purge----url--url----------------------------+
      +-statistics--+-off--------------------------+-+
      |             '-on--+----------------------+-' |
      |                   '-interval--interval---'   |
      '-terminate------------------------------------'
 
>-----+--------------------+-----------------------------------><
      '-cacheid--cache_id--'
 

参数:

activate
激活指定的高速缓存。如果高速缓存已是活动的,高速缓存管理器就不做任何事。

cache_id
一个字符串变量,识别页面所位于的高速缓存。例如:cache1

deactivate
释放指定的高速缓存。如果高速缓存已是不活动的,高速缓存管理器就不做任何事。完成所 有暂挂操作并且不接受新的。最后一个操作完成时,高速缓存管理器将高速缓存标记为不活动。

flags
指定应当打开还是关闭列出的标志。

D_ALL
打开所有跟踪标志。

D_NONE
关闭所有跟踪标志。

flush
闪断一个由 cache_id 参数指定的高速缓存,它是该参数必需的。此参数从指定 的高速缓存中无条件删除所有项目。

hostname
指定高速缓存所运行的机器的名称,如果该机器不同于发出 cacheadm 命 令的机器的话。例如:myhost

port_num
指定高速缓存端口号,如果该号码不同于缺省值 (7175) 的话。在系统中,此数目必须 是唯一的。

purge
指定要从高速缓存中清除的特定页。如果已指定 url,高速缓存管理器将用匹配 url的关键字来清除页面。如果已指定从属关系,高速缓存管理器将清除具有关联从属关 系的所有项目,并将其关键字写入标准输出流 stdout

query
根据指定的参数来返回高速缓存数据:

statistics
启用或禁用对为特定高速缓存收集的统计值的记录,并需要 cache_id 参数。如果当 statistics 参数设置为 on 时指定了一个间隔,则 Net.Data 将更新间隔设置或复位为特定的秒数。

terminate
指定要停止高速缓存管理器。

tranlogging
启用或禁用特定高速缓存的事务处理登记,并需要 cache_id 参数 。仅当用 tran-log 参数在高速缓存管理器配置文件中指定了一个有效的高速缓存 事务日志之后,此参数才起作用。

url
全球相对位置 (URL) 地址指定 Web 服务器上文件的位置。例如 http:www.ibm.com/mydir/page1

高速缓存日志

根据内部操作,可保持几种类型的统计值,并可选择写入高速缓存日志。可以为每个高速缓存各 自维护一个独立的日志,也可以将所有统计值写入同一日志。本章讨论以下高速缓存日志主题:

配置日志

要记录统计值,必须配置高速缓存管理器配置文件。

要配置日志:

在高速缓存管理器配置文件中的高速缓存节中指定 stat-filesstat-interval 关键字。

您可以修改统计值设置,而不必停止、重新配置和重新启动高速缓存管理器。

要修改统计值收集设置:

指定 cacheadm statistics 命令。但是请注意,在重新启动高速缓存管理器时, 用 cacheadm statistics 命令作的更改不保存。

高速缓存日志的格式

统计日志是一个普通 ASCII 文件,可以通过电子表或数据库程序来处理或导入它。可写入 三种类型记录:


[ 页的顶部 | 上一页 | 下一页 | 目录 | 索引 ]