우분투에서 tcpdump 기반 스크립트를 실행하고 있으며 최근에 CentOS 6.5에서 실행하도록 요청 받았으며 매우 흥미로운 차이점을 발견했습니다.libpcap 우분투 14.40과 CentOS 6.5의 libpcap 성능 및 동작 차이
모두 실제로 '나는 두 OS에서 동일한 명령을 실행하는거야(부팅 된 듀얼) 동일한 하드웨어에서 실행되는 내가 모두 설정에 tcpdump를 4.6.2, libpcap의 1.6.2을 실행하는거야
.
"무료 -k"에서sudo /usr/sbin/tcpdump -s 0 -nei eth9 -w /mnt/tmpfs/eth9_rx.pcap -B 2000000
, 나는 우분투에 할당 된 2 세대에 대한 참조
전 :
free -k
total used free shared buffers cached
의 Mem : 65,928,188 1,337,008 64,591,180 1,164 26,556 68,596 -/+ 버퍼/캐시 : 1241856 64686332 스왑 : 67063804 0 67063804
다음 : 무료 -k tot 3246516이 62,681,672 가 스왑 : 67063804 0 67063804
expr 3341680 - 1337184
2,004,496
하나 CentOS는, 내가 두 번 참조 -/+ 버퍼/캐시 65,928,188는 3,341,680 62,586,508 1,160 26,572 68,592 가 : 알은 무료 공유 버퍼가 의 Mem 캐시 사용
free -k
total used free shared buffers cached
,369,136 : 메모리 용량 (4G)는 동일한 명령
앞에서 할당되고3210
의 Mem : 16,225,932 394,000 15,831,932 0 15308 85384 -/+ 버퍼/캐시 : 293,308 15,932,624 스왑 : 후 8183804 0 8183804
: 무료 -k 총 사용 무료 공유 버퍼 캐시 의 Mem : 16,225,932 4,401,652 11,824,280 0 14896 84884 -/+/캐시 버퍼 : 4,301,872 11,924,060 스왑 : 8183804 0 8183804
expr 4401652 - 394000
4,007,652
명령에서 인터페이스를 청취하고 RAM 디스크에 덤프합니다.
우분투, I는 대형 패킷 (10G 1024 개 바이트 프레임)
그러나에 CentOS에서 I 만 회선 속도 (10G 1024 개 바이트의 프레임을 60 %의 패킷을 캡처 할 수있는 대 선 속도로 패킷을 캡처 할)
두 OS 모두 동일한 버전의 NIC 드라이버와 드라이버 구성을 실행합니다.
내 목표는 우분투에서와 같이 CentOS에서 동일한 성능을 달성하는 것입니다.
나는 주위를 둘러 보았고 libpcap의 마술은 다른 커널과 다르게 행동하는 것으로 보인다.나는 우분투에서 동일한 성능을 얻기 위해 CentOS 측에서 tweek해야하는 커널 옵션이 있다면 궁금합니다.