rmss 命令

用途

为应用程序性能测试以不同的内存大小模拟系统。

语法

rmss -c MemSize

Rmss -r

Rmss -p

rmss [ -d MemSize ] [ -f MemSize ] [ -n NumIterations ] [ -o OutputFile ] [ -s MemSize ] 命令

描述

rmss 命令用不同大小的真正内存模拟系统,不必抽取和替换内存条。 通过在多个内存大小运行应用程序和收集性能统计信息,能确定以可接受的性能运行应用程序所需要的内存。 rmss 命令可由两个用途之一调用:

  • 要更改内存大小,然后退出,请使用 -c-p-r 标志。 这使您使用给定大小的内存自由进行实验。
  • 要充当驱动程序,请使用 -s--d-n-o 标志。 在该模式中,rmss命令在内存大小范围内执行指定命令多次,并在每个内存大小显示描述命令性能的重要统计信息。 该命令是可执行文件或 shell 脚本文件,可带或可不带命令行参数。

rmss 命令与 DR 子系统不兼容。 如果在执行 rmss 命令期间发生了 DR 事件,那么系统可能会挂起。 由于 rmss 命令的内存除去功能可以替换为使用 drmgr 命令除去 DR 内存,因此必须根据以下警告来修改 rmss 命令的信息文本:

注意: Rmss 命令与 AIX DLPAR 组件不兼容,并且它的使用可能导致系统挂起。 在 DLPAR 环境中,drmgr 命令提供了安全的内存除去功能。
注意:Rmss 在多内存池系统上使用时,它可能会失败:
Failure: VMM unable to free enough frames for stealing.
Choose a larger memory size or retry with less system activity.

或一个类似消息。 该故障发生在 rmss 命令已经从一个内存池挪用所有帧,并且 不能从其他池挪用帧时。 变通方法是通过递增减少内存。

系统的内存池的数量和大小可以用以下命令检索:

echo "mempool *" | kdb

-c-p, 和 -r 标志互相排斥。 -c 标志更改内存大小;-p 显示当前内存大小;-r 标志复位内存大小到机器的真正内存大小。

rmss 命令作为驱动程序来调用以执行和评测命令(命令是可执行文件或 shell 脚本文件)在内存大小的一个范围内的性能时,-s-f-d-n-o 标志 以组合方式使用。 当这样调用时,rmss 命令为每个内存大小显示性能统计信息,如 命令的响应时间和在命令运行时页面调进的数量。 这些统计信息也写入到文件中,在此 示例中进行了描述。

-s-f 标志指定范围的开始点和结束点,而 -d 标志指定在范围内的内存大小之间的增量或减量。 -n 标志用来指定在每个内存大小运行命令的次数, -o 标志用来指定写入 rmss 报告的输出文件名。 Command 参数 指定命令在每个内存大小运行和评测。

注意:
  1. Rmss 命令报告 "可用" 实内存。 在有坏内存或系统正在使用内存的机器上,rmss 报告真正的内存数量为 真正的物理内存数减去坏内存数或系统正在使用的内存数。 例如,使用 rmss -r 标志可能报告:
    Simulated Memory Size changed to 79.9062MB
    这可能是一些正在标志为坏的页引起的或设备正在保留一些页供自己使用(因此用户不能使用)而引起的。
  2. 如果应用程序与后台进程 (例如,守护程序) 一起访问许多不同的文件 (包括目录文件) ,那么 Rmss 命令可能会低估运行应用程序所需的页面调进数。 必须访问且将引起这些结果的不同文件的数量大约是 每 8MB 模拟内存大小 250 个文件。 下表给出在给定模拟大小内存的条件下访问的不同文件的近似数量,该数量可能导致 rmss 命令低估页面调进要求。
    模拟内存大小 (MB) 访问不同的文件
    8 250
    16 500
    24 750
    32 1000
    48 1500
    64 2000
    128 4000
    256 8000

如果怀疑可能正在访问许多不同的文件,可以使用 filemon 命令确定当命令运行时访问的文件的数量。

标志

描述
-c MemSize 更改模拟内存的大小到 MemSize 值,它是以兆字节为单元的整数或十进制小数。 MemSize 变量的值必须在 8MB 与机器的实内存大小之间。 -c 标志没有缺省值。
注: 由于固有系统结构 (例如内核) 的大小,因此很难将模拟内存大小更改为小于 8MB。
-d MemSize 指定要模拟的内存大小之间的增量或减量。 MemSize 值是以兆字节为单元的整数或十进制小数。 如果 -d 标志被省略,那么增量或减量将为 8MB。
-f MemSize 指定最终内存大小。 应该通过运行命令完成测试模拟系统,此命令正在以 MemSize 变量(以兆字节为单元的整数或十进制小数)指定的模拟内存大小被测试。 MemSize 变量必须在 4MB 和机器真正的内存大小之间。 如果 -f 标志省略,增量是 8MB。
注: 由于内核之类的固有系统结构的大小,很难以小于 8MB 的模拟内存大小完成此操作。
-n NumIterations 在每个内存大小指定运行和评测命令的次数。 -n 标志没有缺省值。 如果 -n 标志省略,在 rmss 命令初始化时,rmss 命令将确定 正在测试的命令需要迭代多少次来积累 10 秒的总时间,然后在每个内存大小运行命令那么多次。
注: 在测量执行之前, Rmss 命令始终在每个内存大小处执行一次该命令。 这为实际测试准备模拟。
-o OutputFile 指定要写入 rmss 报告的文件。 如果 -o 标志省略,那么 rmss 报告写到文件 rmss.out中。 还有,rmss 报告总是写到标准输出。
-p 显示当前模拟内存大小。
-r 复位模拟内存大小到机器的真正内存大小。
-s MemSize 指定开始内存大小。 由以 MemSize 变量指定的模拟内存大小来开始执行命令,该变量是以兆字节为单元的整数或十进制小数。 MemSize 变量必须在 4MB 和机器真正的内存大小之间。 -s 标志省略,开始内存大小将是 机器的真正内存大小。
注: 由于内核之类的固有系统结构的大小,很难在小于 8MB的模拟内存大小中启动。
命令 指定在每个内存大小要运行和评测的命令。 Command 参数可以是可执行文件或 shell 脚本文件,可带或可不带命令行参数。 没有缺省命令。

