/proc/vmstat を使用した Linux パフォーマンスの測定

/proc/vmstat を使用した Linux パフォーマンスの測定

/proc/vmstat入力と出力のパフォーマンスを計算するためにファイルを使用したいですか?

私がコマンドを実行するとcat /proc/vmstat | grep pgpg

正解は

pgpgin 726854
pgpgout 1010677

vmstatまたは同じコマンドを使用したくありませんiostat

上記の値を使用してどのように計算できますか?

ベストアンサー1

スループットに対する答えを得ました。このプログラムで読み取り/書き込みスループットを収集できます。

#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <sys/sysinfo.h>

int main(int argc, char **argv)
{
    struct sysinfo si;
    sysinfo (&si);
    const double xdt = 1024;
    float  pagein,pageout, oldvalin = 0, oldvalout = 0, res;
    for(;;) {
        FILE *fp=fopen("/proc/vmstat","r");
        char  tmp[256];
        char  subbuff[256];
        while(fp!=NULL && fgets(tmp, sizeof(tmp),fp)!=NULL)
        {
            if (strstr(tmp, "pgpgin")) {
                memcpy( subbuff, &tmp[7], 40);
                subbuff[40] = '\0';
                pagein = atoi(subbuff);
            }
            if (strstr(tmp, "pgpgout")) {
                printf("\n\n%s", tmp);
                memcpy( subbuff, &tmp[7], 40);
                subbuff[40] = '\0';
                pageout = atoi(subbuff);
            }
        }
        printf("Res : %.2f \t %.2f",pagein-oldvalin,pageout-oldvalout);
        oldvalin = pagein;
        oldvalout = pageout;
        if(fp!=NULL) fclose(fp);
        sleep(1);
    }
}

vmstatコマンドと比較してみてください。このコードに問題がある場合はコメントしてください。遅延時間の計算方法をご存知の方はお手伝いください。

おすすめ記事