<?xml version="1.0" encoding="iso-8859-1"?>
<!-- generator="wordpress/2.3.3" -->
<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/"
	>

<channel>
	<title>Fabulous Entertainment Blog</title>
	<link>http://www.fabent.co.uk/blog</link>
	<description>Just another WordPress weblog</description>
	<pubDate>Sun, 17 Aug 2008 19:44:17 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.3.3</generator>
	<language>en</language>
			<item>
		<title>Server move complete (more or less)</title>
		<link>http://www.fabent.co.uk/blog/2008/08/17/server-move-complete-more-or-less/</link>
		<comments>http://www.fabent.co.uk/blog/2008/08/17/server-move-complete-more-or-less/#comments</comments>
		<pubDate>Sun, 17 Aug 2008 19:44:17 +0000</pubDate>
		<dc:creator>fabulous</dc:creator>
		
		<category><![CDATA[Technical]]></category>

		<guid isPermaLink="false">http://www.fabent.co.uk/blog/2008/08/17/server-move-complete-more-or-less/</guid>
		<description><![CDATA[I&#8217;ve finished the migration more or less. The great news is that the new configuration has fixed the performance problems and it looks like there is now plenty of headroom for growth.
I now have one server with MySQL and the application server on it which serves the pages of the site. The other server does [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve finished the migration more or less. The great news is that the new configuration has fixed the performance problems and it looks like there is now plenty of headroom for growth.</p>
<p>I now have one server with MySQL and the application server on it which serves the pages of the site. The other server does the photos and outgoing mail. The photos are uploaded to the application server but are accessed via a caching proxy (Apache) on the other server.</p>
<p>At the moment the load on the MySQL/application server is no more than about 0.50 but the photo server is double that. Part of the problem is that I haven&#8217;t yet managed to get mod_expire working so the headers are missing.</p>
<p>However I am now pretty happy that this configuration will take me to at least 2 million pageviews a day. It&#8217;s also just a huge relief not to have the site on the edge of collapse!</p>
<p>PS. I have also signed up with <a href="http://www.rsync.net/">rsync.net</a> for backup. The Planet do have backup options but rsync.net is a bit cheaper and also I prefer to have the backup with a completely different provider.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.fabent.co.uk/blog/2008/08/17/server-move-complete-more-or-less/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Faster photos</title>
		<link>http://www.fabent.co.uk/blog/2008/08/04/faster-photos/</link>
		<comments>http://www.fabent.co.uk/blog/2008/08/04/faster-photos/#comments</comments>
		<pubDate>Mon, 04 Aug 2008 21:50:48 +0000</pubDate>
		<dc:creator>fabulous</dc:creator>
		
		<category><![CDATA[Technical]]></category>

		<guid isPermaLink="false">http://www.fabent.co.uk/blog/2008/08/04/faster-photos/</guid>
		<description><![CDATA[I&#8217;ve had some more thoughts about how to handle the photo/assets server. Rather than trying to rsync the images from the applications server I&#8217;m going to set up a caching proxy (probably using lighttpd but I may use Apache instead).
This will be massively simpler than periodically rsyncing images over and will require no change to [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve had some more thoughts about how to handle the photo/assets server. Rather than trying to rsync the images from the applications server I&#8217;m going to set up a caching proxy (probably using lighttpd but I may use Apache instead).</p>
<p>This will be massively simpler than periodically rsyncing images over and will require no change to the application. The only negative is that it won&#8217;t provide an online backup but I can address that separately.</p>
<p>While I&#8217;m migrating the applications server to the new hardware I&#8217;ll use rinetd to forward requests while I wait for the DNS to fully propagate.</p>
<p>UPDATE: Rather than lighttpd or Apache I think I shall use Squid as the proxy.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.fabent.co.uk/blog/2008/08/04/faster-photos/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Google Rankings</title>
		<link>http://www.fabent.co.uk/blog/2008/07/26/google-rankings/</link>
		<comments>http://www.fabent.co.uk/blog/2008/07/26/google-rankings/#comments</comments>
		<pubDate>Sat, 26 Jul 2008 22:44:56 +0000</pubDate>
		<dc:creator>fabulous</dc:creator>
		
		<category><![CDATA[Marketing]]></category>

		<guid isPermaLink="false">http://www.fabent.co.uk/blog/2008/07/26/google-rankings/</guid>
		<description><![CDATA[When I was a kid we didn&#8217;t have a McDonalds in my home town. I heard lots of stories about McDonalds, how there was every type of burger you could imagine, the slick American service, the French fries which were totally different to what we called &#8220;chips&#8221;.
Finally, after years McDonalds did open. And I really [...]]]></description>
			<content:encoded><![CDATA[<p>When I was a kid we didn&#8217;t have a McDonalds in my home town. I heard lots of stories about McDonalds, how there was every type of burger you could imagine, the slick American service, the French fries which were totally different to what we called &#8220;chips&#8221;.</p>
<p>Finally, after years McDonalds did open. And I really didn&#8217;t like it that much. It was, in short, a huge disappointment.</p>
<p>Since I started this blog I&#8217;ve been very focused on <a href="http://www.fabswingers.com">Fab Swingers</a>&#8217;s Google rankings and finally the site is showing up high for many of the key terms I&#8217;ve been targeting. I&#8217;m sure it&#8217;s no coincidence that the sudden move up has happened at the same time as Google Analytics has shown us passing the 1 million page views a day mark.</p>
<p>Yet, I feel slightly let down. The effect of the Google rankings has been tiny compared with the word of mouth and even the people who are joining via Google aren&#8217;t generally the people that bring most to the site.</p>
<p>I&#8217;m pleased that it&#8217;s finally happened but it turns out not to be a big deal.</p>
<p>I do like Sausage Egg McMuffins though.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.fabent.co.uk/blog/2008/07/26/google-rankings/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Rsync problems</title>
		<link>http://www.fabent.co.uk/blog/2008/07/20/rsync-problems/</link>
		<comments>http://www.fabent.co.uk/blog/2008/07/20/rsync-problems/#comments</comments>
		<pubDate>Sun, 20 Jul 2008 15:14:29 +0000</pubDate>
		<dc:creator>fabulous</dc:creator>
		
		<category><![CDATA[Technical]]></category>

		<guid isPermaLink="false">http://www.fabent.co.uk/blog/2008/07/20/rsync-problems/</guid>
		<description><![CDATA[I&#8217;ve had some problems with backup running very slowly &#8212; in fact by the time backup of the images has finished, it&#8217;s pretty much time to begin again.
However it turns out to be a cock-up on my part. I was using rsync which is only supposed to copy over files that have changed. But if [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve had some problems with backup running very slowly &mdash; in fact by the time backup of the images has finished, it&#8217;s pretty much time to begin again.</p>
<p>However it turns out to be a cock-up on my part. I was using <a href="http://samba.anu.edu.au/rsync/">rsync</a> which is only supposed to copy over files that have changed. But if you forget to use the -t or &#8211;times option then the modification dates are not copied over which means that every single file needs to be copied over the network to find out whether or not it has changed. Whoops!</p>
<p>As I now have two servers at <a href="http://www.theplanet.com/">The Planet</a> which are in different data centers (Dallas and Houston) my backup plan is just to rsync the files between then.</p>
<p>I am also considering using rsync to allow my applications to upload photos to the assets server, however I may use <a href="http://samba.org">Samba</a> instead. NFS is out though!</p>
<p>UPDATE: After a great deal of thought over the past few weeks I&#8217;ve reached a decision. I thought about dozens of alternatives but I needed something very secure, robust (even when there is a network outage) and asynchronous with the file uploads so that the user isn&#8217;t kept hanging around when they are uploading their images.</p>
<p>The solution is that photos will upload on the applications server and also be served from there. This will result in fast, reliable upload. A cronjob will then rsync the photos over to the assets server every few minutes and will update the photos table to show that the photo has now moved over so future pages will get it from the assets server. I think this should work pretty well!</p>
<p>It is also quite future proof, if I switched to using a Content Delivery Networks (and I note that <a href="http://www.peer1.com">Peer1</a> allow adult sites on their CDN) then this approach would work great for uploading the images to it.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.fabent.co.uk/blog/2008/07/20/rsync-problems/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Nigerian spammers targeting UK swingers sites?</title>
		<link>http://www.fabent.co.uk/blog/2008/07/14/nigerian-spammers-targeting-uk-swingers-sites/</link>
		<comments>http://www.fabent.co.uk/blog/2008/07/14/nigerian-spammers-targeting-uk-swingers-sites/#comments</comments>
		<pubDate>Mon, 14 Jul 2008 22:31:02 +0000</pubDate>
		<dc:creator>fabulous</dc:creator>
		
		<category><![CDATA[Competitors]]></category>

		<guid isPermaLink="false">http://www.fabent.co.uk/blog/2008/07/14/nigerian-spammers-targeting-uk-swingers-sites/</guid>
		<description><![CDATA[I was just taking a look at the Alexa page for The Adulthub and I noticed that they had recently had a big traffic spike - from Nigeria!
Right now, Alexa is reporting 21.8% of the Adulthub&#8217;s users from that country. We have also had an increase in attempted spam from Nigeria on our site however [...]]]></description>
			<content:encoded><![CDATA[<p>I was just taking a look at the Alexa page for The Adulthub and I noticed that they had recently had a big traffic spike - from Nigeria!</p>
<p>Right now, Alexa is reporting 21.8% of the Adulthub&#8217;s users from that country. We have also had an increase in attempted spam from Nigeria on our site however our blanket ban on Africa has been quite effective at keeping them under control. I guess that they are just going through a phase of targeting swingers sites.</p>
<p>But to have over 20% of site traffic from spammers is pretty bad and must be annoying a lot of their users.</p>
<p><img src="http://www.fabent.co.uk/blog/wp-content/uploads/2008/07/hubspam.png" alt="Adult Hub Nigerian Spam" /></p>
]]></content:encoded>
			<wfw:commentRss>http://www.fabent.co.uk/blog/2008/07/14/nigerian-spammers-targeting-uk-swingers-sites/feed/</wfw:commentRss>
		</item>
		<item>
		<title>1,000,000 page views a day</title>
		<link>http://www.fabent.co.uk/blog/2008/07/07/1000000-page-views-a-day/</link>
		<comments>http://www.fabent.co.uk/blog/2008/07/07/1000000-page-views-a-day/#comments</comments>
		<pubDate>Mon, 07 Jul 2008 19:47:28 +0000</pubDate>
		<dc:creator>fabulous</dc:creator>
		
		<category><![CDATA[Technical]]></category>

		<guid isPermaLink="false">http://www.fabent.co.uk/blog/2008/07/07/1000000-page-views-a-day/</guid>
		<description><![CDATA[Yesterday we passed the 1,000,000 page views a day for the first time and hits on the assets server (which is presently on the same box) were peaking at 100 hits per second. So, not bad for a single fairly low powered server.
From what I&#8217;ve read, The Planet have now upgraded the bandwidth on their [...]]]></description>
			<content:encoded><![CDATA[<p>Yesterday we passed the 1,000,000 page views a day for the first time and hits on the assets server (which is presently on the same box) were peaking at 100 hits per second. So, not bad for a single fairly low powered server.</p>
<p>From what I&#8217;ve read, The Planet have now upgraded the bandwidth on their virtual rack product to 1 Gb. This makes it much more useful and I now plan to get two new servers in a virtual rack, one running the applications server and one running the database. I&#8217;ll leave the present server doing mail (because it is such a pain to change the IP address of a mail server) and also serving the assets.</p>
<p>For the new servers I&#8217;m not going to bother so much about CPU but I will be looking at memory and the speed of the hard drive as the main issue has been IO.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.fabent.co.uk/blog/2008/07/07/1000000-page-views-a-day/feed/</wfw:commentRss>
		</item>
		<item>
		<title>&#8220;Quantity has a quality of its own&#8221;</title>
		<link>http://www.fabent.co.uk/blog/2008/06/29/quantity-has-a-quality-of-its-own/</link>
		<comments>http://www.fabent.co.uk/blog/2008/06/29/quantity-has-a-quality-of-its-own/#comments</comments>
		<pubDate>Sun, 29 Jun 2008 00:35:09 +0000</pubDate>
		<dc:creator>fabulous</dc:creator>
		
		<category><![CDATA[Life]]></category>

		<category><![CDATA[Marketing]]></category>

		<guid isPermaLink="false">http://www.fabent.co.uk/blog/2008/06/29/quantity-has-a-quality-of-its-own/</guid>
		<description><![CDATA[I saw this quote on some swingers site. I like it a lot. It reminds me somewhat of Milan Kundera in The Unbearable Lightness of Being where he talks about there being two types of womaniser; first there is the man who is looking for the perfect woman but of course never finds her and [...]]]></description>
			<content:encoded><![CDATA[<p>I saw this quote on some swingers site. I like it a lot. It reminds me somewhat of <a href="http://en.wikipedia.org/wiki/Milan_Kundera">Milan Kundera</a> in <i>The Unbearable Lightness of Being</i> where he talks about there being two types of womaniser; first there is the man who is looking for the perfect woman but of course never finds her and secondly the man who just enjoys the infinite variety.</p>
<p>It is also something that is very true about marketing. Providing you have a basic proposition that people like then the key to successful promotion is just quantity; the more you do the more it works.</p>
<p>Fab Swingers has succeeded because of quantity. It&#8217;s not just quantity in marketing of course, but there is also a strong <a href="http://en.wikipedia.org/wiki/Network_effect">network effect</a> because the more members the site has, the more valuable it is to the members. And the more likely they are to recommend it.</p>
<p>The only thing I&#8217;m feeling a bit negative about right now is that I&#8217;m mainly having to focus on just keeping the site going as the servers struggle to cope with the rocketing traffic. I&#8217;d be much happier if I could concentrate on marketing which is my skill.</p>
<p>However I&#8217;m sure that most social networking sites would be happy to have the problem of struggling to cope with traffic growth!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.fabent.co.uk/blog/2008/06/29/quantity-has-a-quality-of-its-own/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Turning Lighttpd access log off for performance</title>
		<link>http://www.fabent.co.uk/blog/2008/06/28/turning-lighttpd-access-log-off-for-performance/</link>
		<comments>http://www.fabent.co.uk/blog/2008/06/28/turning-lighttpd-access-log-off-for-performance/#comments</comments>
		<pubDate>Sat, 28 Jun 2008 21:45:37 +0000</pubDate>
		<dc:creator>fabulous</dc:creator>
		
		<category><![CDATA[Technical]]></category>

		<guid isPermaLink="false">http://www.fabent.co.uk/blog/2008/06/28/turning-lighttpd-access-log-off-for-performance/</guid>
		<description><![CDATA[I took a look at the Lighttpd access log, which is actually more than 1 GB a day. This is completely useless, it&#8217;s taking lots of disk space and it&#8217;s far too big for me to ever run an analysis program on. Not only that but it&#8217;s only going to get worse!
As I&#8217;ve studied the [...]]]></description>
			<content:encoded><![CDATA[<p>I took a look at the Lighttpd access log, which is actually more than 1 GB a day. This is completely useless, it&#8217;s taking lots of disk space and it&#8217;s far too big for me to ever run an analysis program on. Not only that but it&#8217;s only going to get worse!</p>
<p>As I&#8217;ve studied the performance of the server generally it&#8217;s pretty clear that it is very IO bound (although things can go a bit slow sometimes, the processors are always mostly idle). So writing a 1 GB log each day isn&#8217;t going to help.</p>
<p>I do want some stats so I enabled the statistics module which tells me that lighttpd is averaging about 60 hits per second (although right now it&#8217;s 75 hits per second).</p>
<p>Since I made the change I think that performance has improved a bit but it&#8217;s not been massively significant.</p>
<p>I am also considering moving Lighttpd off to another server completely, although it uses almost no CPU I think that it is using up IO bandwidth. I really need another server anyway but I&#8217;ll wait until the July promotions start at The Planet.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.fabent.co.uk/blog/2008/06/28/turning-lighttpd-access-log-off-for-performance/feed/</wfw:commentRss>
		</item>
		<item>
		<title>MyISAM merge tables to improve performance</title>
		<link>http://www.fabent.co.uk/blog/2008/06/22/myisam-merge-tables-to-improve-performance/</link>
		<comments>http://www.fabent.co.uk/blog/2008/06/22/myisam-merge-tables-to-improve-performance/#comments</comments>
		<pubDate>Sun, 22 Jun 2008 23:23:16 +0000</pubDate>
		<dc:creator>fabulous</dc:creator>
		
		<category><![CDATA[Technical]]></category>

		<guid isPermaLink="false">http://www.fabent.co.uk/blog/2008/06/22/myisam-merge-tables-to-improve-performance/</guid>
		<description><![CDATA[I use a login MyISAM table to record all logins to the site (IP address, user agent, username, etc) which is pretty handy for spotting scammers and people with multiple accounts.
Anyway, the problem is that this table gets very large, very quickly. My solution had simply been to run a delete every month to remove [...]]]></description>
			<content:encoded><![CDATA[<p>I use a login MyISAM table to record all logins to the site (IP address, user agent, username, etc) which is pretty handy for spotting scammers and people with multiple accounts.</p>
<p>Anyway, the problem is that this table gets very large, very quickly. My solution had simply been to run a delete every month to remove older entries. But this led to two problems:</p>
<ol>
<li>The table was locked for ages while the delete happened.</li>
<li>The table was then left fragmented (which prevents concurrent inserts on my configuration)</li>
</ol>
<p>My first thought was to use DELETE &#8230; LIMIT 100; in a loop so that the table wouldn&#8217;t be locked for too long. However that was still not an ideal solution as it was still using a lot of resource and fragmenting the table.</p>
<p>What I finally settled on was using a new login table for each month and then using a MyISAM merge table to join them all together. Then, I can simply drop the old tables as they go out of date and reconfigure the merge table.</p>
<p>I can now delete millions of rows instantly with no performance impact or fragmentation. Result!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.fabent.co.uk/blog/2008/06/22/myisam-merge-tables-to-improve-performance/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Various bits of MySQL performance improvement</title>
		<link>http://www.fabent.co.uk/blog/2008/06/17/various-bits-of-mysql-performance-improvement/</link>
		<comments>http://www.fabent.co.uk/blog/2008/06/17/various-bits-of-mysql-performance-improvement/#comments</comments>
		<pubDate>Tue, 17 Jun 2008 22:57:54 +0000</pubDate>
		<dc:creator>fabulous</dc:creator>
		
		<category><![CDATA[Technical]]></category>

		<guid isPermaLink="false">http://www.fabent.co.uk/blog/2008/06/17/various-bits-of-mysql-performance-improvement/</guid>
		<description><![CDATA[It&#8217;s slightly embarrassing but I&#8217;ve actually slightly fallen for the old problem of going into optimizations without properly measuring. To be fair, part of the problem is that MySQL does not have the greatest reporting tools so it is not that as easy to spot the problems as it is with other databases.
Anyway, I identified [...]]]></description>
			<content:encoded><![CDATA[<p>It&#8217;s slightly embarrassing but I&#8217;ve actually slightly fallen for the old problem of going into optimizations without properly measuring. To be fair, part of the problem is that MySQL does not have the greatest reporting tools so it is not that as easy to spot the problems as it is with other databases.</p>
<p>Anyway, I identified that one of the problems was that some users just had too many messages so I&#8217;ve implemented some pruning so that users can have only 600 messages in their inbox/sent mail - this is all that the UI allowed them to see anyway so there will be no noticeable effect to them.</p>
<p>My improved logging also identified a missing index from my bounce table (which contains all bounced email) so I was able to speed up queries there very substantially.</p>
<p>I&#8217;ve also done a review of the MySQL status and it turned out I needed to increase the table cache a bit, but after boosting that from the default of 64 to 128 and then 192 I am now seeing that &#8216;opened_tables&#8217; is sitting at a constant value.</p>
<p>The major problem that I am left with is the messaging system. It is full of joins, it gets a lot of write traffic, it&#8217;s a very large table and is the main contributor to the slow query log. Unfortunately I don&#8217;t really have a very clear idea of how to sort this out yet!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.fabent.co.uk/blog/2008/06/17/various-bits-of-mysql-performance-improvement/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>
