监视 FIFO 虚拟处理器

可使用 onstat 命令监视 FIFO VP 的有效使用。

可使用 onstat -g ioq 选项显示正在等待执行 I/O 请求的每个 FIFO 队列的长度。以下示例显示样本输出。
AIO I/O queues:
q name/id    len maxlen totalops  dskread dskwrite  dskcopy
 fifo   0      0      0        0        0        0        0 
    adt   0      0      0        0        0        0        0
msc   0      0      1      153        0        0        0 
  aio   0      0      9     3499     1013       77        0 
  pio   0      0      2        3        0        2        0 
  lio   0      0      2     2159        0     2158        0 
  gfd   3      0     16    39860       38    39822        0 
  gfd   4      0     16    39854       32    39822        0 
  gfd   5      0      1        2        2        0        0
  gfd   6      0      1        2        2        0        0
...
  gfd  19      0      1        2        2        0        0

以上示例中样本输出内的 q name 字段显示了队列的类型,如 fifo 表示 FIFO VP,或 aio 表示 AIO VP。 如果 q name 字段显示 gfdgfdwq,说明这是其全局文件描述符与输出的 id 字段匹配的文件的队列。磁盘文件在一个队列中同时包含读写请求。每个磁盘文件在 onstat -g ioq 输出中显示一行。 管道有单独的读写队列。每个管道在输出中显示两行:gfd 针对读请求,gfdwq 针对写请求。

lenmaxlen 字段的值最高为 4(对于装入)或 4 * number_of_writer_threads(对于卸载)。xuwrite 运算符控制写程序线程的数量。

请使用 totalops 字段中的值,而不是 lenmaxlen 字段中的值,监视对文件或管道执行的读或写请求的数量。totalops 字段表示从该文件中读取了 34 KB 的数据,或将 34 KB 的数据写入了该文件。如果 totalops 不增加,说明已停止对文件或管道执行读或写操作(因为 FIFO VP 正忙)。

要提高性能,请使用 onmode -p 命令增加更多 FIFO VPFIFO VP 的缺省数量为 1。在该样本输出中,FIFO 队列内不包含任何数据。例如,如果通常定义两个以上的管道来装入或卸载,请使用以下样本 onmode 命令增加 FIFO VP 的数量:
onmode -p +2 FIFO
也可以使用 onmode -p 命令除去 FIFO VP。 但是,不能将 FIFO VP 的数量设置为低于 1。

有关更多信息,请参阅 GBase 8s 管理员参考