<?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>blog. mult edition &#187; сайт</title>
	<atom:link href="http://multed.net/tag/site/feed/" rel="self" type="application/rss+xml" />
	<link>http://multed.net</link>
	<description></description>
	<lastBuildDate>Sat, 28 Jan 2012 08:59:16 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Домашнее тестирование производительности. Часть первая.</title>
		<link>http://multed.net/2008/07/test_proizvoditelnosti_odin/</link>
		<comments>http://multed.net/2008/07/test_proizvoditelnosti_odin/#comments</comments>
		<pubDate>Thu, 31 Jul 2008 05:37:25 +0000</pubDate>
		<dc:creator>Евгений Лисовский</dc:creator>
				<category><![CDATA[Daily]]></category>
		<category><![CDATA[FreeBSD]]></category>
		<category><![CDATA[Home]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[perl]]></category>
		<category><![CDATA[производительность]]></category>
		<category><![CDATA[сайт]]></category>
		<category><![CDATA[тестирование]]></category>

		<guid isPermaLink="false">http://multed.net/?p=41</guid>
		<description><![CDATA[Вчера решил заняться тестированием производительноси домашнего сайта на моей новой машинке. Сайт из себя представляет набор скриптов на PERL, данные хранятся в MySQL, крутится все по управлением Apache 2.2, на FreeBSD 7.0-STABLE-amd64. Тестирование производил по методике. описанной тут. Первая страница, с десятью запросами в секунду, результаты: 218 fetches, 373 max parallel, 578562 bytes, in 60.1658 [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fmulted.net%2F2008%2F07%2Ftest_proizvoditelnosti_odin%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fmulted.net%2F2008%2F07%2Ftest_proizvoditelnosti_odin%2F&amp;source=multed_net&amp;style=normal&amp;service=retwt.me&amp;b=2" height="61" width="50" /><br />
			</a>
		</div>
<p>Вчера решил заняться тестированием производительноси домашнего сайта на моей новой машинке.</p>
<p>Сайт из себя представляет набор скриптов на PERL, данные хранятся в MySQL, крутится все по управлением Apache 2.2, на FreeBSD 7.0-STABLE-amd64. Тестирование производил по методике. описанной <a href="http://www.opennet.ru/base/sys/apache_tune_bsd.txt.html" target="_blank">тут</a>.</p>
<p>Первая страница, с десятью запросами в секунду, результаты:</p>
<blockquote><p>218 fetches, 373 max parallel, 578562 bytes, in 60.1658 seconds<br />
2653.95 mean bytes/connection<br />
3.62332 fetches/sec, 9616.13 bytes/sec<br />
msecs/connect: 0.240661 mean, 0.556 max, 0.064 min<br />
msecs/first-response: 9699.27 mean, 34719.9 max, 207.924 min<br />
210 bad byte counts<br />
HTTP response codes:<br />
code 200 &#8212; 109</p></blockquote>
<p>Небыстро, подумал я. Неужно, PERL такой медленный получается? Или просто код неоптимизированый? Написал на Коленке быстренько скрипт на php, выбирающий все записи из таблицы (более тысячи записей, размер табицы 1.8 Мегабайт). Результаты:</p>
<blockquote><p>598 fetches, 11 max parallel, 1.06257e+09 bytes, in 60 seconds<br />
1.77688e+06 mean bytes/connection<br />
9.96666 fetches/sec, 1.77096e+07 bytes/sec<br />
msecs/connect: 0.0724348 mean, 0.295 max, 0.048 min<br />
msecs/first-response: 174.208 mean, 999.469 max, 138.848 min<br />
HTTP response codes:<br />
code 200 &#8212; 598</p></blockquote>
<p>Молодец, PHP, все отдал. все быстренько. Своял такой же (тот же запрос, та же отдача) скрипт на PERL. Удивился:</p>
<blockquote><p>599 fetches, 1 max parallel, 1.06428e+09 bytes, in 60 seconds<br />
1.77676e+06 mean bytes/connection<br />
9.98333 fetches/sec, 1.7738e+07 bytes/sec<br />
msecs/connect: 0.0690417 mean, 0.217 max, 0.054 min<br />
msecs/first-response: 47.338 mean, 53.21 max, 47.066 min<br />
HTTP response codes:<br />
code 200 &#8212; 599</p></blockquote>
<p>При том, что время отдачи минимальное чуть больше, чем у php, perl более стабилен в хороших результатах. Продолжив эксперименты дальше &#8212; увеличил количество запросов до 50 в секунду, perl сдался:</p>
<blockquote><p>1780 fetches, 464 max parallel, 2.80196e+09 bytes, in 60.0368 seconds<br />
1.57413e+06 mean bytes/connection<br />
29.6485 fetches/sec, 4.66707e+07 bytes/sec<br />
msecs/connect: 106.043 mean, 3271.55 max, 0.052 min<br />
msecs/first-response: 3265.43 mean, 8278.56 max, 0.206 min<br />
203 bad byte counts<br />
HTTP response codes:<br />
code 200 &#8212; 1577</p></blockquote>
<p>У PHP:</p>
<blockquote><p>2992 fetches, 24 max parallel, 5.31642e+09 bytes, in 60.0002 seconds<br />
1.77688e+06 mean bytes/connection<br />
49.8665 fetches/sec, 8.86068e+07 bytes/sec<br />
msecs/connect: 0.208658 mean, 7.537 max, 0.049 min<br />
msecs/first-response: 156.402 mean, 5042.3 max, 138.581 min<br />
HTTP response codes:<br />
code 200 &#8212; 2992</p></blockquote>
<p>Львиная доля производительности при исполнения скрипта на PERL, тратится на запуск отдельного экземпляра PERL-интерпретатора, в отличие от исполняемого php-скрипта как модуля Apache. 50 запросов в секунду на моем домашнем сайтике &#8212; это фантастическая величина. Но, чтобы было все хорошо, надо либо переписывать все на php, либо экспериментировать с mod_perl, ну или заняться аццкой оптимизацией существующего кода. Но это уже совсем другая песня.</p>
]]></content:encoded>
			<wfw:commentRss>http://multed.net/2008/07/test_proizvoditelnosti_odin/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>

