강좌 & 팁
글 수 2,412
2010.11.17 16:32:48 (*.82.68.231)
94716
네트워크 속도 측정시 삼바나 nfs 등을 연결해서 대강의 속도를 측정한다든가 하지만
인간의 도구를 이용할줄 알기 때문에 유틸리티를 이용한 츨정 방법을 소개 하겠습니다.
환경은 테스트를 위한 서버 2대
ARM 보드 1개 이렇게 준비합니다.
각 서버에는 우분투가 깔려 있고 iperf 를 설치했습니다.
ARM 보드를 위해 iperf 를 크로스 컴파일 합니다.
컴파일러는 가장 일반적인 arm-linux-gcc 버전 3.4.3을 사용합니다.
소스는 찾기가 마땅찮아서 가장 먼저 찾은 iperf-2.0.4.tar.gz 을 사용하기로 합니다.
root@boggle70-desktop:rpm2cpio# tar xvfz iperf-2.0.4.tar.gz
root@boggle70-desktop:rpm2cpio# cd iperf-2.0.4
root@boggle70-desktop:iperf-2.0.4#
root@boggle70-desktop:iperf-2.0.4# ac_cv_func_malloc_0_nonnull=yes ./configure --build=i686-linux --host=arm-linux --with-linux=/usr/arm-linux/include/ -prefix=/staff/netwinder-rpm/rpm2cpio/iperf-2.0.4/
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for gawk... gawk
...
중간생략
...
config.status: creating include/iperf-int.h : _IPERF_INCLUDE_IPERF_INT_H
config.status: include/iperf-int.h is unchanged
root@boggle70-desktop:iperf-2.0.4#
root@boggle70-desktop:iperf-2.0.4#
root@boggle70-desktop:iperf-2.0.4# make
make all-recursive
make[1]: Entering directory `/staff/netwinder-rpm/rpm2cpio/iperf-2.0.4'
Making all in compat
...
중간생략
...
make[2]: Entering directory `/staff/netwinder-rpm/rpm2cpio/iperf-2.0.4/man'
make[2]: `all'를 위해 할 일이 없습니다
make[2]: Leaving directory `/staff/netwinder-rpm/rpm2cpio/iperf-2.0.4/man'
make[2]: Entering directory `/staff/netwinder-rpm/rpm2cpio/iperf-2.0.4'
make[2]: Leaving directory `/staff/netwinder-rpm/rpm2cpio/iperf-2.0.4'
make[1]: Leaving directory `/staff/netwinder-rpm/rpm2cpio/iperf-2.0.4'
root@boggle70-desktop:iperf-2.0.4#
root@boggle70-desktop:iperf-2.0.4# ll src/iperf
-rwxr-xr-x 1 root root 77521 2010-11-17 12:41 src/iperf
root@boggle70-desktop:iperf-2.0.4# file src/iperf
src/iperf: ELF 32-bit LSB executable, ARM, version 1, dynamically linked (uses shared libs), for GNU/Linux 2.6.8, not stripped
root@boggle70-desktop:iperf-2.0.4#
와 같이 컴파일이 되었습니다.
사용하고자 하는 ARM 보드의 /usr/sbin/ 에 복사를 합니다.
서버로 사용할 한대의 서버를 정하고 iperf 를 서버측으로 설정하는 옵션을 주고 실행시킵니다.
root@boggle70-desktop:~# iperf -s -f M
측정하고자 하는 서버를 하나 정해 서버로 접속을 해서 측정을 시작합니다.
root@svr29:boggle70# iperf -c 192.168.10.190 -P 4 -f M -w 256k -t 60
결과창은
서버측
클라이언트측
살펴보면 네개의 쓰레드를 띄워 개별적인 속도를 측정해서 합하는 식으로 보여집니다.
어찌되었던 클라이언트 측에서는 11.0MBytes/sec 정도가 측정이 되었군요.
이것은 둘다 우분투가 깔린 서버에서 100M 네트워크 속도 측정을 위한 충분한
속도가 나오는 상태였습니다.
이번에는 100M 이더넷을 지원하지만 ARM 보드에서의 속도를 측정해 보겠습니다.
서버측은 동일하게 실행시켜 놓고 클라이언트에서 실행합니다.
ARM 보드의 사양은 ATMEL at91sam9261 CPU 를 사용한 200MHz 코어속도,
100MHz의 SDRAM을 사용하는 보드입니다.
결과창을 보면
서버측
클라이언트측
이렇게 나옵니다.
여러번을 반복해도 대략 5MBytes/sec 가 평균입니다.
이 보드의 실제 퍼포먼스는 이정도 인것 같습니다.
첨부에 소스가 있으니 다운 받아서 해 보실수 있습니다.
컴파일은 어떻게 하나요?