/proc/stat 에 있는 disk_io 에 대한 값...에 대한 질문....
저는 현재 /proc 아래에 있는 값들을 읽어서..
traffic 을 표시해주려고 합니다.
현재 disk io 에 대해서는 cat /proc/stat 에 있는 값중..
disk_io:(8,1):(111,111,111,111,111) ....에 있는값을..참조로 하고 있습니다.
문제는 여기서인데요....(위의 /proc/stat 에 있는 값은 각각(major,minor):(noinfo, read_io_ops, blks_read, write_io_ops, blks_written) 의 값을 가르킵니다.)
제가 원하는것은 blks_read, blks_written 인데요...
이를 표현해주는 형식 지정자는 %u (unsigned integer)입니다. (/usr/src/linux/fs/proc/proc_misc.c 에 명시되어있습니다.)
그렇다면 %u 가 4294967295 라는 숫자까지 밖에 지원이 안되는데요.
만약에 계속 disk io 가 일어나서 그 수가 넘게 되면 어떻게 됩니까?
지금 계속 io 을 읽으켜서 값을 증가시키고는 있는데요..좀 오래걸리네요..
이틀정도 했는데 이제 겨우 1234567890 정도이거든요...6일을 더 하려다가
혹시 아시는 분이 계실까 해서..^^
물론 /proc/stat 에 값은 rebooting 하면 처음부터 되돌아갑니다.
저는 reboot 하지 않고 계속 살아있을 때의 현상에 대해서 궁금합니다. ^^
더 솔직히 말하면 계속 값이 증가되면 제가 짠 프로그램에서 읽어올수가 없거든요...
지금 long long int 형을 쓰고 있는데 계속 증가되면 이 값을 어떻게 가지고 오나..걱정이 되서요..
걱정 안하셔도 될것 같습니다.테스트는 안해보았지만, 당연히 다시 초기
걱정 안하셔도 될것 같습니다.
테스트는 안해보았지만, 당연히 다시 초기화 됩니다.
걱정되신다면 iostat를 확인해보십시요.
iostat는 unsigned int로 계산합니다.
리눅스 iostat는 sar와 같이 포함되있습니다.
브이 V
댓글 달기