실시간 파일 출력 프로그램
글쓴이: jk3546 / 작성시간: 월, 2018/04/30 - 1:50오후
고수님들 도와주세요.
네트워크로 들어오는 센서값을 텍스트 파일로 저장하는 프로그램 작성중입니다.
들어오는 센서값 데이터는 초당 약 80,000바이트 정도 되고,
내부 버퍼에 저장했다가 약 100,000바이트 이상 쌓이면 fd에 write 하는 것을
반복합니다.(SD 카드에 파일로 떨굼)
문제는 이 프로그램이 실행한지 5~10시간 지나면 커널이 먹통이 되네요.
ssh 접속, sftp 접속이 다 않되며, 시리얼 접속을 통한 명령('ps' 등)도 않먹습니다.
커널 재부팅 후에 파일들을 확인해보면 내 프로그램은 정상적으로 동작을 하고 있었고요...
write 후에 커널 단에서는 바로 disk에 쓰는게 아니라 버퍼링 과정이 있기 때문에
동기화 시키기위해 fdatasync 함수도 사용해 보았는데 약 하루정도 더 버티게 되었네요.
H/W 성능이 딸리는 것 같은 느낌인데요...
원인이 먼지 원... 고수님들 이럴때는 어디를 뒤져봐야 하는지요???
Forums:
대충 계산해 보니 10시간 지나면 2.88Gbyte
대충 계산해 보니 10시간 지나면 2.88Gbyte 정도 되네요 = 80,000 X 10 X 3600
텍스트 파일로 이 정도 크기의 파일을 핸들링 할려면 매우 버거울 것 같습니다.
꼭 한개의 파일에 저장해야 할 필요가 없다면 1~2 시간 단위로 저장 파일을 바꾸어 저장되도록 바꾸시면 어떨까요?
댓글 달기