退出状态

本命令返回以下退出值:

描述
重大安全事件数量 成功完成。
>0 发生错误。

安全性

访问控制:必须具有 root 权限才能运行该命令。

RBAC 用户和 TrustedAIX®用户请注意:此命令可执行特权操作。 只有特权用户才能执行特权限定的操作。 有关权限与特权的更多信息,请参阅安全性中的“特权限定的命令数据库”。 有关与该命令相关联的特权和权限的列表,请参阅 lssecattr 命令或 getcmdattr 子命令。

示例

  1. 要将内存大小更改为 13.5MB,请输入:
    rmss -c 13.5
  2. 要打印当前内存大小,请输入:
    rmss -p
  3. 要将内存大小重置为机器的实际内存大小,请输入:
    rmss -r
  4. 要调查命令的性能,请执行以下操作:cc -O foo.c在内存大小 32 ,24 ,16 和 8MB; 上,在每个内存大小处运行并测量一次命令; 然后将报告写入cc.rmss.out文件,输入:
    rmss -s 32 -f 8 -d 8 -n 1 -o cc.rmss.out cc -O foo.c
  5. 要调查系统中命令序列的性能,foo.sh内存大小上的 shell 脚本文件,从机器的实际内存大小开始,以 8MB结尾,增量为 8MB; ,让 Rmss 命令确定要运行的迭代次数并测量foo.sh在每个内存大小的文件中; 然后将 Rmss 报告写入rmss.out文件 (使用 Rmss 命令的此调用中使用的所有缺省值) ,请输入以下内容:
    rmss foo.sh
  6. 调查可执行文件的性能bar在从 8MB 到 16MB的内存大小上,按 0.5MB; 运行和度量的增量bar每个内存大小为两次; 并将报告写入bar.rmss.out文件,输入:
    rmss -s 8 -f 16 -d .5 -n 2 -o bar.rmss.out bar
  7. 当使用 -s--d-n-o 标志的任何组合时, Rmss 命令将作为驱动程序运行,该程序在一系列内存大小上多次执行命令,并显示描述命令在每个内存大小下的性能的统计信息。

    rmss 命令打印输出的报告示例如下:

    Hostname:  xray.austin.ibm.com
    Real memory size:   48.00 Mb
    Time of day:  Wed Aug  8 13:07:33 1990
    Command:  cc -O foo.c
    Simulated memory size initialized to  24.00 Mb.
    Number of iterations per memory size = 1 warmup + 1 measured = 2.
    Memory size  Avg. Pageins  Avg. Response Time   Avg. Pagein Rate
    (megabytes)                       (sec.)           (pageins/sec.)
       -----------------------------------------------------------------
    24.00             0.0              113.7                0.0
    22.00             5.0              114.8                0.0
    20.00             0.0              113.7                0.0
    18.00             3.0              114.3                0.0
    16.00             0.0              114.6                0.0
    14.00             139.0            116.1                1.2
    12.00             816.0            126.9                6.4
    10.00             1246.0           135.7                9.2
    8.00              2218.0           162.9                13.6
    此报告由 以下命令生成:
    rmss -s 24 -f 8 -d 2 -n 1 cc -O foo.c
    报告的第一部分提供了一般信息,其中包括运行 Rmss 命令的机器,该机器的实际内存大小,时间和日期以及正在测量的命令。 接下来两行给出了描述 rmss 命令初始化的参考消息。 这里, rmss 命令显示已经初始化模拟内存大小为 24MB, 它是用 -s 标志给出的开始内存大小。 同样,rmss 命令打印出命令将在每个内存大小上运行的迭代次数。 命令在每个内存大小上运行两次:一次是预热,一次是性能已评测的时候。 迭代次数由 -n 标志指定。

    报告的下一部分针对运行该命令的每个内存大小提供以下内容:

    • 内存大小,以及运行该命令时发生的平均页面调进数
    • 此命令的平均响应时间
    • 运行该命令时发生的平均页面调进速率。
      注: 平均页面调进和平均页面调进速率值包括运行命令时发生的所有页面调进,而不仅仅是命令启动的页面调进。

文件

描述
/usr/bin/rmss 包含 rmss 命令。