<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	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/"
		>
<channel>
	<title>Comments on: High Performance Media Merging with Django, Nginx and Memcached</title>
	<atom:link href="http://weichhold.com/2009/02/16/high-performance-media-merging-with-django-nginx-and-memcached/feed/" rel="self" type="application/rss+xml" />
	<link>http://weichhold.com/2009/02/16/high-performance-media-merging-with-django-nginx-and-memcached/</link>
	<description></description>
	<lastBuildDate>Fri, 10 Sep 2010 02:41:16 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
	<item>
		<title>By: Google-TCW</title>
		<link>http://weichhold.com/2009/02/16/high-performance-media-merging-with-django-nginx-and-memcached/comment-page-1/#comment-56</link>
		<dc:creator>Google-TCW</dc:creator>
		<pubDate>Tue, 08 Sep 2009 10:45:29 +0000</pubDate>
		<guid isPermaLink="false">http://weichhold.com/?p=18#comment-56</guid>
		<description>Hi from google Google-TCW</description>
		<content:encoded><![CDATA[<p>Hi from google Google-TCW</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Thoughts on static vs memcached serving by nginx &#171; god morgon!</title>
		<link>http://weichhold.com/2009/02/16/high-performance-media-merging-with-django-nginx-and-memcached/comment-page-1/#comment-29</link>
		<dc:creator>Thoughts on static vs memcached serving by nginx &#171; god morgon!</dc:creator>
		<pubDate>Thu, 12 Mar 2009 10:13:54 +0000</pubDate>
		<guid isPermaLink="false">http://weichhold.com/?p=18#comment-29</guid>
		<description>[...] proxy/mail proxy from Russia with love that needs no introduction today) directly. Recently more and more has done the samething but instead of generating static files, they put the generated content [...]</description>
		<content:encoded><![CDATA[<p>[...] proxy/mail proxy from Russia with love that needs no introduction today) directly. Recently more and more has done the samething but instead of generating static files, they put the generated content [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Aaron</title>
		<link>http://weichhold.com/2009/02/16/high-performance-media-merging-with-django-nginx-and-memcached/comment-page-1/#comment-19</link>
		<dc:creator>Aaron</dc:creator>
		<pubDate>Tue, 24 Feb 2009 14:22:05 +0000</pubDate>
		<guid isPermaLink="false">http://weichhold.com/?p=18#comment-19</guid>
		<description>Looks like a great bit of code. I&#039;m wondering why you opted to manually pass in a cache-busting ID rather than use the modification timestamp though. Is there a particular advantage to this? You seem to be &quot;stat&quot;ing the files every time you call the render_file function anyway.</description>
		<content:encoded><![CDATA[<p>Looks like a great bit of code. I&#8217;m wondering why you opted to manually pass in a cache-busting ID rather than use the modification timestamp though. Is there a particular advantage to this? You seem to be &#8220;stat&#8221;ing the files every time you call the render_file function anyway.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: oliver</title>
		<link>http://weichhold.com/2009/02/16/high-performance-media-merging-with-django-nginx-and-memcached/comment-page-1/#comment-18</link>
		<dc:creator>oliver</dc:creator>
		<pubDate>Mon, 23 Feb 2009 09:10:49 +0000</pubDate>
		<guid isPermaLink="false">http://weichhold.com/?p=18#comment-18</guid>
		<description>Andreas interesting analysis indeed. If it were not for the fact that it&#039;s my personal perception to put generated, “semi-static” stuff into memory rather than on disk - I&#039;d say screw memcached for this purpose :)</description>
		<content:encoded><![CDATA[<p>Andreas interesting analysis indeed. If it were not for the fact that it&#8217;s my personal perception to put generated, “semi-static” stuff into memory rather than on disk &#8211; I&#8217;d say screw memcached for this purpose :)</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Andreas</title>
		<link>http://weichhold.com/2009/02/16/high-performance-media-merging-with-django-nginx-and-memcached/comment-page-1/#comment-17</link>
		<dc:creator>Andreas</dc:creator>
		<pubDate>Mon, 23 Feb 2009 04:11:08 +0000</pubDate>
		<guid isPermaLink="false">http://weichhold.com/?p=18#comment-17</guid>
		<description>Did some benchs out of curiousity
Static file is almost 4x faster, though i think its a cleaner concept to put generated, &quot;semi-static&quot; stuff in mem than on disk.

# test 1, static file served by nginx

Total: connections 1 requests 10000 replies 10000 test-duration 1.646 s

Connection time [ms]: min 1601.6 avg 1601.6 max 1601.6 median 1601.5 stddev 0.0
Connection time [ms]: connect 0.5
Connection length [replies/conn]: 10000.000

Request rate: 6243.8 req/s (0.2 ms/req)
Request size [B]: 71.0

Reply rate [replies/s]: min 0.0 avg 0.0 max 0.0 stddev 0.0 (0 samples)
Reply time [ms]: response 0.2 transfer 0.0
Reply size [B]: header 217.0 content 2181.0 footer 0.0 (total 2398.0)
Reply status: 1xx=0 2xx=10000 3xx=0 4xx=0 5xx=0

CPU time [s]: user 0.10 system 0.93 (user 6.2% system 58.1% total 64.3%)
Net I/O: 15054.6 KB/s (123.3*10^6 bps)

Errors: total 0 client-timo 0 socket-timo 0 connrefused 0 connreset 0
Errors: fd-unavail 0 addrunavail 0 ftab-full 0 other 0


# test 2, same file in memcached served directly from nginx

Total: connections 1 requests 10000 replies 10000 test-duration 4.375 s

Connection rate: 0.2 conn/s (4375.4 ms/conn, &lt;=1 concurrent connections)
Connection time [ms]: min 4375.4 avg 4375.4 max 4375.4 median 4375.5 stddev 0.0
Connection time [ms]: connect 0.5
Connection length [replies/conn]: 10000.000

Request rate: 2285.5 req/s (0.4 ms/req)
Request size [B]: 77.0

Reply rate [replies/s]: min 0.0 avg 0.0 max 0.0 stddev 0.0 (0 samples)
Reply time [ms]: response 0.4 transfer 0.0
Reply size [B]: header 164.0 content 2180.0 footer 0.0 (total 2344.0)
Reply status: 1xx=0 2xx=10000 3xx=0 4xx=0 5xx=0

CPU time [s]: user 0.48 system 2.39 (user 11.0% system 54.6% total 65.6%)
Net I/O: 5403.6 KB/s (44.3*10^6 bps)

Errors: total 0 client-timo 0 socket-timo 0 connrefused 0 connreset 0
Errors: fd-unavail 0 addrunavail 0 ftab-full 0 other 0</description>
		<content:encoded><![CDATA[<p>Did some benchs out of curiousity<br />
Static file is almost 4x faster, though i think its a cleaner concept to put generated, &#8220;semi-static&#8221; stuff in mem than on disk.</p>
<p># test 1, static file served by nginx</p>
<p>Total: connections 1 requests 10000 replies 10000 test-duration 1.646 s</p>
<p>Connection time [ms]: min 1601.6 avg 1601.6 max 1601.6 median 1601.5 stddev 0.0<br />
Connection time [ms]: connect 0.5<br />
Connection length [replies/conn]: 10000.000</p>
<p>Request rate: 6243.8 req/s (0.2 ms/req)<br />
Request size [B]: 71.0</p>
<p>Reply rate [replies/s]: min 0.0 avg 0.0 max 0.0 stddev 0.0 (0 samples)<br />
Reply time [ms]: response 0.2 transfer 0.0<br />
Reply size [B]: header 217.0 content 2181.0 footer 0.0 (total 2398.0)<br />
Reply status: 1xx=0 2xx=10000 3xx=0 4xx=0 5xx=0</p>
<p>CPU time [s]: user 0.10 system 0.93 (user 6.2% system 58.1% total 64.3%)<br />
Net I/O: 15054.6 KB/s (123.3*10^6 bps)</p>
<p>Errors: total 0 client-timo 0 socket-timo 0 connrefused 0 connreset 0<br />
Errors: fd-unavail 0 addrunavail 0 ftab-full 0 other 0</p>
<p># test 2, same file in memcached served directly from nginx</p>
<p>Total: connections 1 requests 10000 replies 10000 test-duration 4.375 s</p>
<p>Connection rate: 0.2 conn/s (4375.4 ms/conn, &lt;=1 concurrent connections)<br />
Connection time [ms]: min 4375.4 avg 4375.4 max 4375.4 median 4375.5 stddev 0.0<br />
Connection time [ms]: connect 0.5<br />
Connection length [replies/conn]: 10000.000</p>
<p>Request rate: 2285.5 req/s (0.4 ms/req)<br />
Request size [B]: 77.0</p>
<p>Reply rate [replies/s]: min 0.0 avg 0.0 max 0.0 stddev 0.0 (0 samples)<br />
Reply time [ms]: response 0.4 transfer 0.0<br />
Reply size [B]: header 164.0 content 2180.0 footer 0.0 (total 2344.0)<br />
Reply status: 1xx=0 2xx=10000 3xx=0 4xx=0 5xx=0</p>
<p>CPU time [s]: user 0.48 system 2.39 (user 11.0% system 54.6% total 65.6%)<br />
Net I/O: 5403.6 KB/s (44.3*10^6 bps)</p>
<p>Errors: total 0 client-timo 0 socket-timo 0 connrefused 0 connreset 0<br />
Errors: fd-unavail 0 addrunavail 0 ftab-full 0 other 0</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: oliver</title>
		<link>http://weichhold.com/2009/02/16/high-performance-media-merging-with-django-nginx-and-memcached/comment-page-1/#comment-14</link>
		<dc:creator>oliver</dc:creator>
		<pubDate>Tue, 17 Feb 2009 13:43:41 +0000</pubDate>
		<guid isPermaLink="false">http://weichhold.com/?p=18#comment-14</guid>
		<description>Andreas, agreed - compared to Nginx excellent file based static file handling the performance difference is pretty neglectable - especially on a single server setup. It is my understanding that Ngnix will not connect to memcached for every request but I will email the author of Nginx to be sure.</description>
		<content:encoded><![CDATA[<p>Andreas, agreed &#8211; compared to Nginx excellent file based static file handling the performance difference is pretty neglectable &#8211; especially on a single server setup. It is my understanding that Ngnix will not connect to memcached for every request but I will email the author of Nginx to be sure.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Andreas</title>
		<link>http://weichhold.com/2009/02/16/high-performance-media-merging-with-django-nginx-and-memcached/comment-page-1/#comment-13</link>
		<dc:creator>Andreas</dc:creator>
		<pubDate>Tue, 17 Feb 2009 09:34:47 +0000</pubDate>
		<guid isPermaLink="false">http://weichhold.com/?p=18#comment-13</guid>
		<description>How much faster is nginx on serving content from memcached than static files?
I believe OS like linux and *bsd caches frequently requested files in ram. Though you could garantuee that from memcached its always in memory but how about tcp latency? Does nginx connec to the memcached on every request?

Though i see one big advantage when it comes to scaling, making a cloud of memcacheds. I guess it really dependes on how big the site is because if its really big you really would like to use something like amazon cloudfront.</description>
		<content:encoded><![CDATA[<p>How much faster is nginx on serving content from memcached than static files?<br />
I believe OS like linux and *bsd caches frequently requested files in ram. Though you could garantuee that from memcached its always in memory but how about tcp latency? Does nginx connec to the memcached on every request?</p>
<p>Though i see one big advantage when it comes to scaling, making a cloud of memcacheds. I guess it really dependes on how big the site is because if its really big you really would like to use something like amazon cloudfront.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: oliver</title>
		<link>http://weichhold.com/2009/02/16/high-performance-media-merging-with-django-nginx-and-memcached/comment-page-1/#comment-12</link>
		<dc:creator>oliver</dc:creator>
		<pubDate>Mon, 16 Feb 2009 23:17:32 +0000</pubDate>
		<guid isPermaLink="false">http://weichhold.com/?p=18#comment-12</guid>
		<description>Robert, they way I envisioned it for my site is that on a production server - and that&#039;s where you would benefit from this - script files usually change only after a new build is pushed to the server. Thus the only expiration strategy is to restart memcached. Therefore there is no sophisticated change tracking.</description>
		<content:encoded><![CDATA[<p>Robert, they way I envisioned it for my site is that on a production server &#8211; and that&#8217;s where you would benefit from this &#8211; script files usually change only after a new build is pushed to the server. Thus the only expiration strategy is to restart memcached. Therefore there is no sophisticated change tracking.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: robert</title>
		<link>http://weichhold.com/2009/02/16/high-performance-media-merging-with-django-nginx-and-memcached/comment-page-1/#comment-11</link>
		<dc:creator>robert</dc:creator>
		<pubDate>Mon, 16 Feb 2009 23:08:58 +0000</pubDate>
		<guid isPermaLink="false">http://weichhold.com/?p=18#comment-11</guid>
		<description>Hello,

first of all, congratulations, seems a really good piece of software and really optimal in terms of network usage !

have you though about the option to reuse this system with the css files ? I suppose is mainly the same except the name and the correspoding html tags. And also would be really amazing to use a system like the described in http://www.djangosnippets.org/snippets/1324/ to avoid repeating the same css or javascript if we add it twice, which could be very typical in case we use templatetags.

Also, related to Bill&#039;s comment, could be better to have a process which just removes the current key from the memcached ? because some times memcached could be used for other things not nginx related, in my case this is used to mantain a global user related structure which takes a lot of time and cpu to be calculated.

Anyway, I want to say again that this is something I was looking for !</description>
		<content:encoded><![CDATA[<p>Hello,</p>
<p>first of all, congratulations, seems a really good piece of software and really optimal in terms of network usage !</p>
<p>have you though about the option to reuse this system with the css files ? I suppose is mainly the same except the name and the correspoding html tags. And also would be really amazing to use a system like the described in <a href="http://www.djangosnippets.org/snippets/1324/" rel="nofollow">http://www.djangosnippets.org/snippets/1324/</a> to avoid repeating the same css or javascript if we add it twice, which could be very typical in case we use templatetags.</p>
<p>Also, related to Bill&#8217;s comment, could be better to have a process which just removes the current key from the memcached ? because some times memcached could be used for other things not nginx related, in my case this is used to mantain a global user related structure which takes a lot of time and cpu to be calculated.</p>
<p>Anyway, I want to say again that this is something I was looking for !</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: codekoala</title>
		<link>http://weichhold.com/2009/02/16/high-performance-media-merging-with-django-nginx-and-memcached/comment-page-1/#comment-10</link>
		<dc:creator>codekoala</dc:creator>
		<pubDate>Mon, 16 Feb 2009 21:26:26 +0000</pubDate>
		<guid isPermaLink="false">http://weichhold.com/?p=18#comment-10</guid>
		<description>Great article!  I think I will be visiting this again as soon as I have a server with enough memory to let me run all of the goodies alongside my sites :)</description>
		<content:encoded><![CDATA[<p>Great article!  I think I will be visiting this again as soon as I have a server with enough memory to let me run all of the goodies alongside my sites :)</p>
]]></content:encoded>
	</item>
</channel>
</rss>
