Iptables 로는 네트워크 속도에 제한이 생기는 것 같습니다.
:shock: 집에서 인터넷공유, 파일 서버로 리눅스를 사용중입니다.
그런데, 내부 네트워크 속도가 (삼바로 Raid Disk 공유해놓고 읽고,쓰기)
쓰기 7M, 읽기 9M 수준 밖(?) 에 안나옵니다. 사실 더, 훨씬 더 나와야 되는데 말입니다. iptables 에서 처리할 수 있는 최대 속도가 있는 건가요?
먼저, 시스템 사양과 네트워크 환경 그리고 기타 환경에 대해 말씀드리겠습니다.
1. 팬티엄3-500/384메가램/30G 파이어볼 HDD/삼성 80G(ATA133) x 4 로 구성된 Raid 0+1 를 사용중 입니다. aio Raid 133 이라는 레이드 카드로 구성한겁니다.
랜카드는 RealTek 8139(100M) 2장, RealTek 8169(1G) 2장 이 설치 되어 있습니다.(사실 이번에 Raid 에 Gigabit 구성하느라고 삼송카드에 압박당하는 중이죠. 크크 ^^)
2. 네트워크 환경은
eth0 -- 192.168.4.1 -- Gigabit
eth1 -- 192.168.5.1 -- Gigabit
eht2 -- 192.168.6.1 -- 100Mbit
eth3 -- DHCP(인터넷 Cable 회선에서 자동 부여) -- 100Mbit
그리고, 일단 카드에 하드웨어적인 중대결함(^^)은 없습니다.
내부에 사용중인 윈도XP(펜4 1.6G/ 512Ram) 에도 Gigabit 설치되어 있습니다.
3. 기타사항
빨간모자 9.0 에 서버 데몬으로 APM, samba 를 유용하게 돌리고 있습니다.
iptables 의 Packet 제어를 통해.
인터넷 공유, 파이어월을 구성하였습니다.
-------> 위에서 말씀 드렸습니다만, 내부네트워크에서 사용중인 윈도XP 에서
8,9 메가 정도밖엔 속도가 나질 않습니다.
리눅스 서버 내부에서 테스트를 해보면, (sda1 에서 hda6(?)로 copy)
레이드디스크에서 일반 30G 디스크로의 카피 속도가 평균 30Mbyte/s 가 나옵니다.
그리고 No Firewall 설정으로 테스트 해보면,
윈도XP 에서 리눅스 레이드 디스크로 Copy할때, 14Mbyte/s 정도,
리눅스 Raid에서 윈도XP로 Copy할때, 19Mbyte/s 정도나옵니다.
또, 이정도 속도는 회사에서, 200G x4 / ATA100 으로 구성된 software Raid0 의 디스크와 Intel Gigabit 로 No firewall 설정된 Linux 8.0 에서 윈도 2000/Intel Gigabit ethernet/삼바로 구성된 시스템을 CrossCable 로 연결하여 테스트 하였을때와 동일한 수준의 속도입니다.
서론이 열라 길었습니다만 :P 결국 Iptables 를 사용한 패킷 처리과정에서 느려지는 것 아니겠습니까?
혹시나 CPU가 느려서 그런가 생각해봤습니다만, 보안 설정 되었을때 GkrellM 데몬으로 확인해보니, 데이터 전송중에 평균 5,60% 정도만 사용되었습니다.
Iptables 가 처리할 수 있는 속도에 문제가 있는 것 같습니다.
인터넷 공유와 Firewall 을 구현하면서, 네트워크 속도를 보장할 수 있는 다양한 아이디어를 부탁드립니다.
파이어월 설정을 그냥 끄란 말은 절 너무나 불안케 하는 말씀입니다여. -_-;
그럼.... (질문이 길었습니다.)
에 전혀 아닌거 같지만..
제가 다루는 환경에 대해서 말씀드립니다.
일단 삼바는 아닙니다. NFS를 사용합니다.
서버 1 : Gigabit ethernet (커널은 suse에서 나온 2.4.20 64GB-SMP 입니다
서버 2 : Gigabit ethernet (Redhat Firewall 룰에 필요한게 있어 조금 추가한 정도입니다. 커널 버젼은 같습니다.)
(저 랜카드는 머 크로스고 머시고 없으니 걍 다이렉트 연결입니다)
양쪽 disk 모두 초당 50MB/s 이상 지원하는 스카시입니다.(한쪽은 100MB/s 이상 지원합니다)
서버1에서
# echo "10기가 가량의 데이터를 생성 하였습니다. " > /dev/null
# dd if=/dev/zero of=test.img bs=1M count=10240
서버2에서
# cd /mnt/nfs/server01
# ls -al test.img
-rw-r--r-- 1 root root 10737418240 6월 7 19:02 test.img
# time dd if=test.img of=/dev/null
20971520+0개의 레코드를 입력하였습니다
20971520+0개의 레코드를 출력하였습니다
real 3m42.894s
user 0m20.630s
sys 1m50.680s
#
결과의 판단은 맡기겠사옵니다.
-------------------------------
== warning 대부분 틀린 얘기입니다 warning ===
범용칩의 한계 아닐까요?그래서 ASIC이 나오는건지도...
범용칩의 한계 아닐까요?
그래서 ASIC이 나오는건지도...
그리고 좀 더 테스트를 해보시죠.
iptables에서 룰셋을 다 빼보기도 하고, 조금씩 룰셋을 복잡하게 적용해보기도하고...
그럼 ipotables의 처리능력 문제인지 아닌지가 확실히 나오지않을까요...
^^;;
좋은 방법이네요. 테스해봤습니다. 말씀대로 iptables 하곤 상관
테스트는 1G test.img 로 했습니다.
]# time dd if=/RAID/mastadata/test.img of=/dev/null
2097152+0개의 레코드를 입력하였습니다
2097152+0개의 레코드를 출력하였습니다
real 0m22.521s
user 0m3.660s
sys 0m11.260s
----> 요걸 봐선 레이드 셋팅은 제대로 된것이겠죠.
]# time dd if=/mnt/cdrom/test.img of=/dev/null
2097152+0개의 레코드를 입력하였습니다
2097152+0개의 레코드를 출력하였습니다
real 1m58.772s
user 0m4.630s
sys 0m42.680s
----> XP를 삼바로 물려놓고 cdrom에 마운트했습니다. 속도 엉망 진창입니다.
----> iptables 를 적용하지 않으면 속도가 상승하긴 합니다만 차이가 10% 도 채 안됩니다.
root]# time dd if=/RAID/mastadata/test.img of=test.img
2097152+0개의 레코드를 입력하였습니다
2097152+0개의 레코드를 출력하였습니다
real 1m28.975s
user 0m5.690s
sys 0m55.580s
----> RAID 디스크에서 30G ATA33 Fireball 디스크로 복사하는 겁니다.
----> 역시 만족할 만한 수준이 아니죠.
도대체 iptables 도 아니면.... 무엇때문인지.
아, 이거 돈은 돈대로 들고 고생은 고생대로하고...
확보된건 데이타의 안정성 뿐이군요. 켁켁..
-----------------------------------------------------------------------------------------------
- 살의 마저 일으키는 MB의 뻔뻔함과 섬세함, 그리고 조용한 분노, 잊지마라! 이 치욕적인 순간들을 -
-----------------------------------------------------------------------------------------------
구성이 복잡하여 뭐가 뭔지 잘 모르겠네요...ㅡㅡ;;뭐가 어디로
구성이 복잡하여 뭐가 뭔지 잘 모르겠네요...ㅡㅡ;;
뭐가 어디로 어떻게 마운트돼서 어떤 데이터가 어디에서 어디로 이동하는건지 알수가없네요...ㅡㅡ;;
차근차근 디스크가 문제인지, 네트웍이 문제인지, iptables가 문제인지 확인해보시면 될것같습니다.
전에 윈도우 xp간에 기가로 연결해서 파일전송해본적이있습니다.
펜4 3기가에 보드에 내장된 쓰리콤 칩셋을 쓰는것이었는데 전송속도가 200메가안팎으로 나오더군요.
케이블을 카테고리5e 를 사용했었고 길이는 3미터정도 되었었습니다.
구리선기가이더넷에서는 케이블의 길이나 재질에 상당히 민감하다고 들었습니다.
케이블상태를 한번 확인해보시는것도 좋을듯합니다.
^^;;
헉. 단위 차이인가요?
전송 속도가 200메가 전후로 나오다는 건... 단위가 bit/sec 겠죠?
그래야 25Mbyte/sec 일테니...
Gigabit 이 보장할 수 있는 최고 속도가 125Mbyte/s 로 알고 있습니다.
저도. 20 ~ 25Mbyte/s 정도를 기대하고 있었습니다.
그런데 이렇게 네트워크 속도가 안나오는건,
리눅스 서버의 시스템이 꾸지기 때문이 아닌가 싶습니다.
440BX intelchip을 사용한 메인보드에다, 지원하는 HDD사양이, ATA33 이기 때문이 아닌가하는 추측을 해봅니다. 리눅스시스템 하드디스크가 ATA33, 5400RPM 입니다.
이넘의 네트웍 상의 데이터 패킷이 시스템의 메인 하드디스크를 거쳐 가면서 병목현상이 생기는 것일거라는 생각을 지울수가 없습니다.
-----------------------------------------------------------------------------------------------
- 살의 마저 일으키는 MB의 뻔뻔함과 섬세함, 그리고 조용한 분노, 잊지마라! 이 치욕적인 순간들을 -
-----------------------------------------------------------------------------------------------
댓글 달기