본문 바로가기

ftp로 자료줄대 상대방의 다운속도를 볼려면???

MintState 2008년 12월 4일 오후 10:10 조회 18879

ftp로 자료줄대 상대방의 다운속도를 볼려면???

>ftp자료실을 운영하는데.. 문뜩 내가 상대방에서
보내는속도가..
>몇인지 알고 싶어서.. 어떻게 하면 상대방의 다운속도 혹은 업속도를
>볼수 있을까요??
>

========================================

이 문제는
FTP 서버와 FTP 클라이언트 간의 네트워크 대역폭에 달려 있습니다.

예를 들어
제 아무리 빠른 네트워크 환경에 서버가 위치한다고 해도 모두 다 빠르게 다운로드하지는 못합니다.
클라이언트가 지극히 열악한 환경(모뎀)이 그 예입니다.

속도 측정은
FTPd 로그파일을 근거로 수동으로 계산해야 합니다.

만약 proftpd 를 사용한다면 proftpd.conf 파일을 다음과 같이 수정하여 %T 로 하여금 업/다운로드시에 걸린 시간을 로그하도록 하면 됩니다.

-- proftpd.conf -------------

...
LogFormat    custom "%h %l %u %t ["%r"] %s %b %T"
ExtendedLog  /var/log/proftpd.log READ,WRITE custom
...

이렇게 수정 또는 추가하고 proftpd를 재가동하면 됩니다.

/var/log/proftpd.log
파일을 열어보면

... ["STOR anyfile_name"] 226 4654145 0.438
... ["RETR anyfile_name"] 226 4654145 0.428

이와 비슷한 내용을 볼 수 있습니다.

- STOR : 클라이언트에서 서버로 업로드
- RETR : 클라이언트에서 다운로드
- 226 : 상태코드이고,
- 4654145 :anyfile_name 파일의 크기(bytes 단위)
- 0.438 : 업로드에 걸리는 시간(초단위)
- 0.428 : 다운로드에 걸리는 시간(초단위)

입니다.

계산해보면
서버로 업로드는 (4654145/1024*0.438) = 10377KBytes/sec
약 초당 10M 정도로 업로드되었다는 내용입니다. (이 수치는 내부 네트워크 환경에서 방금 테스트한 수치임)

다운로드도 이와 같은 방법으로 계산해 보면 됩니다.

주의할점은
각 클라이언트별로 묶어서

(모든 다운로드 bytes 합)/(모든 다운로드에 걸리는 시간의 합)

으로 계산해 보면 각각 클라이언트마다 평균 다운로드 속도를 알 수 있을 겁니다.

쉘스크립트로 계산해 보면 더 재미(?)있을 것 같군요..

Logformat 설정을 좀더 간소화해서 설정하면 좋겠죠..

http://proftpd.oops.org/reference.php?mode=detail&key=LogFormat&class=l
에는 로그포맷에 관한 설명이 있군요...

문법: LogFormat nickname "format-string"  
기본 설정: LogFormat default "%h %l %u %t \"%r\" %s %b"  
사용 범위: server config  
사용가능버젼: 1.1.6pl1 이후 버젼
----------------------------------------------------
LogFormat 지시자는 ExtendedLog 지시자와 함께 사용 할 일반적인 로그 형식을 생성 하는데 사용되어 진다. 일단 생성을 하면,  형식은 지정된 별칭에 의해 참조가 되어 진다.

format-string 인자는 문자, 숫자, 그리고 심볼문자의 조합으로 이루어 진다. % 는 meta-sequence 를 시작하기 위해 사용되어 진다 (아래를 참조하라). % 를 meta-sequence 를 시작 하기 위한 문자가 아닌 일반적인 문자열로 인식을 시키기 위해서는 %% 로 표현을 하면 된다.
아래의 meta-sequence 들은 log 를 할때 대신하여 사용을 할 수 있다.

%A -- (패스워드가 주어진) 익명 사용자 또는 익명 유저가 아닐 경우 UNKNOWN
%b -- 요청에 의해 보내진 Byte 량
%f -- 저장되었거나 복구되어진 filename
%F -- client 측에서의 저장되고나 복구되어지는 filename
%{FOOBAR}e -- 환경 변화가 가능한 FOORBAR의 항목
%h -- 원격 host name 
%a -- 원격 IP address 
%l -- 원격 username (ident로 부터) 
%m -- client 등으로 부터 RETR 을 받는 명령어 이름
%p -- Local server port number 
%v -- Local server name 
%P -- Local server process id (pid) 
%r -- client로 부터 받는 모든 명령어
%t -- 현재 local time 
%{format}t -- 현재 local time 형식 (strftime(3) format) 
%T -- file 전송시에 걸리는 시간 (초단위) 
%s -- Numeric FTP response code (status) 
%u -- Local의 인증된 userid
공유 X Facebook LINE QR 코드

댓글 0개

첫 댓글을 남겨보세요.