고수님들 도와주세요.
네트워크로 들어오는 센서값을 텍스트 파일로 저장하는 프로그램 작성중입니다.
들어오는 센서값 데이터는 초당 약 80,000바이트 정도 되고,
내부 버퍼에 저장했다가 약 100,000바이트 이상 쌓이면 fd에 write 하는 것을
반복합니다.(SD 카드에 파일로 떨굼)
문제는 이 프로그램이 실행한지 5~10시간 지나면 커널이 먹통이 되네요.
ssh 접속, sftp 접속이 다 않되며, 시리얼 접속을 통한 명령('ps' 등)도 않먹습니다.
커널 재부팅 후에 파일들을 확인해보면 내 프로그램은 정상적으로 동작을 하고 있었고요...
write 후에 커널 단에서는 바로 disk에 쓰는게 아니라 버퍼링 과정이 있기 때문에
동기화 시키기위해 fdatasync 함수도 사용해 보았는데 약 하루정도 더 버티게 되었네요.
H/W 성능이 딸리는 것 같은 느낌인데요...
원인이 먼지 원... 고수님들 이럴때는 어디를 뒤져봐야 하는지요???