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