<?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>JCG</title>
	<atom:link href="http://www.jcg.de/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.jcg.de</link>
	<description>Jan-Christoph Gack</description>
	<lastBuildDate>Wed, 28 Dec 2011 09:14:00 +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>Magento: /var/cache als Ramdisk mounten</title>
		<link>http://www.jcg.de/magento-var-cache-tmpfs-mounte/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=magento-var-cache-tmpfs-mounte</link>
		<comments>http://www.jcg.de/magento-var-cache-tmpfs-mounte/#comments</comments>
		<pubDate>Sun, 25 Dec 2011 21:39:13 +0000</pubDate>
		<dc:creator>JCG</dc:creator>
				<category><![CDATA[Magento]]></category>
		<category><![CDATA[magento]]></category>
		<category><![CDATA[optimierung]]></category>
		<category><![CDATA[performance]]></category>
		<category><![CDATA[shop]]></category>

		<guid isPermaLink="false">http://www.jcg.de/?p=77</guid>
		<description><![CDATA[Bekanntlich kann auf kein Speichermedium annähernd so schnell zugegriffen werden wie auf den Arbeitsspeicher, das RAM. Ausreichend verfügbares RAM vorausgesetzt,...]]></description>
			<content:encoded><![CDATA[<p>Bekanntlich kann auf kein Speichermedium annähernd so schnell zugegriffen werden wie auf den Arbeitsspeicher, das RAM. Ausreichend verfügbares RAM vorausgesetzt, ist Magentos /var/cache (oder nach Belieben auch das gesamte Verzeichnis /var ) geradezu prädestiniert dafür, in eben diesem gespeichert zu sein.</p>
<p>Genaugenommen kommt statt einer Ramdisk das zeitgemäßere tmpfs (Temporary File System) zum Einsatz. Ein entscheidender Vorteil einer tmpfs-Partition ist, dass die Größe des RAM, die sie belegt, variabel ist: Eine tmpfs-Partition belegt physisch immer nur so viel Arbeitsspeicher, wie sie aufgrund ihrer aktuellen Größe gerade braucht. Sie wächst quasi mit, bis zum Wert, der als erlaubtes Maximum definiert wurde.</p>
<p>Die im Web an vielen Stellen zu findende Syntax funktioniert übrigens <strong>nicht</strong>, da mit dieser das Device von Magento nicht beschreibbar ist. Man muss es explizit User und Gruppe www-data zuweisen (das bezieht sich auf Debian/GNU, Ubuntu Server und deren Derivate; bei anderen Distributionen entsprechend dem User und der Gruppe, unter welchem bzw. welcher der Webserver läuft). Und zwar so:</p>
<blockquote><p>mount -t tmpfs -o size=1G,mode=0744,uid=www-data,gid=www-data tmpfs <em>/var/www/ihr-host/var/cache/</em></p></blockquote>
<p>In o.g. Beispiel wird der tmpfs-Partition eine maximale Größe von einem Gbyte zugewiesen. Erlaubt sind natürlich auch Werte im Mbyte-Bereich, z.B. 512M oder 800M etc.</p>
<p>Zu bedenken ist, dass Partition und ergo deren Inhalt nach einem Neustart weg sind. Soll die Partition nach einem Neustart automatisch gemountet werden, erreicht man dies durch einen Eintrag in /etc/fstab .</p>
<p>Manuell kann man die Partition bei Bedarf mit</p>
<blockquote><p>umount tmpfs</p></blockquote>
<p>unmounten.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.jcg.de/magento-var-cache-tmpfs-mounte/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Host-Splitting für Magento</title>
		<link>http://www.jcg.de/host-splitting-fur-magento/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=host-splitting-fur-magento</link>
		<comments>http://www.jcg.de/host-splitting-fur-magento/#comments</comments>
		<pubDate>Sun, 25 Dec 2011 16:06:45 +0000</pubDate>
		<dc:creator>JCG</dc:creator>
				<category><![CDATA[Magento]]></category>
		<category><![CDATA[magento]]></category>
		<category><![CDATA[optimierung]]></category>
		<category><![CDATA[performance]]></category>
		<category><![CDATA[shop]]></category>

		<guid isPermaLink="false">http://www.jcg.de/?p=56</guid>
		<description><![CDATA[Zahlreiche Browser limitieren die Anzahl gleichzeitiger Requests pro Host auf zehn. Gerade bei komplexen CMS oder Shopsystemen, deren Seitenaufrufe eine...]]></description>
			<content:encoded><![CDATA[<p>Zahlreiche Browser limitieren die Anzahl gleichzeitiger Requests pro Host auf zehn. Gerade bei komplexen CMS oder Shopsystemen, deren Seitenaufrufe eine große Anzahl paralleler Requests auslösen, bedeutet diese Beschränkung einen clientseitigen Flaschenhals.</p>
<p>Diesen beseitigen wir, indem wir die Requests auf verschiedene Hosts verteilen. Im Magento-Backend findet sich hierfür unter &#8220;Konfiguration&#8221; -&gt; &#8220;System&#8221; -&gt; &#8220;Web&#8221; -&gt; &#8220;Ungesichert&#8221; eine entsprechende Konfigurationsmöglichkeit:</p>
<p>&nbsp;</p>
<p><a href="http://www.jcg.de/wp-content/uploads/2011/12/magento-hosts-01.png"><img class="aligncenter size-full wp-image-57" title="magento-hosts-01" src="http://www.jcg.de/wp-content/uploads/2011/12/magento-hosts-01.png" alt="Magento-Konfiguration der Hosts" width="613" height="203" /></a></p>
<p>Hier tragen wir nun jeweils vom Basis-Host abweichende Hosts ein:</p>
<p>&nbsp;</p>
<p><a href="http://www.jcg.de/wp-content/uploads/2011/12/magento-hosts-02.png"><img class="aligncenter size-full wp-image-63" title="magento-hosts-02" src="http://www.jcg.de/wp-content/uploads/2011/12/magento-hosts-02.png" alt="alternative Hosts für Magento" width="642" height="202" /></a></p>
<p>&nbsp;</p>
<p>Zuvor müssen die entsprechenden Hosts natürlich existieren und konfiguriert werden. Am Beispiel von js.host.tld sieht die entsprechende Apache-Konfigurationsdatei so aus:</p>
<blockquote><p>&lt;VirtualHost *:80&gt;<br />
ServerAdmin webmaster@host.tld</p>
<p>ServerName js.host.tld<br />
DocumentRoot /var/www/host<br />
&lt;Directory /var/www/host/&gt;<br />
Options -Indexes FollowSymLinks MultiViews<br />
AllowOverride None<br />
Order deny,allow<br />
deny from all<br />
&lt;/Directory&gt;<br />
&lt;Directory /var/www/host/js/&gt;<br />
Options -Indexes FollowSymLinks MultiViews<br />
AllowOverride None<br />
Order allow,deny<br />
allow from all<br />
Include /etc/apache2/deflate-expires.conf<br />
&lt;/Directory&gt;</p>
<p>ErrorLog /var/log/apache2/js.host_error.log<br />
LogLevel warn<br />
CustomLog /var/log/apache2/js.host_access.log combined<br />
&lt;/VirtualHost&gt;</p></blockquote>
<p>Erläuterungen hierzu:</p>
<p>Der erste Directory-Container definiert das Verhalten des Magento-Rootverzeichnisses. Auf selbiges zeigen nämlich auch die zusätzlichen Hosts. Hier sollte zwecks Vermeidung von Duplicate Content unterbunden werden, dass das Magento-Rootverzeichnis über weitere Hosts erreichbar ist:</p>
<blockquote><p>Order deny,allow<br />
deny from all</p></blockquote>
<p>Der zweite Directory-Container dagegen erlaubt den Zugriff für das jeweils benötigte Verzeichnis (in diesem Beispiel /js):</p>
<blockquote><p>Order allow,deny<br />
allow from all</p></blockquote>
<p>Mit dem nachfolgenden Include-Befehl wird eine .conf-Datei inkludiert, welche die Inhalte aufweist, die eigentlich in der .htaccess-Datei des jeweiligen Verzeichnisses untergebracht sind. Ich habe diese &#8220;deflate-expires.conf&#8221; benannt, da im Wesentlichen Kompressions- und Expires-Anweisungen darin enthalten sind (und ich dieselbe Datei auch in weitere Hostfiles inkludiere, eine möglichst allgemeine, beschreibende und host-unabhängige Bezeichnung ergo angebracht ist).</p>
<p>Ich selbst arbeite nach Möglichkeit nicht mit .htaccess-Dateien (Direktive &#8220;AllowOverride None&#8221;). Sofern .htaccess-Dateien Berücksichtigung finden sollen, kann das Inkludieren von Anweisungen entfallen (Direktive &#8220;AllowOverride All&#8221;).</p>
<p>Analog dazu wird für die weiteren gewünschten Hosts verfahren (media.host.tld, skin.host.tld,&#8230;). Bei Bedarf kann für SSL-Requests ebenso verfahren werden, allerdings wird dann für jeden Host ein separates SSL-Zertifikat benötigt (oder alternativ ein Wildcard-Zertifikat, das Subdomains einschließt).</p>
<h2>Fazit:</h2>
<p>Durch das Verteilen der Requests auf weitere Hosts erreicht man im Handumdrehen eine Verfielfachung der clientseitigen Begrenzung simultan möglicher Requests. Mit Einrichtung und Inbetriebnahme der Hosts js, media und skin können theoretisch statt zehn vierzig Requests parallel durchgeführt werden.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.jcg.de/host-splitting-fur-magento/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

<!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/

Minified using disk: basic
Page Caching using disk: enhanced
Database Caching using disk: basic
Object Caching 231/264 objects using disk: basic

Served from: www.jcg.de @ 2012-02-04 05:15:27 -->
