<?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>Performance Within Reach</title>
	<atom:link href="http://unmanageability.com/index.php/feed/" rel="self" type="application/rss+xml" />
	<link>http://unmanageability.com</link>
	<description>Performance Within Reach</description>
	<lastBuildDate>Sun, 02 Aug 2009 16:30:56 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>transactional malloc()/free() in Intel&#8217;s STM Prototype v3.0?</title>
		<link>http://unmanageability.com/index.php/2009/08/02/transactional-mallocfree-in-intels-stm-prototype-v3-0/</link>
		<comments>http://unmanageability.com/index.php/2009/08/02/transactional-mallocfree-in-intels-stm-prototype-v3-0/#comments</comments>
		<pubDate>Sun, 02 Aug 2009 16:30:56 +0000</pubDate>
		<dc:creator>Coder</dc:creator>
				<category><![CDATA[Performance]]></category>

		<guid isPermaLink="false">http://unmanageability.com/index.php/2009/08/02/transactional-mallocfree-in-intels-stm-prototype-v3-0/</guid>
		<description><![CDATA[Why can&#8217;t I see a transactional malloc()/free()? &#8211; Intel® Software Network
Intel STM Prototype v3.0 does provide transactional malloc() and free().   Any time malloc and free are used in __tm_atomic region or a function marked with tm_callable attribute they are replaced with a transactional safe malloc and free.  For functions which are marked with tm_safe attribute, the compiler assumes user guarantees the safety of that function and does not replace the malloc and free.  The user has ...]]></description>
			<content:encoded><![CDATA[<p><a href="http://software.intel.com/en-us/forums/whatif-alpha-software/topic/67362/">Why can&#8217;t I see a transactional malloc()/free()? &#8211; Intel® Software Network</a><br />
<blockquote>Intel STM Prototype v3.0 does provide transactional malloc() and free().   Any time malloc and free are used in __tm_atomic region or a function marked with tm_callable attribute they are replaced with a transactional safe malloc and free.  For functions which are marked with tm_safe attribute, the compiler assumes user guarantees the safety of that function and does not replace the malloc and free.  The user has to use his own transactional safe malloc and free in this case.</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://unmanageability.com/index.php/2009/08/02/transactional-mallocfree-in-intels-stm-prototype-v3-0/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Oracle says &#8220;BEA JRockit JVM will not be available stand-alone&#8230; but will continue to be (ed. was it ever?) bundled with Oracle products.&#8221;</title>
		<link>http://unmanageability.com/index.php/2008/07/04/oracle-says-bea-jrockit-jvm-will-not-be-available-stand-alone-but-will-continue-to-be-ed-was-it-ever-bundled-with-oracle-products/</link>
		<comments>http://unmanageability.com/index.php/2008/07/04/oracle-says-bea-jrockit-jvm-will-not-be-available-stand-alone-but-will-continue-to-be-ed-was-it-ever-bundled-with-oracle-products/#comments</comments>
		<pubDate>Fri, 04 Jul 2008 09:25:26 +0000</pubDate>
		<dc:creator>Coder</dc:creator>
				<category><![CDATA[Performance]]></category>

		<guid isPermaLink="false">http://unmanageability.com/index.php/2008/07/04/oracle-says-bea-jrockit-jvm-will-not-be-available-stand-alone-but-will-continue-to-be-ed-was-it-ever-bundled-with-oracle-products/</guid>
		<description><![CDATA[FAQ
Will Oracle continue to invest in JRockit technology?	Absolutely! JRockit is a strategic product for Oracle and its customers. Oracle will continue to invest in it significantly. Oracle will continue to pay attention to legacy-BEA and Oracle customers needs and customers should expect a strong roadmap for the JRockit JVM and all JRockit products.
Going forward, is JRockit going to be free or a for-charge product?Consistent with Oracle policies, JRockit Mission Control and JRockit Real Time, which include the JRockit JVM and ...]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.oracle.com/technology/software/products/jrockit/FAQ.html">FAQ</a><br />
<blockquote><b>Will Oracle continue to invest in JRockit technology?</b><br />	Absolutely! JRockit is a strategic product for Oracle and its customers. Oracle will continue to invest in it significantly. Oracle will continue to pay attention to legacy-BEA and Oracle customers needs and customers should expect a strong roadmap for the JRockit JVM and all JRockit products.</p>
<p><b>Going forward, is JRockit going to be free or a for-charge product?</b><br />Consistent with Oracle policies, JRockit Mission Control and JRockit Real Time, which include the JRockit JVM and access to significant value-adds such as operations diagnostics and real-time features, are available for development and evaluation for free.  It is also bundled with many other commercial products from Oracle.</p>
<p></p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://unmanageability.com/index.php/2008/07/04/oracle-says-bea-jrockit-jvm-will-not-be-available-stand-alone-but-will-continue-to-be-ed-was-it-ever-bundled-with-oracle-products/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>&#8230; what is so hard about scaling the Twitter service?</title>
		<link>http://unmanageability.com/index.php/2008/05/25/what-is-so-hard-about-scaling-the-twitter-service/</link>
		<comments>http://unmanageability.com/index.php/2008/05/25/what-is-so-hard-about-scaling-the-twitter-service/#comments</comments>
		<pubDate>Sat, 24 May 2008 21:16:46 +0000</pubDate>
		<dc:creator>Coder</dc:creator>
				<category><![CDATA[Performance]]></category>

		<guid isPermaLink="false">http://unmanageability.com/index.php/2008/05/25/what-is-so-hard-about-scaling-the-twitter-service/</guid>
		<description><![CDATA[Hueniverse: Scaling a Microblogging Service &#8211; Part I
The social web is creating demand for new scaling tools and
technologies. Current databases and caching solutions are simply unable
to handle a complex network of multiple relationship between objects.
While databases are still a good solution for persistent storage of
social data, each retrieval requires heavy calculation. 
]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.hueniverse.com/hueniverse/2008/03/on-scaling-a-mi.html">Hueniverse: Scaling a Microblogging Service &#8211; Part I</a><br />
<blockquote>The social web is creating demand for new scaling tools and<br />
technologies. Current databases and caching solutions are simply unable<br />
to handle a complex network of multiple relationship between objects.<br />
While databases are still a good solution for persistent storage of<br />
social data, each retrieval requires heavy calculation. </p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://unmanageability.com/index.php/2008/05/25/what-is-so-hard-about-scaling-the-twitter-service/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>always try things yourself and profile</title>
		<link>http://unmanageability.com/index.php/2008/03/16/always-try-things-yourself-and-profile/</link>
		<comments>http://unmanageability.com/index.php/2008/03/16/always-try-things-yourself-and-profile/#comments</comments>
		<pubDate>Sat, 15 Mar 2008 15:40:09 +0000</pubDate>
		<dc:creator>Coder</dc:creator>
				<category><![CDATA[Performance]]></category>

		<guid isPermaLink="false">http://unmanageability.com/index.php/2008/03/16/always-try-things-yourself-and-profile/</guid>
		<description><![CDATA[int64.org » Scalability isn’t everything  
&#8230; application needed a queue of small objects, and on a modern quad–core CPU the cache misses were hurting performance so much that although a lock–free queue did have near 100% scalability, the overall operation was completing 165% faster with a locked queue with zero scalability.
The next best thing is to combines the best of both worlds: design a queue with low overhead and medium scalability.  Using a reader–writer lock with a combination ...]]></description>
			<content:encoded><![CDATA[<p><a href="http://blog.int64.org/2008/03/04/scalability-isnt-everything">int64.org » Scalability isn’t everything</a> <br /> <br />
<blockquote>&#8230; application needed a queue of small objects, and on a modern quad–core CPU the cache misses were hurting performance so much that although a lock–free queue did have near 100% scalability, the overall operation was completing 165% faster with a locked queue with zero scalability.</p>
<p>The next best thing is to combines the best of both worlds: design a queue with low overhead and medium scalability.  Using a reader–writer lock with a combination of lock–free operations, I came up with a queue that only needs to do a full lock once every 32 or 64 operations.  The result?  Scalability 5% lower than a lock–free queue, with overall performance 210% better.</p>
<p>OK, I’ll admit it: I cheated, somewhat.  Lock–free algorithms are good for more than just scalability.  They also offer immunity to nasty effects like deadlock, livelock, and priority inversion.  In my case I wasn’t in a situation to worry about these, but you might be.  The lesson here is to know your situation and decide carefully, and don’t trust what others tell you: always try things yourself and profile.</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://unmanageability.com/index.php/2008/03/16/always-try-things-yourself-and-profile/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Scaling Audiogalaxy&#8230;</title>
		<link>http://unmanageability.com/index.php/2008/02/29/scaling-audiogalaxy/</link>
		<comments>http://unmanageability.com/index.php/2008/02/29/scaling-audiogalaxy/#comments</comments>
		<pubDate>Fri, 29 Feb 2008 13:02:53 +0000</pubDate>
		<dc:creator>Coder</dc:creator>
				<category><![CDATA[Performance]]></category>

		<guid isPermaLink="false">http://unmanageability.com/index.php/2008/02/29/scaling-audiogalaxy/</guid>
		<description><![CDATA[Scaling Audiogalaxy to 80 million daily page views &#124; Spiteful.com  
For our most heavily accessed data set, we had an extremely good read/write ratio, so we were able to fan out to about 20 slaves from a single master. This particular database had several hundred million rows, which challenged the limits of our hardware (periodically, we had to clean out stale data when it got too large), so one trick we used was index-segmentation. Different sets of slaves had ...]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.spiteful.com/2008/02/27/scaling-audiogalaxy-to-80-million-daily-page-views/">Scaling Audiogalaxy to 80 million daily page views | Spiteful.com</a> <br /> <br />
<blockquote>For our most heavily accessed data set, we had an extremely good read/write ratio, so we were able to fan out to about 20 slaves from a single master. This particular database had several hundred million rows, which challenged the limits of our hardware (periodically, we had to clean out stale data when it got too large), so one trick we used was index-segmentation. Different sets of slaves had different indexes, and our database access layer could pick a different cluster based on the necessary index. Specifically, the tables in this database generally had an ID and a string, but the index on the string was only necessary for some queries. So, on some slaves we simply didn’t have the string index. This allowed those machines to keep the entire ID index in memory, which was a huge performance boost.</p>
<p>We used sharding to scale our databases in other areas. </p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://unmanageability.com/index.php/2008/02/29/scaling-audiogalaxy/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>A new malloc(3) implementation for FreeBSD 7.0</title>
		<link>http://unmanageability.com/index.php/2008/02/29/a-new-malloc3-implementation-for-freebsd-70/</link>
		<comments>http://unmanageability.com/index.php/2008/02/29/a-new-malloc3-implementation-for-freebsd-70/#comments</comments>
		<pubDate>Fri, 29 Feb 2008 12:08:43 +0000</pubDate>
		<dc:creator>Coder</dc:creator>
				<category><![CDATA[Performance]]></category>

		<guid isPermaLink="false">http://unmanageability.com/index.php/2008/02/29/a-new-malloc3-implementation-for-freebsd-70/</guid>
		<description><![CDATA[FreeBSD 7.0-RELEASE Release Notes  
A new malloc(3) implementation has been introduced. This implementation, sometimes referred to as “jemalloc”, was designed to improve the performance of multi-threaded programs, particularly on SMP systems, while preserving the performance of single-threaded programs. Due to the use of different algorithms and data structures, jemalloc may expose some previously-unknown bugs in userland code, although most of the FreeBSD base system and common ports have been tested and/or fixed. Note that jemalloc uses mmap(2) to obtain ...]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.freebsd.org/releases/7.0R/relnotes.html">FreeBSD 7.0-RELEASE Release Notes</a> <br /> <br />
<blockquote>A new <a href="http://www.freebsd.org/cgi/man.cgi?query=malloc&amp;amp;sektion=3&amp;amp;manpath=FreeBSD+7.0-RELEASE">malloc(3)</a> implementation has been introduced. This implementation, sometimes referred to as “jemalloc”, was designed to improve the performance of multi-threaded programs, particularly on SMP systems, while preserving the performance of single-threaded programs. Due to the use of different algorithms and data structures, jemalloc may expose some previously-unknown bugs in userland code, although most of the FreeBSD base system and common ports have been tested and/or fixed. Note that jemalloc uses <a href="http://www.freebsd.org/cgi/man.cgi?query=mmap&amp;amp;sektion=2&amp;amp;manpath=FreeBSD+7.0-RELEASE">mmap(2)</a> to obtain memory and only uses <a href="http://www.freebsd.org/cgi/man.cgi?query=sbrk&amp;amp;sektion=2&amp;amp;manpath=FreeBSD+7.0-RELEASE">sbrk(2)</a> under limited circumstances (and then only for 32-bit architectures). As a result, the datasize resource limit has little practical effect for typical applications. The vmemoryuse resource limit, however, can be used to bound the total virtual memory used by a process, as described in <a href="http://www.freebsd.org/cgi/man.cgi?query=limits&amp;amp;sektion=1&amp;amp;manpath=FreeBSD+7.0-RELEASE">limits(1)</a>.</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://unmanageability.com/index.php/2008/02/29/a-new-malloc3-implementation-for-freebsd-70/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>CMG Proceedings now free!</title>
		<link>http://unmanageability.com/index.php/2008/02/13/cmg-proceedings-now-free/</link>
		<comments>http://unmanageability.com/index.php/2008/02/13/cmg-proceedings-now-free/#comments</comments>
		<pubDate>Tue, 12 Feb 2008 23:37:32 +0000</pubDate>
		<dc:creator>Coder</dc:creator>
				<category><![CDATA[Performance]]></category>

		<guid isPermaLink="false">http://blog.codeperformance.com/index.php/2008/02/13/cmg-proceedings-now-free/</guid>
		<description><![CDATA[CMG Public Proceedings  
CMG is pleased to announce the releasing of our past conference proceedings to the general public. We are currently starting with papers from 1997 through 2005 with plans to add more. 
]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.cmg.org/proceedings/">CMG Public Proceedings</a> <br /> <br />
<blockquote>CMG is pleased to announce the releasing of our past conference proceedings to the general public. We are currently starting with papers from 1997 through 2005 with plans to add more. </p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://unmanageability.com/index.php/2008/02/13/cmg-proceedings-now-free/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>IBM triples Nutch performance with virtualized j9 JVM</title>
		<link>http://unmanageability.com/index.php/2008/01/26/ibm-triples-nutch-performance-with-virtualized-j9-jvm/</link>
		<comments>http://unmanageability.com/index.php/2008/01/26/ibm-triples-nutch-performance-with-virtualized-j9-jvm/#comments</comments>
		<pubDate>Sat, 26 Jan 2008 13:10:54 +0000</pubDate>
		<dc:creator>Coder</dc:creator>
				<category><![CDATA[Performance]]></category>

		<guid isPermaLink="false">http://blog.codeperformance.com/index.php/2008/01/26/ibm-triples-nutch-performance-with-virtualized-j9-jvm/</guid>
		<description><![CDATA[IBM Research &#124; &#124; dgrove &#124; Libra: A Library Operating System for a JVM in a Virtualized Execution Environment  
Libra, an execution environment specialized for IBM&#8217;s J9 JVM. Libra does not replace the entire operating system. Instead, Libra and J9 form a single statically-linked image that runs in a hypervisor partition. Libra provides the services necessary to achieve good performance for the Java workloads of interest but relies on an instance of Linux in another hypervisor partition to provide ...]]></description>
			<content:encoded><![CDATA[<p><a href="http://domino.watson.ibm.com/comm/research_people.nsf/pages/dgrove.vee2007.html">IBM Research | | dgrove | Libra: A Library Operating System for a JVM in a Virtualized Execution Environment</a> <br /> <br />
<blockquote>Libra, an execution environment specialized for IBM&#8217;s J9 JVM. Libra does not replace the entire operating system. Instead, <b>Libra and J9 form a single statically-linked image that runs in a hypervisor partition</b>. Libra provides the services necessary to achieve good performance for the Java workloads of interest but relies on an instance of Linux in another hypervisor partition to provide a networking stack, a filesystem, and other services. The expense of remote calls is offset by the fact that Libra&#8217;s services can be customized for a particular workload; for example, <b>on the Nutch search engine, we show that two simple customizations improve application throughput by a factor of 2.7</b>.</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://unmanageability.com/index.php/2008/01/26/ibm-triples-nutch-performance-with-virtualized-j9-jvm/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>IBM&#8217;s Cloneable JVM: JSR 121 implementation on Linux gives sub-5 seconds start up</title>
		<link>http://unmanageability.com/index.php/2008/01/23/ibms-cloneable-jvm-jsr-121-implementation-on-linux-gives-sub-5-seconds-start-up/</link>
		<comments>http://unmanageability.com/index.php/2008/01/23/ibms-cloneable-jvm-jsr-121-implementation-on-linux-gives-sub-5-seconds-start-up/#comments</comments>
		<pubDate>Wed, 23 Jan 2008 12:19:03 +0000</pubDate>
		<dc:creator>Coder</dc:creator>
				<category><![CDATA[Performance]]></category>

		<guid isPermaLink="false">http://blog.codeperformance.com/index.php/2008/01/23/ibms-cloneable-jvm-jsr-121-implementation-on-linux-gives-sub-5-seconds-start-up/</guid>
		<description><![CDATA[VEE: VEE &#8216;07, Cloneable JVM: a new &#8230;  
Java has been successful particularly for writing applications in the server environment. However, isolation of multiple applications has not been efficiently achieved in Java. Many customers require that their applications are guarded by independent OS processes, but starting a Java application with a new process results in a long sequence of initializations being repeated each time. To date, there has been no way to quickly start a new Java application as ...]]></description>
			<content:encoded><![CDATA[<p><a href="http://portal.acm.org/citation.cfm?id=1254810.1254812&amp;coll=ACM&amp;dl=ACM&amp;type=series&amp;idx=SERIES11259&amp;part=series&amp;WantType=Proceedings&amp;title=VEE&amp;CFID=13316309&amp;CFTOKEN=18985490">VEE: VEE &#8216;07, Cloneable JVM: a new &#8230;</a> <br /> <br />
<blockquote>Java has been successful particularly for writing applications in the server environment. However, isolation of multiple applications has not been efficiently achieved in Java. Many customers require that their applications are guarded by independent OS processes, but starting a Java application with a new process results in a long sequence of initializations being repeated each time. To date, there has been no way to quickly start a new Java application as an isolated OS process. In this paper, we propose a new isolation approach called Cloneable JVM to eliminate this startup overhead in Java. The key idea is to create a new Java application by copying, or cloning, the already-initialized image of the primary JVM process. Since the clone is already initialized, it can begin actual operations immediately as a new isolated process. This cloning abstraction can support new scenarios for Java, such as user isolation and transaction isolation. We implemented a prototype of the Cloneable JVM by modifying a production JVM on Linux, which provides a new API for cloning constructed on the Isolate API defined in JSR 121. Using this cloning API, several Java applications, including a large production J2EE application server, we remodified to demonstrate the isolation scenarios. Evaluations using these prototypes showed that new ready-to-serve <b>Java applications can start up as a new process in less than 5 seconds, which is 4 to 170 times faster than starting these applications from scratch.</b></p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://unmanageability.com/index.php/2008/01/23/ibms-cloneable-jvm-jsr-121-implementation-on-linux-gives-sub-5-seconds-start-up/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Performance factors for virtualization</title>
		<link>http://unmanageability.com/index.php/2007/12/30/performance-factors-for-virtualization/</link>
		<comments>http://unmanageability.com/index.php/2007/12/30/performance-factors-for-virtualization/#comments</comments>
		<pubDate>Sun, 30 Dec 2007 16:50:31 +0000</pubDate>
		<dc:creator>Coder</dc:creator>
				<category><![CDATA[Performance]]></category>

		<guid isPermaLink="false">http://blog.codeperformance.com/index.php/2007/12/30/performance-factors-for-virtualization/</guid>
		<description><![CDATA[Just what are the important performance factors for Virtualization?  


Throughput: can the application deliver the required levels of throughput, in terms of real world transactions? 
Latency: is the latency of each transaction within tolerances, or affected by virtualization 
Scalability: does throughput/latency change as load is increased (often asked in the context of &#8211; â€œdo I have enough future headroom?â€) 
Memory efficiency: Doing more work with less memory &#8211; multi-core is rapidly providing an increasing amount of CPU, but memory ...]]></description>
			<content:encoded><![CDATA[<p><a href="http://blog.richardmcdougall.com/?p=27">Just what are the important performance factors for Virtualization?</a> <br /> <br />
<blockquote>
<ul>
<li>Throughput: can the application deliver the required levels of throughput, in terms of real world transactions? </li>
<li>Latency: is the latency of each transaction within tolerances, or affected by virtualization </li>
<li>Scalability: does throughput/latency change as load is increased (often asked in the context of &#8211; â€œdo I have enough future headroom?â€) </li>
<li>Memory efficiency: Doing more work with less memory &#8211; multi-core is rapidly providing an increasing amount of CPU, but memory remains a premium </li>
<li>Power-performance: Throughput relative to power, i.e. how much performance can I deliver for the power consumed </li>
<li>Space-performance: How much performance can I get per rack unit </li>
<li>Agility: What is the time taken to deploy a new application</li>
</ul>
</blockquote>
]]></content:encoded>
			<wfw:commentRss>http://unmanageability.com/index.php/2007/12/30/performance-factors-for-virtualization/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
