NFS는 프로그램 충돌 시 파일 테일을 저장하지 않습니다.

NFS는 프로그램 충돌 시 파일 테일을 저장하지 않습니다.

이 프로그램은 여러 프로세서에서 병렬로 실행되며 RH7.3 또는 SUSE 11.3에서 NFS를 통해 중앙 호스트에 로그를 기록합니다. 프로그램이 충돌하거나 중단되면 로그 파일의 끝 부분이 손실되고 충돌 위치와 원인에 대한 정보가 부족합니다.

셸 동기화는 효과가 없습니다. 설치 모드를 사용하는 데는 강력한 이유가 있습니다 async. 동기화 모드에서는 초기 데이터를 로드하고 결과를 언로드하는 데 걸리는 시간이 몇 분에서 몇 시간으로 10배 증가합니다. 때로는 flush()프로그램에 연결하는 것이 도움이 될 수 있지만 위치가 불확실한 경우에는 수행하기 어렵습니다.

그렇다면 프로세스가 종료될 때 NFS 클라이언트가 무조건 버퍼를 플러시하도록 강제할 수 있습니까?

답변1

출력이 실제 NFS 클라이언트의 버퍼에 있으면 서버에 도달해야 합니다. 일반적인 스트림 버퍼의 데이터가 손실될 수 있습니다. 버퍼 속성 수정을 사용해 보십시오 setvbuf().

무언가를 디버깅할 수 있도록 충돌이 발생한 애플리케이션에 대해 코어 덤프를 활성화할 수도 있습니다.Linux C++ 프로그램에서 코어 덤프를 활성화하는 방법그리고prctl(PR_SET_DUMPABLE, ...)

관련 정보