<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>stream of bytes &#187; http</title>
	<atom:link href="http://diary.braniecki.net/tag/http/feed/" rel="self" type="application/rss+xml" />
	<link>http://diary.braniecki.net</link>
	<description>Open-source development violates almost all known management theories.</description>
	<lastBuildDate>Thu, 26 Jan 2012 11:03:07 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>Blokowanie zalewu robotów MSNu</title>
		<link>http://diary.braniecki.net/2010/02/05/blokowanie-zalewu-robotow-msnu/</link>
		<comments>http://diary.braniecki.net/2010/02/05/blokowanie-zalewu-robotow-msnu/#comments</comments>
		<pubDate>Fri, 05 Feb 2010 13:18:53 +0000</pubDate>
		<dc:creator>zbraniecki</dc:creator>
				<category><![CDATA[main]]></category>
		<category><![CDATA[po polsku]]></category>
		<category><![CDATA[tech]]></category>
		<category><![CDATA[blokowanie]]></category>
		<category><![CDATA[htaccess]]></category>
		<category><![CDATA[http]]></category>
		<category><![CDATA[polski]]></category>
		<category><![CDATA[robots.txt]]></category>
		<category><![CDATA[roboty]]></category>

		<guid isPermaLink="false">http://diary.braniecki.net/?p=1068</guid>
		<description><![CDATA[Mniej więcej pod koniec grudnia, odezwał się do mnie dostawca hostingu dla aviary.pl &#8211; Dreamhost. Napisali do mnie, że niestety muszą mnie prosić o zdjęcie serwisu bugs.aviary.pl ze względu na ogromne obciążenie łącza jakie ten serwis generuje. To oczywiście dość mocny cios w postawowy mechanizm jakiego używa Aviary.pl do swojej pracy i na dodatek cios [...]]]></description>
			<content:encoded><![CDATA[<p>Mniej więcej pod koniec grudnia, odezwał się do mnie dostawca hostingu dla aviary.pl &#8211; <a href="http://dreamhost.com">Dreamhost</a>.</p>
<p>Napisali do mnie, że niestety muszą mnie prosić o zdjęcie serwisu bugs.aviary.pl ze względu na ogromne obciążenie łącza jakie ten serwis generuje.</p>
<p>To oczywiście dość mocny cios w postawowy mechanizm jakiego używa Aviary.pl do swojej pracy i na dodatek cios w punkt, na którym nie znam się aż tak dobrze (nie znam kodu Bugzilli aby ocenić co wpływa na jej wydajność). Pan z DH poinformował, że wygląda na to, że nasza bugs.aviary.pl zużywa ogromne zasoby procesora i rejestruje bardzo wysoką liczbę odwiedzin z robota MSN.</p>
<p>To natchnęło mnie by założyć system statystyczny i zacząć obserwować. Z DH dogadaliśmy się, że zamykamy bugzillę do czasu gdy zrozumiemy przyczynę tak dużego obciążenia.</p>
<p>W okresie świąt i nowego roku trudno było znaleźć czas na pracę nad tym, ale gdy w końcu się zebrałem, logi okazały się bezlitosne. Nasza Bugzilla dziennie obsługuje nasz zespół (trochę ponad 20 osób) plus odwiedzających, co powinno, na moje oko, dawać koło 60-80 osób dziennie, koło 150 wizyt, koło 600 stron.</p>
<p>Zamiast tego, w październiku rejestrowaliśmy średnio <strong>6500</strong> pobrań stron dziennie, w listopadzie <strong>7000</strong> a w grudniu dochodziło do <strong>8000</strong>. To znacząca różnica zwłaszcza, że te żądania w znacznej części dotyczyły złożonych kwerend wyszukiwawczych i załączników. Takie kwerendy generują największe obciążenie serwera i są najwolniejsze.</p>
<p>Następnym wnioskiem było to, że około 84% tego ruchu generowane jest przez hosty w domenie <strong>65.55</strong> oraz <strong>66.249</strong> zaś najpopularniejszą przeglądarką jest <strong>msnbot/2.0b</strong> która pobrała w listopadzie <strong>157000</strong> stron, czyli około <strong>13000</strong> stron dziennie! Na dalszych miejscach było Googlebot z <strong>2500</strong> i Yahoo Slurp! z <strong>166</strong> zapytaniami dziennie.</p>
<p>Pierwszą reakcją było oczywiście założenie <em>robots.txt<strong>, </strong></em>które powinno załatwić sprawę oraz lektura google w poszukiwaniu podobnych przypadków. Lekcja pierwsza mówiła, że są dobre i złe roboty. Dobre to takie, które sprawdzają robots.txt i jak ten mówi &#8220;nie&#8221; to nie przeszukują oraz złe, takie, które ignorują robots.txt.</p>
<p>Oczywiście po chwili okazało się, że msnbot/2.0b, który przychodzi do mnie z domen takich jak <em>msnbot-65-55-104-75.search.msn.com</em> czy <em>msnbot-65-55-104-59.search.msn.com</em><strong> </strong>jest <strong>złym</strong> robotem, który <strong>ignoruje</strong> plik dla niego przygotowany (mimo, że czyta go, oj czyta, tak mniej więcej co 30 sekund przez 24h na dobę!).</p>
<p>Ciekawą reakcją (obserwowaną także przez innych adminow) jest to, że po włączeniu robots.txt, msnbot zaczyna <strong>oszukiwać</strong>. Mianowicie odpytuje robots.txt jako msnbot, znajduje informację, że go nie chcemy a następnie zaczyna indeksować strony podając się za <strong>Internet Explorera 6</strong>.</p>
<p>Przykład takiego zachowania:</p>
<pre>65.55.51.69 - - [03/Feb/2010:14:05:41 -0800] "GET /robots.txt HTTP/1.1" 200 319 "-" "msnbot/2.0b (+http://search.msn.com/msnbot.htm)"
65.55.110.210 - - [03/Feb/2010:14:06:12 -0800] "GET /attachment.cgi?id=453&amp;action=diff&amp;context=patch&amp;collapsed=&amp;headers=1&amp;format=raw HTTP/1.1" 200 841 "-" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2;  SLCC1;  .NET CLR 1.1.4322;  .NET CLR 2.0.40607)"
msnbot-65-55-232-33.search.msn.com - - [03/Feb/2010:14:06:30 -0800] "GET /attachment.cgi?id=132&amp;action=edit HTTP/1.1" 200 477 "-" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.2;  SV1;  .NET CLR 1.1.4322;  .NET CLR 2.0.50727;  .NET CLR 3.0.04506.648)"
msnbot-65-55-232-33.search.msn.com - - [03/Feb/2010:14:06:44 -0800] "GET /attachment.cgi?bugid=189&amp;action=viewall HTTP/1.1" 200 477 "-" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1;  SLCC1;  .NET CLR 1.1.4322;  .NET CLR 2.0.50727;  .NET CLR 3.0.30729;  .NET CLR 3.5.30729;  InfoPath.2)"
65.55.110.210 - - [03/Feb/2010:14:06:47 -0800] "GET /attachment.cgi?id=784&amp;action=diff&amp;context=patch&amp;collapsed=&amp;headers=1&amp;format=raw HTTP/1.1" 200 2160 "-" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2;  SLCC1;  .NET CLR 1.1.4325;  .NET CLR 2.0.50727;  .NET CLR 3.0.04506.648)"
msnbot-65-55-232-33.search.msn.com - - [03/Feb/2010:14:06:50 -0800] "GET /attachment.cgi?bugid=189&amp;action=viewall HTTP/1.1" 200 477 "-" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1;  SLCC1;  .NET CLR 1.1.4322;  .NET CLR 2.0.50727;  .NET CLR 3.0.30729;  .NET CLR 3.5.30729;  InfoPath.2)"
msnbot-65-55-104-75.search.msn.com - - [03/Feb/2010:14:07:16 -0800] "GET /attachment.cgi?bugid=1098&amp;action=viewall HTTP/1.1" 200 477 "-" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1;  SLCC1;  .NET CLR 1.1.4322)"
</pre>
<p>Uważny czytelnik zwróci uwagę, że bot posługuje się różnymi UA stringami, różnymi adresami IP (tak na prawde to jest ich znacznie więcej, rotują się jednak raz na kilka godzin więc trudno było to ładnie ująć w wycinku logu) i identyfikują MSN albo przez host, albo przez UA, albo w ogóle! (wiersz drugi) W takiej sytuacji domyślenie się koincydencji (oraz odwiedzin z domeny 65.55.*.* na polskim serwisie polskiego zespołu lokalizacyjnego) wymaga logicznego rozumowania i jest trudne do zapisania w sposób algorytmiczny.</p>
<p>Uważam takie zachowanie za skandaliczne, choć później okazało się, że nie oni jedni.</p>
<p>Google zachowuje się w miare sensownie i utrzymuje stałe IP crawlera, co pozwala go wyciąć po nim. Yahoo podobnie. Natomiast przedwczoraj zaatakował crawler WP, który również zignorował robots.txt i przez 3 godziny indeksował każdą kombinację kwerend wyszukania i załączniki jakie mamy w naszej Bugzilli.</p>
<p>Mimo to, że takich problemów mam więcej, najważniejsze są implikacje takich zachowań:</p>
<p>1) Jakie obciążenie generuje dla serwisów dynamicznych taki robot. Proszę zrozumieć skalę! Ten robot atakuje falami, co godzinę, przez 24 godziny na dobę, przez wszystkie dni w miesiącu, za każdym razem generując falę zapytań na poziomie <strong>100 zapytań</strong> w minutę! I to nie są zapytania o pliki statyczne, CSS, JS czy PNG. To wyłącznie zapytania o strony! Jakie koszty to generuje, jakie obciążenie&#8230; to absurd</p>
<p>2) Robot, który wedle logów zaczął działac mniej więcej po uruchomieniu wyszukiwarki <strong>bing</strong>, ignoruje kontrakt społeczny między autorami stron i wyszukiwarkami i indeksuje wszystko <strong>pomimo</strong>, że pobiera też robots.txt który mu tego zabrania.</p>
<p>3) Jaki ma to wpływ na statystyki IE? W moim, bardzo starym mechanizmie statystyk (webalizer chyba &#8211; to dostarcza DH) ma ogromny. Aktualnie wedle niego bugs.aviary.pl odwiedza 80% użytkowników z IE6.</p>
<p>Na koniec dodam tylko, że obecnie stosuję niniejszy <a href="http://hg.aviary.pl/bugzilla/file/default/config/htaccess">.htaccess</a> do blokowania tego ile się da.</p>
]]></content:encoded>
			<wfw:commentRss>http://diary.braniecki.net/2010/02/05/blokowanie-zalewu-robotow-msnu/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
	</channel>
</rss>

