이것은 대역폭을 제한하는 방법에 대한 아주 좋은 답변 입니다.
이제 대역폭은 저의 주요 관심사가 아닙니다-대기 시간입니다.
내 응용 프로그램 서버와 해당 데이터베이스 서버 사이에 몇 백 킬로미터를두면 어떻게됩니까?
모든 IP 패킷에 대해 예상되는 지연을 시뮬레이트 할 가능성을 찾고 있습니다.
이것은 대역폭을 제한하는 방법에 대한 아주 좋은 답변 입니다.
이제 대역폭은 저의 주요 관심사가 아닙니다-대기 시간입니다.
내 응용 프로그램 서버와 해당 데이터베이스 서버 사이에 몇 백 킬로미터를두면 어떻게됩니까?
모든 IP 패킷에 대해 예상되는 지연을 시뮬레이트 할 가능성을 찾고 있습니다.
답변:
을 사용하여이 작업을 수행 할 수 있습니다 netem
. 에서 홈페이지 :
광역 네트워크 지연 에뮬레이션
이것은 가장 간단한 예이며, 로컬 이더넷에서 나가는 모든 패킷에 고정 된 지연 시간을 추가합니다.
# tc qdisc add dev eth0 root netem delay 100ms
이제 로컬 네트워크에서 호스트하기위한 간단한 핑 테스트는 100 밀리 초의 증가를 보여야합니다. 지연은 커널의 클럭 해상도 (Hz)에 의해 제한됩니다. 대부분의 2.4 시스템에서 시스템 클록은 100Hz에서 실행되며 10ms 단위로 지연 될 수 있습니다. 2.6에서이 값은 1000 ~ 100Hz의 구성 매개 변수입니다.
이후 예제는 qdisc를 다시로드하지 않고 매개 변수를 변경합니다.
실제 광역 네트워크는 변동성을 보여 임의의 변동을 추가 할 수 있습니다.
# tc qdisc change dev eth0 root netem delay 100ms 10ms
이로 인해 추가 된 지연은 100 ± 10ms가됩니다. 네트워크 지연 변동은 순전히 무작위가 아니므로 상관 값도 모방합니다.
# tc qdisc change dev eth0 root netem delay 100ms 10ms 25%
이로 인해 추가 된 지연이 마지막 임의 요소의 25 %에 따라 다음 임의 요소와 함께 100 ± 10ms가됩니다. 이것은 진정한 통계적 상관 관계가 아니라 근사치입니다.
배포 지연
일반적으로 네트워크 지연은 일정하지 않습니다. 지연의 변동을 설명하기 위해 정규 분포와 같은 것을 사용하는 것이 더 일반적입니다. netem 분야는 불균일 분포를 지정하기 위해 테이블을 사용할 수 있습니다.
# tc qdisc change dev eth0 root netem delay 100ms 20ms distribution normal
실제 테이블 (normal, pareto, paretonormal)은 iproute2 컴파일의 일부로 생성되어 / usr / lib / tc에 배치됩니다. 실험 데이터를 기반으로 자신의 분포를 만드는 것이 약간의 노력으로 가능합니다.
tc
합니다. 현재 SLES 및 RHEL 시스템에도 있습니다.