리눅스에서 rtkaio 라이브러리가있는 async io를 사용하고 있습니다. 내 테스트에서 모든 것이 완벽하게 작동하지만, 실제 응용 프로그램에서는 매우 빠르게 리턴되어야하는 aio_write가 매우 느린 것을 볼 수 있습니다. O_DIRECT 패딩 된 파일에 128KB를 기록하는 데 100 밀리 이상이 걸릴 수 있습니다. 내 테스트와 애플리케이션 모두 동일한 I/O 크기를 사용하므로 같은 파일 시스템 (GFS)을 검사합니다.aio_write on Linux with rtkaio가 가끔 길다
나는 카운트를 추가했는데, 짧은 (2 밀리미터보다 짧음)과 50 밀리 초 (2 밀리미터보다 길다) 인 비동기 작업의 약 50 %가 있음을 알 수 있습니다.
또한 테스트와 응용 프로그램이 모두 동일한 rtkaio 라이브러리를 사용하는지 확인했습니다.
저는 꽤 잃어버린 사람입니다. 어떤 생각을해야합니까?
또 다른 내 관련 질문 : /proc/sys/fs/aio-nr is never higher than 1024 (AIO on linux)이
나는 실제로 나는 아이오에 대해 아무것도 모른다 고 고백한다. 그러나 이것은 SystemTap의 좋은 응용 프로그램처럼 들립니다. 특히, 전체 커널 호출 트리 (예제 스크립트가 있음)를 표시 할 수 있고, 호출하기 전에 추적을 사용 가능하게 설정 한 후 바로 사용할 수 있습니다. 시간 소인과 함께, 시간을 많이 소모하는 것이 무엇인지를 좁혀 야합니다. 웬일인지 대체 경로를 타파하고 쓰기를 기다리는 것처럼 들리거나 의존하기로 결정한 디스크 작업과 같지만 그게 추측입니다. – sfink