서버 및 개인 PC에서 disk에 대한 접근 및 요청을 기록해야 되는데.. 어떤 방법들이 있을까요?
글쓴이: leopon / 작성시간: 금, 2009/07/10 - 5:56오후
저는 석사 과정에 있는 컴공인입니다.
이번에 학교 학생 서버에서 한학기 동안 disk 에 write 또는 read 를 얼마나 하는지에 대해서 알아보는 임무가 주어졌습니다.
학교 서버는 linux서버이기 때문에 strace를 공부해서 접목시켜 볼까 생각중인데요. 이 생각이 맞는지 조언을 듣고 싶습니다.
그리고 가장큰 문제가 각 가정의 window환경에서의 disk사용을 측정하고 기록해야 되는데... 윈도우 프로그래밍을 해야 되는건지.. 다른 방법이 있는지 알고 싶습니다.
linux windows 둘다 순차적인 접근인지 랜덤한 접근인지 까지 알면 좋겠지만 일단은 방향을 잡고 싶어서요.
많은 조언 부탁드립니다.^^
Forums:
linux는 커널이 오픈소스라 해결방법이 쉽습니다.
커널 소스에 print_k 명령으로 중간중간 호출내역을 출력하는 문을 삽입하면 됩니다. -_-
나머지는 dmesg 소스를 분석하는 소프트웨어를 만들면 됩니다.
print_k가 뭔시가하 그러면 /proc이나 /dev를 통해서 감시(?)할 수 있습니다.
netlink를 통하는 고차원(?)적인 방법도 있을 수 있겠군요.
그런데, 윈도는 가능하나요?
There is no spoon. Neo from the Matrix 1999.
There is no spoon. Neo from the Matrix 1999.
/sys/block//stat 에 대한
/sys/block/{dev}/stat 에 대한 얘기가 Documentation/block/stat.txt 에 있습니다.
발췌하면
직접 측정하실거라면 BLKTRACE{SETUP|START|STOP} 등의 ioctl 을 사용해서,
debugfs 를 통해 각 장치별로 모두 실시간 trace 가능합니다.
다양한 trace point 가 있지만 rq_queue, rq_complete, bio_queue, bio_complete 정도만해도 될 것 같고,
linear 인지 random 인지도 구분이 되겠죠. sector address 물론이고 request size 까지 알 수 있으니까요.
OTL
학교 서버 커널이라..
실제 커널의 코드를 수정하거나 권한을 가져 오는 것에 제약이 많아요.
그래서 api형식을 찾고 있었는데..
일단 조언해주신것들 바탕으로 고민해 봐야겠네요^^
좋은 조언 감사 드리구요. 윈도우가 참 답이 안나오네요 ㅠㅠ
좀 hardcore 하고,
좀 hardcore 하고, 세련과는 거리가 멀지만... 안티바이러스 계통의 프로그램 소스를 참고해보세요.
제가 직접 보고 댓글다는 것은 아니지만, 뭔가 실마리는 잡을 수 있으실 것이라 생각합니다.
http://www.clamav.net/download/
OTL
diskmon 이라는
diskmon 이라는 프로그램을 참고하세요.
http://technet.microsoft.com/en-us/sysinternals/bb896646.aspx
소스공겨여부는 모르겠네요.
많은 정보 감사드립니다.^^
친절히 답변해 주셔서 감사드립니다.
좋은 결과나 정보 찾게되면 다시 올리도록할게요^^
윈도는 DiskMon 으로
윈도는 DiskMon 으로 하면 됩니다.
http://kldp.org/node/101594
emerge money
http://wiki.kldp.org/wiki.php/GentooInstallSimple - 명령어도 몇 개 안돼요~
http://xenosi.de/
https://xenosi.de/
diskmon이 read가...
저만안되나요--;
다른분도 안되는거 같긴 하던데 ㅠ
음... 지금 코드를 열어서 한글 윈도우 상에서 다시 만들어 볼까 생각중이에요 ㅎ;