Linux
使用 /proc/vmstat 進行 Linux 性能測量
我想使用
/proc/vmstat
文件計算輸入輸出性能?當我執行命令時
cat /proc/vmstat | grep pgpg
答案是
pgpgin 726854 pgpgout 1010677
我不想使用類似
vmstat
or的命令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
命令比較。這段程式碼有什麼問題,歡迎評論。如果有人知道如何計算延遲時間,請幫助我。