vnstat 의 트래픽 계산은 왜 부정확할까? > Server & etc

Server & etc

vnstat 의 트래픽 계산은 왜 부정확할까?

페이지 정보

본문

vnstat 의 트래픽 계산은 왜 부정확할까?  


테스트중인 웹사이트를 설치한 서버에 일정 트래픽이 넘어가면 자동으로 WAS를 중단시키고 지정된 파킹 안내 페이지를 실행하는 스크립트를 작성했다. (하루 기준치를 넘어가면 과금되기 때문. 이상한 접속으로 문제가 있을까봐. 물론 테스트 서버니까) 

그런데 리눅스 서버에서는 주로 vsnstat 앱이 네트워크 트래픽을 계산하는데 사용되는데 이게 상당히 부정확하다는 황당한 문제가 있다.  
어느 정도냐면 지금 내가 사용하는 테스트의 서버의 경우  vnstat의 tx(아웃바운드) 통계가 250GiB(268GB)인데  호스팅 업체의 과금용 트래픽은 20GB 정도에 불과하다. 그러니까 vnstat의 tx는 실제 과금 트래픽의 무려 7.5배 이상인 것.   (물론 서버의 종류와 상황에 따라 약간은 다를 수 있다) 

이론적으로는 vnstat가  NIC(네트워크 장치)  앞에서 문지기처럼 TCP 패킷 헤더를 일일이 확인해서 데이터의 크기를 계산할 거 같지만 그랬다간 CPU의 부담이 너무 커지기 때문에 vnstat는 Nginx가 전달해 준 데이터 관련 정보를 인용하는데 문제는 이 정보가 부정확하다는 것. 황당하지만 사실이다. ㅎ 

그러니까 vnstat를 이용해서 트래픽을 정확하게 계산하는 건 실질적으로 불가능하므로 서버 중단 스크립트는 개인적인 판단에 따라 약간 아래위로 여유를 두고 설정하는 것이 좋다.