<?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>Talk Unafraid &#187; eve metrics</title>
	<atom:link href="http://www.talkunafraid.co.uk/tag/eve-metrics/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.talkunafraid.co.uk</link>
	<description>The (occasionally coherent) ramblings of a geek</description>
	<lastBuildDate>Sat, 07 Jan 2012 22:24:46 +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>EVE Metrics and popularity</title>
		<link>http://www.talkunafraid.co.uk/2010/10/eve-metrics-and-popularity/</link>
		<comments>http://www.talkunafraid.co.uk/2010/10/eve-metrics-and-popularity/#comments</comments>
		<pubDate>Mon, 25 Oct 2010 01:55:45 +0000</pubDate>
		<dc:creator>James Harrison</dc:creator>
				<category><![CDATA[EVE]]></category>
		<category><![CDATA[EVE Metrics]]></category>
		<category><![CDATA[MMMetrics]]></category>
		<category><![CDATA[architecture]]></category>
		<category><![CDATA[ccp]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[commentary]]></category>
		<category><![CDATA[eve metrics]]></category>
		<category><![CDATA[market]]></category>
		<category><![CDATA[servers]]></category>
		<category><![CDATA[stuffisawesome]]></category>

		<guid isPermaLink="false">http://www.talkunafraid.co.uk/?p=1111</guid>
		<description><![CDATA[Well, it&#8217;s been a while. I&#8217;ve been busy with things in this nasty place called reality which has been kicking my ass as a result with all sorts of fun ailments. Recently though I was forced to pay a bit more attention to EVE and specifically EVE Metrics. A couple of months back we worked [...]]]></description>
			<content:encoded><![CDATA[<p>Well, it&#8217;s been a while. I&#8217;ve been busy with things in this nasty place called reality which has been kicking my ass as a result with all sorts of fun ailments. Recently though I was forced to pay a bit more attention to EVE and specifically EVE Metrics.</p>
<p style="text-align: left;">A couple of months back we worked with E-ON to put an advert in the magazine as well as running a login screen advert, and this has now run. So for a few days anyone logging into EVE will have been greeted with this fine advert created by Zapatero at MMM Publishing.</p>
<p>Of course, this suddenly meant more people going to and using the site. Fortunately one of the primary concerns when myself and Makurid put EM2 and later EM3 together was scalability. Whereas EM1 would&#8217;ve fallen over and died, EM3 has soldiered on like a champ. The only intervention we&#8217;ve had to perform was to fix the API processor, which was hanging regularly and causing problems as a result. That&#8217;s fixed, and we&#8217;re now stable and responsive. So, of course, we now have some numbers! These are the statistics for the most recent 30 days as of this post.</p>
<ul>
<li>~85,000 visits</li>
<li>~500,000 page views</li>
<li>~5 pages per visit</li>
<li>~29,000 unique visitors</li>
<li>~1,500 additional account registrations as a result of login screen advert (Above ~20 account registrations per day baseline)</li>
</ul>
<p>In terms of the site&#8217;s dataset, we&#8217;re getting fairly huge.</p>
<ul>
<li>6,000 EVE API keys, of which 4,000 are full keys</li>
<li>75,000 EVE API methods enabled</li>
<li>32,000 EVE API calls per hour (about 10 every second)</li>
<li>75,000 characters (includes characters noted in market and other data)</li>
<li>15,000,000 wallet journal entries</li>
<li>6,300,000 wallet transactions</li>
<li>200,000 EVE Mails</li>
<li>1,600,000 active market orders</li>
<li>6,400,000 EVE API loaded trades</li>
<li>52,000,000 Inferred trades</li>
<li>11,000,000 processed uploads</li>
<li>146,000,000,000 total skillpoints of loaded characters</li>
<li>4,100,000,000,000 total ISK of loaded characters</li>
</ul>
<p>Which is&#8230; scary. But! We&#8217;ve grown hugely (a threefold increase in requests per second) and we&#8217;re still performing well. The site is not throwing errors, users are generally happy with their experience with the site, and we&#8217;re stable &#8211; no crashes, no fires breaking out, no climbing resource usage. Our caching and design philosophies have worked well and the extra effort invested earlier in development has really paid off. We&#8217;ve just handled a huge amount of growth with no effort at all. I&#8217;d estimate we&#8217;re good to around 12,000-15,000 users on our current hardware.</p>
<p>Of course, we&#8217;re now wondering what to do. I stopped playing EVE long ago aside from the odd spot of tinkering, but I&#8217;ve even let accounts lapse and stopped updating my skill queue as of a month or two ago. Makurid&#8217;s just started playing again recently. We&#8217;re not really heavily invested in EM in terms of motivation, other than making a cool webapp.</p>
<p>Capsuleer, as I&#8217;m sure many of you know, is an EVE iPhone app that recently shut down because it couldn&#8217;t be monetized and the time and money invested in it by the developers was simply unreasonable. A couple of weeks back I was looking at the realities of what EM costs to run, and what it costs in terms of time to maintain. And the logistics of, if needed, shutting the site down. This is still somewhat in my mind but the site will be sticking around for a little while yet. I&#8217;m very much hoping CCP will come to their senses in terms of how they choose to support third party developers (a free account subscription appears to be the greatest gift given by CCP, but that&#8217;s a far cry from the ~£130 per month it costs to run EVE Metrics &#8211; and that&#8217;s just our costs _now_, not including new hardware costs or upgrade costs. If we grow much more we&#8217;re going to be looking at ~£200/mo to run EM, possibly more). Advertising isn&#8217;t an option, and donations have failed every time we&#8217;ve tried to support ourselves with them. Timecode sale affiliations barely made a mark on my accounting sheets. We do enjoy writing sites and producing something big that people find useful, but there are certain realities to be faced &#8211; both myself and Makurid are students, with no full-time jobs. I&#8217;ve recently picked up some part time work which means I can now afford to buy bacon on a weekly basis again.</p>
<p>In the meantime we will continue to support the EVE community by maintaining EVE Metrics. We&#8217;re working on the codebase right now to upgrade it to the latest and greatest Rails release and Makurid&#8217;s beavering away at the API processor to split it up into a puller and a processor, enabling us to achieve much higher throughput on API calls to CCP&#8217;s (slow) servers. Now that we&#8217;ve breached 30,000 requests per hour, that 10 request per second figure is actually beyond our capacity right now because of our single-threaded processor/puller mechanism. This is actually a CCP limit- we just need to work around it by hitting them with more requests simultaneously, thus spreading our load over multiple servers on their end. I&#8217;ll also be making performance and usability improvements wherever I can and incorporating as many bug reports as possible into what we release. This will likely be a slowish process, but in the long run, it should be worth it. The question really is, will CCP make it worthwhile for us to be investing our time and energy into longer term planning?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.talkunafraid.co.uk/2010/10/eve-metrics-and-popularity/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>EVE Metrics 3</title>
		<link>http://www.talkunafraid.co.uk/2010/07/eve-metrics-3/</link>
		<comments>http://www.talkunafraid.co.uk/2010/07/eve-metrics-3/#comments</comments>
		<pubDate>Sat, 10 Jul 2010 02:56:42 +0000</pubDate>
		<dc:creator>James Harrison</dc:creator>
				<category><![CDATA[EVE Metrics]]></category>
		<category><![CDATA[MMMetrics]]></category>
		<category><![CDATA[Servers and Software]]></category>
		<category><![CDATA[eve metrics]]></category>
		<category><![CDATA[rails]]></category>
		<category><![CDATA[release]]></category>

		<guid isPermaLink="false">http://www.talkunafraid.co.uk/?p=972</guid>
		<description><![CDATA[Okay, as someone who feels an obligation to post at least once a month I&#8217;m ashamed. 8th of May? Time to sort that out. So here&#8217;s a post about EVE Metrics 3. We&#8217;re getting close to having everything polished and ready for release. The main issue at hand thus far has been the homepage; I [...]]]></description>
			<content:encoded><![CDATA[<p>Okay, as someone who feels an obligation to post at least once a month I&#8217;m ashamed. 8th of May? Time to sort that out.</p>
<p>So here&#8217;s a post about EVE Metrics 3.</p>
<p>We&#8217;re getting close to having everything polished and ready for release. The main issue at hand thus far has been the homepage; I say this like it&#8217;s a small thing but it&#8217;s required me to learn some new and interesting things about CSS, Makurid&#8217;s done some excellent work to produce some feed scrapers and elements for the lower portion of the page&#8230; there&#8217;s a lot to it.</p>
<p>I thought that it&#8217;d be good to list a few of the changes we&#8217;ve made for version 3.</p>
<ul>
<li>Complete redesign of the site thanks to Rettic</li>
<li>Market detail pages have been entirely renovated</li>
<li>Various pages which haven&#8217;t been improved in some time have now been tidied up</li>
<li>API key management has been improved</li>
<li>API key permissions management has been improved</li>
<li>Backend processors for API functions and upload processing have been improved and made more reliable</li>
<li>My Metrics has been entirely renovated, now with sparklines for wallets and a new layout</li>
<li>Orders and transactions have been moved from My Metrics into their own detail pages, with a summary on My Metrics</li>
<li>Journal information has been added and given it&#8217;s own detail page</li>
<li>Player Owned Structure integration has been added, though still in it&#8217;s infancy</li>
<li>Sensitive portions of the site now make use of SSL transport encryption (HTTPS) automatically</li>
<li>Wormhole pages have been updated</li>
<li>Improvements to the corporation pages through refactoring to share view code between character and corporation pages</li>
<li>Graph improvements</li>
<li>Complete test coverage of every line of code (Nah, just kidding, we&#8217;re still pretty thin on those test things for large chunks of UI code)</li>
<li>0.2% more cowbell</li>
<li>5% other features I&#8217;ve not listed above, plus 100% more polish overall</li>
</ul>
<p>Excited? We are! There&#8217;s a lot of work in the lines above and I think you&#8217;ll like the results. We&#8217;re not sticking to any firm release schedule because we&#8217;re terrible at sticking to them; we&#8217;re students, not full-time developers (incidentally, if anyone&#8217;s got any jobs available for temporary/contract work, SE UK preferred (or work-at-home), 6 weeks max, let me know!). That said, we hope to have a release before the end of July.</p>
<p>We&#8217;ve also been rewriting our uploader! That&#8217;s right- Linux, Mac and Windows support all in one neat package. The GUI&#8217;s not anything special but it works, and we&#8217;ll be polishing it and getting it release-ready before long. Huge thanks should be directed to TTimo, who has been the driving force behind this with some welcome Python experience, and Makurid for assisting him in developing the new client.</p>
<p>Once we&#8217;ve gotten that polished, packaged and rolled out, we&#8217;ll be running a 5 billion ISK contest to promote it- the three winners (each receiving a portion of the 5 billion pool) will be selected from the most active uploaders for the week or two after the competition is announced. We&#8217;ll finalize all the details and have it posted up when we&#8217;re ready to go ahead with that, of course. If you&#8217;d like to make that 5 billion figure larger, you can contribute ISK to the character MMMetrics Agent ingame! So far, thanks go out to Rilcon, Chribba and Entity for contributing to the current pool. The new uploader will be released after the new site &#8211; we&#8217;d like to change one thing at a time so we can iron out all the kinks. Once we&#8217;ve gotten it out and tested it thoroughly we&#8217;ll roll out the upgrade- your existing uploader will prompt you to update when you start it.</p>
<p>One last thing &#8211; I&#8217;ve personally submitted a proposal to the CSM regarding development efforts from CCP surrounding the API and EVE Gate. If you&#8217;ve not done so already, I strongly urge you to read my proposal and support it if you feel, like I do, that CCP have made some serious mistakes lately in this regard. The thread can be found <a href="http://www.eveonline.com/ingameboard.asp?a=topic&amp;threadID=1348624">here</a>. It has been picked up and supported by at least 3 CSM members so far, but the community support will help considerably to drive CCP to consider it seriously.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.talkunafraid.co.uk/2010/07/eve-metrics-3/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Learning (a tale of memory)</title>
		<link>http://www.talkunafraid.co.uk/2010/02/learning-a-tale-of-memory/</link>
		<comments>http://www.talkunafraid.co.uk/2010/02/learning-a-tale-of-memory/#comments</comments>
		<pubDate>Thu, 11 Feb 2010 00:19:40 +0000</pubDate>
		<dc:creator>James Harrison</dc:creator>
				<category><![CDATA[EVE Metrics]]></category>
		<category><![CDATA[eve metrics]]></category>
		<category><![CDATA[rails]]></category>
		<category><![CDATA[ruby]]></category>
		<category><![CDATA[servers]]></category>

		<guid isPermaLink="false">http://www.talkunafraid.co.uk/?p=653</guid>
		<description><![CDATA[We never really stop learning. Learning is perhaps the most important process to occur in our brains; ignore the past, and you are screwed. This post is a tale of how we&#8217;ve been running into issues with memory usage recently, how we&#8217;ve been solving and diagnosing it, and the design decisions that have lead to [...]]]></description>
			<content:encoded><![CDATA[<p>We never really stop learning. Learning is perhaps the most important process to occur in our brains; ignore the past, and you are <em>screwed</em>.</p>
<p>This post is a tale of how we&#8217;ve been running into issues with memory usage recently, how we&#8217;ve been solving and diagnosing it, and the design decisions that have lead to it.<span id="more-653"></span></p>
<p>In the past week or so we&#8217;ve been puzzling over some unusually high memory usage of our application servers (we use the Thin server for EVE Metrics and Passenger for everything else). Specifically, our thins were getting fat; chewing up memory, not responding to new requests and churning on locks.</p>
<p>On a hunch and some history, we pulled out RMagick, the Ruby interface to ImageMagick, which had been known to cause issues with memory usage by way of some leaks. We switched the code that we had to use ImageMagick for to use the mini_magick library, and where we could (notably the sparkline graphs on the statistics panel) we switched from server-side to client-side rendering. Those sparklines are now using the excellent jQuery Sparklines plugin. They look better, too!</p>
<p>That did solve our memory issues; we still had problems with sudden spikes in memory, and we pinned down the cause using the Oink diagnostics plugin. Someone (and if you&#8217;re reading this, let me know who you are, I&#8217;d like to talk, not to bite your head off, but to ask you why the CSVs didn&#8217;t leap out at you quite as they should have&#8230;) decided to make lots of history requests to the API, for all 59 regions at a time and for 25 items at a time. Admittedly only for one day, but there&#8217;s a kicker here.</p>
<p>Those 25 items across 59 regions is not a lot of <em>historical</em> data. But, those of you with EVE Metrics API experience should be shouting, &#8220;James, the history API <em>also includes the item API data!</em>&#8221; Which it does! This entails loading the market orders. Now, there is a problem here. Let&#8217;s say you request 25 items for 59 regions. That is a _lot_ of market orders, potentially. Remember we have 1.5 million orders over the whole market and the really active market is spread across a few thousand items. But there&#8217;s a few items with vast numbers of orders. That number of orders can rise quite easily into the tens or hundreds of thousands.</p>
<p>We have to load all those orders into memory to work with them, then allocate the raw data into Gnu Scientific Library vectors, then process that data (fast, thanks to C), and then render out the XML response. Because we have to have all these orders in RAM at once, Ruby&#8217;s VM allocates the process more and more memory, which is removed from the OS&#8217;s spare resources which are used for caching the filesystem in memory. This cache is the primary mechanism for PostgreSQL, our database engine, to keep data in RAM; subtract from this and you&#8217;re hurting DB performance and increasing disk IO. Everything slows down. Eventually, Ruby allocates enough that the OS itself is out of cache and has to start swapping to disk; we&#8217;ve not yet run into this since I&#8217;ve been monitoring this all closely with Munin, but it would eventually happen. Ruby (along with most other VM-based languages) has a pretty crap GC, and even once the request is over, this memory is not returned to the OS from the VM. This means that things can escalate pretty dramatically if left unchecked.</p>
<p>So, what can we do to fix this? Well, in time I want to remove the item API data from the history API. That&#8217;ll improve things greatly in our own application. I&#8217;ve also implemented a limit on the number of items and regions that can be checked at once to stop people generating huge memory spikes.</p>
<p>There&#8217;s a nasty side-effect here: While these thins are churning away, nomming up memory like there&#8217;s no tomorrow, they&#8217;re locked up and handling a long running request. If we get enough requests this means the website becomes unavailable, something I personally find intolerable. So I&#8217;ve increased the number of app servers we run and split the requests up as they come in between two pools, one of which has a few servers dedicated to handling web site requests, and likewise one of which has a few dedicated to handling API requests, with a few servers shared between the pools. This will help stability in the long run and ensure that at any moment, requests can be fulfilled in a timely manner. Varnish is also getting some tweaks to serve up old content when the backends are busy where a cached object exists.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.talkunafraid.co.uk/2010/02/learning-a-tale-of-memory/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

