Linux

使用 /proc/vmstat 進行 Linux 性能測量

  • November 24, 2018

我想使用/proc/vmstat文件計算輸入輸出性能?

當我執行命令時cat /proc/vmstat | grep pgpg

答案是

pgpgin 726854
pgpgout 1010677

我不想使用類似vmstator的命令iostat

通過使用上述值,我如何計算。

得到了吞吐量的答案,從這個程序中我可以收集讀/寫吞吐量。

#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命令比較。這段程式碼有什麼問題,歡迎評論。如果有人知道如何計算延遲時間,請幫助我。

引用自:https://unix.stackexchange.com/questions/224125