perfstat_disk_total インターフェース
perfstat_disk_total インターフェースは、 libperfstat.h ファイルに定義されている perfstat_disk_total_t 構造体を戻します。
perfstat_disk_total_t 構造から選択されたフィールドには、以下のものがあります。
ディスクとの間で読み書きされたブロックの数など、その他のいくつかのディスク関連メトリックも返されます。 完全なリストについては、Files Referenceの libperfstat.hヘッダーファイルのperfstat_disk_total_tセクションを参照のこと。
| 項目 | ディスクリプター |
|---|---|
| number | ディスクの数 |
| size | 合計ディスク・サイズ (MB) |
| free | 合計空きディスク・スペース (MB) |
| xfers | ディスクとの間の合計転送 (KB 単位) |
以下のコードは、 perfstat_disk_total の使用方法の例を示しています。
#include <stdio.h>
#include <libperfstat.h>
int main(int argc, char* argv[]) {
perfstat_disk_total_t dinfo;
int rc;
rc = perfstat_disk_total(NULL, &dinfo, sizeof(perfstat_disk_total_t), 1);
if (rc != 1)
{
perror("perfstat_disk_total");
exit(-1);
}
perfstat_disk_total(NULL, &dinfo, sizeof(perfstat_disk_total_t), 1);
printf("Total disk statistics\n");
printf("---------------------\n");
printf("number of disks : %d\n", dinfo.number);
printf("total disk space : %llu\n", dinfo.size);
printf("total free space : %llu\n", dinfo.free);
printf("number of transfers : %llu\n", dinfo.xfers);
printf("number of blocks written : %llu\n", dinfo.wblks);
printf("number of blocks read : %llu\n", dinfo.rblks);
}このプログラムは、次のような出力を生成します。
Total disk statistics
---------------------
number of disks : 3
total disk space : 4296
total free space : 2912
number of transfers : 77759
number of blocks written : 738016
number of blocks read : 363120上記のプログラムは、 iostat の 動作をエミュレートし、 perfstat_disk_total の使用方法も示します。