트래픽, 트래픽 량, 1000, 1024
기본이 많이 부족하다보니 논리적인 부분에서 많이 막히네요.
------------------------------------------------------------------------------------
0시 0분 ~ 0시 5분( 300초 ) 사이에 서버의 eth0 을 통해서
나간(Out) 데이터의 량(!!!)이 총 106733754 Byte 입니다.
위에 이야기를 다음과 같이 이야기 할 수 있습니까?
'5분 동안에 발생한 트래픽 량(!!!)이 106733754 Byte 입니다.'
아니면 그냥 평범하게
'5분 동안에 발생한 전송량이 106733754 Byte 입니다.'
러고 해야 됩니까?
그렇다면, 그 시간( 5분-300초 ) 동안 서버는 평균적으로 얼마의 네트워크 회선을 사용 했습니까?
라고 질문을 했을때,
106733754 / (300*1024) =(대략) 347
106733754 / (300*1000) =(대략) 356
위 둘중에 어떤것이 맞는것입니까? 그리고 단위는 어떻게 됩니까?
그리고 위 값을 다음과 같이 이야기 할 수 있습니까?
'5분 동안에 발생한 트래픽은 평균 347(356) [단위] 입니다.'
또한 네트워크 단위인 Mbit/s 로 표현하려면 어떻게 해야 됩니까?
347(356) / 1024 * 8
347(356) / 1000 * 8
위 둘중 하나의 계산 방법이 맞는 것일까요?
------------------------------------------------------------------------------------
이것저것 찾아보면서 조금씩 감을 잡아가는데 아직 명확하게 개념이 안섭니다.
조언을 부탁 드리고 싶습니다.
106733754Byte 를 Mbit 로
106733754Byte 를 Mbit 로 나타내기 위해선 106733754 에 *8 하신뒤 1Mega 단위인 1024*1024(1048576) 로 나눈값을 쓰면 됩니다..
계산해보면 814.31.. Mbit 나오네요..
---------------------------------------
http://www.waitfor.com/
http://www.textmud.com/
1. '5분 동안에 발생한
1. '5분 동안에 발생한 전송량이 106733754 Bytes 입니다.'
2. 106733754 / (300*1000) =(대략) 356
3. 356 / 1000 * 8
실제로는 K = 1000, M = 1000 x 1000 으로 계산합니다. 혼란을 피하기 위해서
1024 = Ki, 1024x1024 = Mi 로 따로 표기하기도 합니다.
http://en.wikipedia.org/wiki/Binary_prefix
--
익스펙토 페트로눔
--
익스펙토 페트로눔
디스크 용량에서는 *
디스크 용량에서는 * 1000 (K,M,G) 을, 네트워크에서는 * 1024 (Ki,Mi,Gi)를 사용합니다. 즉 네트워크상에서의 전송량을 계산할 때는 1024로 하시면 됩니다.
MRTG도 1000의 자승으로
MRTG도 1000의 자승으로 계산하던데요...
http://oss.oetiker.ch/mrtg-trac/browser/trunk/src/src/rateup.c
512 while (digits < (long long) kMGnumber * 3 &&
513 (number >= (double) 1000 || short_si[digits / 3][0] == '-'))
514 {
515 number /= (double) 1000;
516 digits += 3;
517 }
https://lists.oetiker.ch/pipermail/mrtg/2002-February/017116.html
http://physics.nist.gov/cuu/Units/binary.html
다만 MRTG는 "대역폭"을 주로 다루지 "전송량"은 아닌데, 이것도 마찬가지로
1000단위로 다루어도 큰 무리는 없을 겁니다. 전송량을 전송시간으로 나눈게
대역폭이니까요.
--
익스펙토 페트로눔
--
익스펙토 페트로눔
http://physics.nist.gov/cuu/U
http://physics.nist.gov/cuu/Units/binary.html 문서의 Historical context 단락에서 보면, 요는 engineer 가 아닌 ordinary people 에게는 1Km 가 1000m 인것 때문에 1KB 가 1000B 로 사용되기 시작했다는 개념인데, (제 의견은 이건 핑계고 상술로 봅니다만..) 요는 memory 는 1024를 사용하고 storage 는 1000을 사용한다는 개념입니다.
그럼 네트워크는 memory를 따라야 하느냐 storage를 따라야 하는냐에 대한 애매한 문제가 남는데, Oetiker씨는 아마 관리자나 개발자 보다는 customer (ordinary people)의 입장에서 1000을 택하지 않았나 생각 됩니다. (이게 좀 애매한데, customer 입장 보다는 제공자 입장일 확률이 높지 않나 생각 됩니다. 1024 단위로 연산하는 것 보다 1000으로 계산 하는 것이 과금에 유리할 테니까요) 저도 예전에 이 문제로 1000이냐 1024이냐를 고민한 적이 있었는데, 그 당시에는 MRTG도 1024를 사용했었고, 그 당시에 검색을 해서 도출한 결과는 네트워크에서는 1024를 사용한다는 것이었습니다. 이 이유중의 하나가, bit 단위의 연산이 2진 연산이기 때문에 2^10을 사용하는 것이 맞고, 네트워크는 bit를 사용하기 때문에 1024를 사용하는 것이 맞다는 것이었거든요. :-)
그리고 가장 중요한 것 중의 하나가, 네트워크 대역폭 장사에는 예전부터 과금 방식이 1024 이었고, switch 에서 연산을 1024로 하는 것도 하나의 요소입니다. (요즘에는 어떨지 모르겠지만..)
그렇기 때문에 준호님과는 반대 입장으로, 전송량은 1000으로 보는게 맞겠지만 (호스팅에서 월 1Gbyte 제한 이런것..) 대역폭은 1024를 사용해야 맞다고 봅니다. (갑론을박이겠지만.. ^^)
그러므로, Oetiker씨 처럼 computer를 바라볼 것이냐 아니면 human 을 바라볼 것이냐를 선택해야 하는 순간이 나올 수도 있는데, 가장 명확한 것은 Mb 나 Mib 처럼 명확하게 단위를 표현해 주고, 조건이나 결정은은 bit 나 byte 단위로 변환해서 결정하는 것이 맞을 것 같습니다.
그리고 원 질문에서
의 답은.. 전송량이 맞습니다. 트래픽 량은 대역폭을 의미하기 때문에 VALUE * 8 을 해 준 다음 period로 평균을 내 주는 것이 트래픽량이 됩니다.
P.S
근데 대세라면 얘기가 좀 달라지기는 하겠는데, 그 대세가 enginneer 나 개발자와 ordinary people과의 갭이 너무 크기 때문에 무엇이 대세라는 기준이 성립하기가 힘들것 같습니다. 그냥 알아서 유리한 쪽으로 사용하는 수 밖에요. (논쟁의 여지가 발생하겠죠.)
댓글 달기