2012-05-02 3 views
2

원격 서버의 응답 속도가 느릴 때 외부 JavaScript로드가 페이지에 미치는 영향을 테스트하고 싶습니다. 특정 주소에 대한 지연 응답 시뮬레이션

나는 특정 사이트에 대한 접속 속도가 느려질 수 있지만 난 단지 전체 네트워크를 느리게 또는 Mac 용 존재하지 않는 도구 (같은 here 또는 here)

같은 도구가 있습니까을 찾을 수있는 도구를 찾았다 그?

+0

의 iptables을, 매개 변수,하지만 당신은 대신 설치 프록시 수 -이 흥미로운 개념이다 그것은 – mschr

답변

1

Mac 용 Detours App을 사용하면 특정 호스트를 자신의 로컬 웹 서버로 리디렉션 할 수 있습니다. 그런 다음 서버에서 컬 (curl 등)을 통해 리소스를 가져 와서 일정 시간 동안 휴면 상태로 만든 다음 응답을 반환 할 수 있습니다.

+0

지연 풀을과를 만들 수 있습니다. 나는 그것을 시도 할 것이다 – mbdev

0

쉬운 방법은 아니지만 TC (트래픽 제어)와 함께 IPTABLES (유닉스 ip-router)를 사용할 수 있습니까? 터미널 bash 스크립팅이 어떻게 작동하는지 알지 못한다면이 방법은 상당히 광범위하지만 적절한 솔루션을 위해서는 터미널이 100 % 필요합니다. 예를 홈 폴더이에, 그것은

#!/bin/bash 

# through this interface 
IF=$1 
# on this HOST 
HOST=$2 
# get the IP from HOST 
HOSTIP="`nslookup $HOST|grep Address|grep -v "#"|cut -d " " -f2`" 
# with this rate 
your_rate=$3 


# defaults /sbin/tc 
TC="`whereis tc | sed 's/[^\ ]*.\([^\ ]*\).*/\1/'`" 
# defaults /sbin/iptables 
IPTABLES="`whereis iptables | sed 's/[^\ ]*.\([^\ ]*\).*/\1/'`" 

#some number 
PRIO="123" 
# you create a new rule in the mangle table 
IPT="$IPTABLES -t mangle" 

echo "Program locations found: iptables: $IPTABLES and tc: $TC" 
echo "down-rating bandwidth\n on $HOST\n to $your_rate whilst marking packages that origins\n from $HOSTIP\n with $PRIO on interface\n named $IF" 
echo -n "starting setup.." 

# apply custom filter 
$IPT -N myfilter 

# add it to the POSTROUTING chain 
$IPT -A POSTROUTING -j myfilter 

# if conntrack is used - restore a mark and allow the packets, which already have been marked, through - no need to check again 

$IPT -A myfilter -p tcp -j CONNMARK --restore-mark 
$IPT -A myfilter -m mark --mark $PRIO -j ACCEPT 

# add to it your matching rule 

$IPT -A myfilter -p tcp -s $HOSTIP -j MARK --set-mark $PRIO 

# conntrack it optionally, so not every packet has to be rematched 
$IPT -A myfilter -j CONNMARK --save-mark 

# use that mark in a tc filter rule 
echo qdisc add 
$TC qdisc add dev $IF root handle 1: htb default 30 
echo class add 
$TC class add dev $IF parent 1: classid 1:1 htb rate $your_rate # <<<<<<<< fill in rate 

echo sfq add 
# add an SFQ qdisc to the end - to which you then attach the actual filter 
$TC qdisc add dev $IF parent 1:1 sfq perturb 10 
echo filter add 
$TC filter add dev $IF parent 1:1 prio 1 handle $PRIO fw flowid 1:1 
echo "done" 

이제 열린 터미널 창을 bwm.sh 루트를 달성 전화 http://lartc.org/howto/lartc.ratelimit.single.html

상점이 당신을 위해 작동하지 않는 경우

, 간단한 방법을 시도 권한

찾기> 터미널> 개방, 우리가 집 사용자에게 가서 들어갑니다 슈퍼 유저

cd; su 

는 인터페이스, 호스트 이름과 루트 암호를

시작 프로그램을 시작, 속도는 짧은

sh bwm.sh IF HOST RATE 
+0

대답 주셔서 감사합니다! netem이 모든 노력을 기울여서 mac에서 사용할 수 없다고 말하는 것은 나쁘다. – mbdev

+0

netem이 무슨 뜻인지 확실하지 않으십니까? 하지만 당신의 요점은 도구 couldnt 찾을 수있을 것 같아요? – mschr

+0

netem은 답안에 사용하는 명령 줄 'tc'가있는 소프트웨어입니다. 여기에서 찾을 수 있습니다 : http://www.linuxfoundation.org/collaborate/workgroups/networking/netem 그리고 Mac에서는 사용할 수 없습니다 – mbdev

관련 문제