단일 디렉터리의 파일에 모두 쓰는 알려진 이름을 가진 여러 프로세스가 있습니다. 내가 기록하고 싶은 수량일정 기간 동안 디스크 블록에 대한 읽기 및 쓰기 수(아니요파일 액세스만 해당) 매개변수 변경으로 인해 I/O 양이 크게 감소하는지 여부를 테스트합니다. 현재 이것을 사용하고 있지만 iostat -d -p
전체 파티션으로 제한됩니다.
답변1
이것이 단순하고 우스꽝스럽게 들린다는 것을 알지만, 문제의 응용 프로그램을 제어할 수 있는 경우(아마도 테스트 환경에서) 디렉토리를 자체 파티션에 마운트한 다음 기다려서 iostat
그것에 대해 알려주기만 하면 됩니다. 가리키다.
물리적 드라이브가 관련된 경우 루프백 마운트를 사용하여 가짜로 만들 수 있습니다.
dd if=/dev/zero of=/bigdisk/LOOPFILE bs=1024m count=1024m # 1gb loopback file
mke2fs -j /bigdisk/LOOPFILE
mkdir /tmpcopy
mount -o loop /tmpcopy /bigdisk/LOOPFILE
cp -r -p $SPECIALDIR2MONITOR /tmpcopy
umount /tmpcopy
mount -o loop $SPECIALDIR2MONITOR /bigdisk/LOOPFILE,
iostat
이렇게 하면 경쟁하는 모든 디스크 I/O가 완전히 제거되지는 않지만 출력이 사용자의 요구에 더 구체적일 것이라고 확신합니다 .
답변2
당신이 inotifywait -m DIRNAME
사용할 수있는이노티파이 도구.