2012-08-14 1 views
0

내 코드 : PHP : 트래픽의 10 %를 보내는

$random_number = mt_rand(1,100); 

if ($random_number <= 10){ 
    header('Location: http://www.site1.com'); 
} else { 
    header('Location: http://www.site2.com'); 
} 

exit; 

은 말할 필요도없이, 당신은 트래픽이 많은 경우 작동하는 것 같다,하지만

당신은 아래로 1000 주위의 순 하루에 때, 비율은 35 ~ 40 % 정도입니다.

+7

난수는 예상 한대로 거의 작동하지 않습니다. –

+0

@MarcB 당신이 그곳에서 한 것을 봅니다! :) –

+0

코드에 따르면, 사용자는 실제로 <='이어야하는'<'로 인해 (평균적으로) 9 %의 시간 만 리디렉션되어야합니다. 하지만, tbh, 왜 1부터 10까지 임의의 숫자를 선택하고 번호 1과 비교해 보지 않겠습니까? – jeremy

답변

1

트래픽을보다 정확하게 분산 시키려면로드 밸런서를 사용하거나 코드에서 카운터를 증가 시키십시오.

Here는, there's a better way than blindly choosing at random을 일부 A/B 테스트를 할 찾고 있다면 mt_rand하지

+0

그 기사는 암호화 용도로 사용하기에 충분히 무작위라고 말합니다. 암호 작성자는 데이터 배포에 대해 걱정하지 않지만 시퀀스를 예측하는 것이 얼마나 쉬운 지 알 수 있습니다. 이렇게 몬테 카를로 사용하기에 충분해야합니다. – Barmar

0

그래서 무작위 이유에 좋은 기사이고 정말 더 복잡한 아니다.

+0

링크가 404. – aug

+0

@aug - 잘 된 것처럼 보입니다. "Multi-Armed Bandit"에 대한 기사 링크 - https://support.google.com/analytics/answer/2844870?hl=en은 5 분 내에 검색 할 수있는 최고의 대체품입니다. –