<?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>Code42 &#187; apache benchmark</title>
	<atom:link href="http://code42.pl/tag/apache-benchmark/feed/" rel="self" type="application/rss+xml" />
	<link>http://code42.pl</link>
	<description>Wielkie Pytanie o Życie, Kod i całą resztę</description>
	<lastBuildDate>Wed, 25 Jan 2012 14:16:01 +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>Connection: close + Apache Benchmark</title>
		<link>http://code42.pl/2008/12/19/connection-close-apache-benchmark/</link>
		<comments>http://code42.pl/2008/12/19/connection-close-apache-benchmark/#comments</comments>
		<pubDate>Fri, 19 Dec 2008 12:18:04 +0000</pubDate>
		<dc:creator>Mistrz Wu</dc:creator>
				<category><![CDATA[Różne]]></category>
		<category><![CDATA[apache benchmark]]></category>
		<category><![CDATA[http]]></category>
		<category><![CDATA[rails]]></category>

		<guid isPermaLink="false">http://code42.pl/?p=93</guid>
		<description><![CDATA[Testowanie apache-benchmarkiem (/usr/sbin/ab) jest niewątpliwie łatwe, proste i przyjemne, nie licząc rozczarowania wynikami. Znakomicie spisuje się w przypadku Rails (nie mam pojęcia dlaczego), ale w aplikacyjach PHP może nieco zaskoczyć. Też nie wiem dlaczego, ale wydaje mi się, że jest prawdopodobnym iż… Otóż PHP, słusznie zresztą, przy braku nagłówka Connection czeka na kolejne zapytania na [...]


Podobne wpisy:<ol><li><a href='http://code42.pl/2008/12/19/aktualizacja-oprogramowania-a-wydajnosc/' rel='bookmark' title='Aktualizacja oprogramowania a wydajność'>Aktualizacja oprogramowania a wydajność</a></li>
<li><a href='http://code42.pl/2009/03/05/refaktoryzacja-css-%e2%80%94-jednak-cos-mozna/' rel='bookmark' title='Refaktoryzacja CSS — jednak coś można'>Refaktoryzacja CSS — jednak coś można</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p><img src="http://code42.pl/wp-content/uploads/girl_by_the_doors.jpg" alt="" title="girl_by_the_doors" width="427" height="262" class="aligncenter size-full wp-image-682" /></p>
<p>Testowanie <a href='http://httpd.apache.org/docs/2.0/programs/ab.html'>apache-benchmarkiem</a> (<code>/usr/sbin/ab</code>) jest niewątpliwie łatwe, proste i przyjemne, nie licząc rozczarowania wynikami. Znakomicie spisuje się w przypadku Rails (nie mam pojęcia dlaczego), ale w aplikacyjach <abbr>PHP</abbr> może nieco zaskoczyć.</p>
<p>Też nie wiem dlaczego, ale wydaje mi się, że jest prawdopodobnym iż…</p>
<p>Otóż <abbr>PHP</abbr>, słusznie zresztą, przy braku nagłówka <code>Connection</code> czeka na kolejne zapytania na tym samym połączeniu (zakłada domyślnie: <code>keep-alive</code>), a <code>ab</code> sam z siebie go nie wysyła i… zwiesza się na iluś tam otwartych połączeniach, na których nic się nie dzieje (<code>ab</code> chyba czeka aż to serwer się rozłączy). Niezbyt miło, bo to zaniża wyniki benczmarku i pogarsza i tak już złe samopoczucie.</p>
<p>Dlategoż zawsze dla pewniejszych wyników (i dobrego samopoczucia) warto dodawać <abbr>ab</abbr> opcje <code>-H&nbsp;'Connection: close'</code>. Manual mówi nawet, że przełącznikiem <code>-H</code> można też inne nagłówki wysyłać, gdyby komuś zależało.</p>
<p>Czy to jednak znaczy, że Rails w wersji cokolwiek starej, bo&nbsp;2.1.1, domyślnie zakłada <code>Connection: close</code>? To by było niesłuszne, lecz może być wytłumaczone jednowątkowością Rails. Tego niestety, już mi się nie chciało inwestygować, bo święta idą.</p>
<p>Tak więc szczęśliwego nowego jajka i co tam jeszcze!</p>


<p>Podobne wpisy:<ol><li><a href='http://code42.pl/2008/12/19/aktualizacja-oprogramowania-a-wydajnosc/' rel='bookmark' title='Aktualizacja oprogramowania a wydajność'>Aktualizacja oprogramowania a wydajność</a></li>
<li><a href='http://code42.pl/2009/03/05/refaktoryzacja-css-%e2%80%94-jednak-cos-mozna/' rel='bookmark' title='Refaktoryzacja CSS — jednak coś można'>Refaktoryzacja CSS — jednak coś można</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://code42.pl/2008/12/19/connection-close-apache-benchmark/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Aktualizacja oprogramowania a wydajność</title>
		<link>http://code42.pl/2008/12/19/aktualizacja-oprogramowania-a-wydajnosc/</link>
		<comments>http://code42.pl/2008/12/19/aktualizacja-oprogramowania-a-wydajnosc/#comments</comments>
		<pubDate>Fri, 19 Dec 2008 11:54:35 +0000</pubDate>
		<dc:creator>zergu</dc:creator>
				<category><![CDATA[Bazy danych]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Symfony]]></category>
		<category><![CDATA[apache benchmark]]></category>
		<category><![CDATA[optymalizacja]]></category>

		<guid isPermaLink="false">http://code42.pl/?p=79</guid>
		<description><![CDATA[Krótkie spostrzeżenie na temat wydajności aplikacji (praktycznie nie wypełnionej danymi) po następujących aktualizacjach: Symfony 1.1 → Symfony 1.2 Propel 1.2 → Propel 1.3 PHP 5.2.0 → PHP 5.2.6 PostgreSQL 8.1 → PostgreSQL 8.3 Prosty test został wykonany za pomocą ApacheBenchmarka: ab -c 5 -n 300 -H 'Connection: close'. Jak widać symulacja bazowała na 300 użytkownikach, przy czym [...]


Podobne wpisy:<ol><li><a href='http://code42.pl/2008/12/15/migracja-mysql%c2%a0%e2%86%92-postgresql-aplikacji-w-symfony-11/' rel='bookmark' title='Migracja MySQL → PostgreSQL aplikacji w Symfony 1.1'>Migracja MySQL → PostgreSQL aplikacji w Symfony 1.1</a></li>
<li><a href='http://code42.pl/2009/01/14/czas-zycia-krotki-w-postgresie/' rel='bookmark' title='PostgreSQL: obliczanie odstępów czasu'>PostgreSQL: obliczanie odstępów czasu</a></li>
<li><a href='http://code42.pl/2009/03/31/walidacja-jednego-pola-formularza-w-symfony/' rel='bookmark' title='Walidacja jednego pola formularza w symfony'>Walidacja jednego pola formularza w symfony</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p><img src="http://code42.pl/wp-content/uploads/speedometer-536x282.jpg" alt="" title="speedometer" width="536" height="282" class="aligncenter size-medium wp-image-676" /></p>
<p>Krótkie spostrzeżenie na temat wydajności aplikacji (praktycznie nie wypełnionej danymi) po następujących aktualizacjach:</p>
<ul>
<li>Symfony 1.1 → Symfony 1.2</li>
<li>Propel 1.2 → Propel 1.3</li>
<li>PHP 5.2.0 → PHP 5.2.6</li>
<li>PostgreSQL 8.1 → PostgreSQL 8.3</li>
</ul>
<p>Prosty test został wykonany za pomocą <a href='http://code42.pl/?p=93' title='Connection: close + Apache Benchmark'>ApacheBenchmarka</a>:<br />
<code>ab -c 5 -n 300 -H 'Connection: close'</code>. Jak widać symulacja bazowała na 300 użytkownikach, przy czym do 5 na raz wchodziło na stronę.</p>
<h2>Przed aktualizacją</h2>
<p>Próba 1:</p>
<pre>
Requests per second:    4.34 [#/sec] (mean)
Time per request:       1152.770 [ms] (mean)
Time per request:       230.554 [ms] (mean, across all concurrent requests)
</pre>
<p>Próba 2:</p>
<pre>
Requests per second:    4.79 [#/sec] (mean)
Time per request:       1043.581 [ms] (mean)
Time per request:       208.716 [ms] (mean, across all concurrent requests)
</pre>
<h2>Po aktualizacji</h2>
<p>Próba 1:</p>
<pre>
Requests per second:    5.33 [#/sec] (mean)
Time per request:       937.318 [ms] (mean)
Time per request:       187.464 [ms] (mean, across all concurrent requests)
</pre>
<p>Próba 2:</p>
<pre>
Requests per second:    5.39 [#/sec] (mean)
Time per request:       927.979 [ms] (mean)
Time per request:       185.596 [ms] (mean, across all concurrent requests)
</pre>
<p>Oczywiście z uwagi na brak testów pomiędzy poszczególnymi zmianami ciężko jest powiedzieć coś więcej, niż tyle że warto aktualizować, choćby o tego jednego requesta na sekundę ;). Ot, taka ciekawostka.</p>


<p>Podobne wpisy:<ol><li><a href='http://code42.pl/2008/12/15/migracja-mysql%c2%a0%e2%86%92-postgresql-aplikacji-w-symfony-11/' rel='bookmark' title='Migracja MySQL → PostgreSQL aplikacji w Symfony 1.1'>Migracja MySQL → PostgreSQL aplikacji w Symfony 1.1</a></li>
<li><a href='http://code42.pl/2009/01/14/czas-zycia-krotki-w-postgresie/' rel='bookmark' title='PostgreSQL: obliczanie odstępów czasu'>PostgreSQL: obliczanie odstępów czasu</a></li>
<li><a href='http://code42.pl/2009/03/31/walidacja-jednego-pola-formularza-w-symfony/' rel='bookmark' title='Walidacja jednego pola formularza w symfony'>Walidacja jednego pola formularza w symfony</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://code42.pl/2008/12/19/aktualizacja-oprogramowania-a-wydajnosc/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>

