<?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>Tech4Him - Technology with Integrity &#187; performance</title>
	<atom:link href="http://blog.tech4him.com/tags/performance/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.tech4him.com</link>
	<description>A Christian technology chaos wrangler and his thoughts</description>
	<lastBuildDate>Wed, 24 Mar 2010 23:15:39 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Drupal can Fly&#8230;.on a Linode</title>
		<link>http://blog.tech4him.com/2009/08/drupal-can-fly-on-a-linode/</link>
		<comments>http://blog.tech4him.com/2009/08/drupal-can-fly-on-a-linode/#comments</comments>
		<pubDate>Fri, 28 Aug 2009 01:52:37 +0000</pubDate>
		<dc:creator>Tom</dc:creator>
				<category><![CDATA[Articles]]></category>
		<category><![CDATA[Featured]]></category>
		<category><![CDATA[General]]></category>
		<category><![CDATA[drupal]]></category>
		<category><![CDATA[linode]]></category>
		<category><![CDATA[performance]]></category>
		<category><![CDATA[server]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://blog.tech4him.com/?p=694</guid>
		<description><![CDATA[Yup, I learned this week just how well Drupal can fly. Well, maybe not measured in feet above the earth but certainly in terms of response time. Come take a look at a new setup were are testing out.

This week we got fed up with such terribly sporadic performance on a MediaTemple grid server account. [...]]]></description>
			<content:encoded><![CDATA[<p><a rel="attachment wp-att-702" href="http://blog.tech4him.com/2009/08/drupal-can-fly-on-a-linode/linodecom/"><img class="alignleft size-full wp-image-702" style="margin: 8px;" title="linodecom" src="http://blog.tech4him.com/wp-content/uploads/linodecom.png" alt="linodecom" width="295" height="73" /></a>Yup, I learned this week just how well Drupal can fly. Well, maybe not measured in feet above the earth but certainly in terms of response time. Come take a look at a new setup were are testing out.</p>
<p><span id="more-694"></span></p>
<p>This week we got fed up with such terribly sporadic performance on a <a href="http://www.mediatemple.net/webhosting/gs/" target="_blank">MediaTemple grid server account</a>. After many months of watching performance go from acceptable to abysmal, we finally said &#8220;enough&#8221; with a few sites that were running on this account.</p>
<p>We had just finished doing a major migration of another few of sites to a new <a href="http://www.mediatemple.net/webhosting/dv/pricing.php" target="_blank">MediaTemple Rage dedicated virtual server</a>. The DV&#8217;s at MediaTemple are fantastic. After a day of tuning and tweaking, those sites are humming. But, I think this is what really caused the decision to leave the grid server account for some other sites. Grid server performance was terrrible if you site was not a significantly active site.</p>
<p>After a bit of digging, I decide to try my hand at the <a href="http://www.linode.com/" target="_blank">Linode.com VPS</a> route. Linode.com has long been praised in Drupal circles for their value/performance proposition. Essentially a Linode is a linux virtual server in a Xen environment. Now, please note that this is not for the faint of heart. These are raw server distributions. No web server, mysql, php, control panel pre-installed. You are building your linux server from scratch. Be fore-warned.</p>
<p>It&#8217;s been many moons since I did Unix admin work, let alone Linux. I&#8217;ve been spoiled by Plesk and cPanel with most hosts. So this was certainly a challenge. Linode provides some very basic tutorials for getting your LAMP server setup in your choice of linux distributions. Again, these tutorials are very basic and will not suffice for long term hosting and certainly don&#8217;t secure your server.</p>
<p><a rel="attachment wp-att-710" href="http://blog.tech4him.com/2009/08/drupal-can-fly-on-a-linode/linodedashboard/"><img class="aligncenter size-medium wp-image-710" title="linodedashboard" src="http://blog.tech4him.com/wp-content/uploads/linodedashboard-300x108.png" alt="linodedashboard" width="300" height="108" /></a></p>
<p>One nice thing about Linode.com is a very active community in both their forums and IRC (#linode). I popped into irc and asked a few basic questions. I got some decent help right away, along with the usual, &#8220;stupid noobie&#8221; style remarks. Oh well, ignore the chaff.</p>
<p>Upon signing up for my Linode 540 I had a running server in about 34 minutes. Of course, I learned a few things, trashed it and made a new server. Man, my command line Apache2 skills have vastly improved in the last 24 hours. <img src='http://blog.tech4him.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>Luckily I could just &#8220;rsync&#8221; all the files for a site from the old grid server, directly to my new linode super fast. Mysql db backup and then resotred to the linode server. Then I edited my /windows/system32/drives/etc/host file to point www.myexample.com to the new linode IP. This let me test the site on the linode server without changing DNS for the time being. (Heck, you don&#8217;t want your sites down, right?)</p>

<p>I typed the url into my browser and in less than 1 second the page was rendering. Wow! Now compare that to the 15 second lag time on the grid server for a first time hit. Incredible. Of course, I had to run through lots of site pages just to keep seeing that great response time.</p>
<p>Now for my test installation I went with Ubuntu 8.04 LTS OS image. Then, <a title="Aegir server preparation" href="http://groups.drupal.org/node/25482" target="_blank">this great Aegir prep article</a> on <a title="Drupal.org" href="http://drupal.org" target="_blank">Drupal.org</a> was used as a basis for the install. The only difference was that that instead of manually installing Apache2 and Mysql I installed the lamp-server^ package which does this and more for you. (Don&#8217;t forget the ^ carrot as part of the package name.)</p>
<p><code>sudo apt-get install lamp-server^</code></p>
<p>I also found that a particular plugin for Wordpress needed curl instead of wget. So a quick install of php5-curl did the trick.</p>
<p><code> sudo apt-get install php5-curl</code></p>
<p>For those that don&#8217;t want to deal with command line might want to look at the <a href="http://www.virtualmin.com/download" target="_blank">VirtualMin GPL</a> product which provides a web based interface to manage your hosting sever. The automatic install is a breeze but you&#8217;ll need to do some reading to understand how to create your first virtual server and such. For us, we stuck to the command line.</p>
<p>One thing that I guess I didn&#8217;t get right away was that one linode package equals a single linux server. The reason for this is that I&#8217;m used to VMware environments where it is nothing to bring up a new VM on any one host. For some reason my brain was thinking of the linode as the host, not the guest. Oh well. My bad for adding a second ip address to my account, create new disk images and then realize, &#8220;How do I boot this second system?&#8221;. Doh! You can&#8217;t.</p>
<p>Of course, it is easy enough order another linode and move disk images between linodes. Also, Linode bills per month (or annually) but you get credit for days not used. So&#8230;you can add a linode to create a new &#8220;hosting server&#8221;, set it up the way you want it, migrate everything from your current linode and then delete the old linode. Doing this, will credit you for the unused days in the billing cycle for the old linode. Essentially, you pay for each days use which is great for minimal cost + flexibility.</p>
<blockquote><p><em>On average, a Linode 360 host has 40 Linodes on it. A Linode 540 host has on average 30.  Linode 720 host: 20 Linodes; Linode 1080 host: 15; Linode 1440 host: 10; Linode 2880: 5.</em></p></blockquote>
<p>Another exciting item is the announced Linode API. This new api is clean and provides 30+ methods for managing Linode accounts. I am interested at looking into this more and could easily see someone building a module for Aegir to provision more Linodes as needed for new Drupal sites, etc&#8230; This has got to have quite a big potential for folks wanting to automate Drupal hosting but want to stay away from the Plesk and cPanel type offerings.</p>
<p>As for flying, on the MediaTemple (gs) account, it would average between 2-10 seconds (2000+ ms) for TTFB for a lightly used site. Now the same site is pulling 400-800 ms TTFB. Now that&#8217;s a difference and in my opinion worth the extra administration. Even our MediaTemple (DV) rage is pulling TTFB of around 600-800 ms.</p>
<pre>Linode 540              $39.95/mo     400-800 ms TTFB
MediaTemple (gs)        $20.00/mo     &gt; 2000 ms TTFB
MediaTemple (dv) Rage   $100.00/mo    600-800 ms TTFB</pre>
<p style="text-align: center;"><a rel="attachment wp-att-705" href="http://blog.tech4him.com/2009/08/drupal-can-fly-on-a-linode/loadtime/"><img class="size-full wp-image-705 aligncenter" style="margin: 8px;" title="loadtime" src="http://blog.tech4him.com/wp-content/uploads/loadtime.png" alt="loadtime" width="436" height="172" /></a></p>
<p style="text-align: center;"><a rel="attachment wp-att-705" href="http://blog.tech4him.com/2009/08/drupal-can-fly-on-a-linode/loadtime/"></a>All in all, the linode service has been great, performance superb and freedom impressive. Only time will tell how well this will stay this way, but judging by the many others praising Linodes, the ride should be sweet.</p>
<p>Linode Drupal references:</p>
<ul>
<li><a href="http://drupal.org/node/194971" target="_blank">http://drupal.org/node/194971</a></li>
<li><a href="http://drupal.org/node/547910" target="_blank">http://drupal.org/node/547910</a></li>
<li><a href="http://www.rundrupal.com/linode-review" target="_blank">http://www.rundrupal.com/linode-review</a></li>
<li><a href="http://www.linodereview.com/linode-drupal" target="_blank">http://www.linodereview.com/linode-drupal</a></li>
<li><a href="http://hostingfu.com/article/linode-xen-vps-review" target="_blank">http://hostingfu.com/article/linode-xen-vps-review</a></li>
<li><a href="http://www.jeffbeeman.com/node/23" target="_blank">http://www.jeffbeeman.com/node/23</a></li>
</ul>
<p>Recent write-up</p>
<ul>
<li>http://www.ddj.com/hpc-high-performance-computing/219401166</li>
</ul>
<img src="http://blog.tech4him.com/?ak_action=api_record_view&id=694&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://blog.tech4him.com/2009/08/drupal-can-fly-on-a-linode/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>SSWUG vConf &#8211; Incremental Data Warehouse Loads with MERGE and Change Data Capture</title>
		<link>http://blog.tech4him.com/2009/04/sswug-vconf-incremental-data-warehouse-loads-with-merge-and-change-data-capture/</link>
		<comments>http://blog.tech4him.com/2009/04/sswug-vconf-incremental-data-warehouse-loads-with-merge-and-change-data-capture/#comments</comments>
		<pubDate>Fri, 24 Apr 2009 14:03:23 +0000</pubDate>
		<dc:creator>Tom</dc:creator>
				<category><![CDATA[Articles]]></category>
		<category><![CDATA[Featured]]></category>
		<category><![CDATA[business intelligence]]></category>
		<category><![CDATA[optimization]]></category>
		<category><![CDATA[performance]]></category>
		<category><![CDATA[sql]]></category>
		<category><![CDATA[sql server 2008]]></category>
		<category><![CDATA[SSIS]]></category>
		<category><![CDATA[sswug]]></category>

		<guid isPermaLink="false">http://blog.tech4him.com/?p=544</guid>
		<description><![CDATA[Presenter: Matt Masson
http://blogs.msdn.com/mattm/
This talk describes the new MERGE statement and Change Data Capture (CDC) feature introduced in SQL Server 2008, and how to take advantage of them in SQL Server Integration Services. Well cover the traditional ways of doing incremental data loads, and see how these new key features make the process a whole lot [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.flickr.com/photos/nataliejohnson/2419154427/" target="_blank"><img class="alignright size-medium wp-image-545" style="border: 0pt none; margin: 10px;" title="2419154427_04dd3da737" src="http://blog.tech4him.com/wp-content/uploads/2419154427_04dd3da737-300x199.jpg" alt="2419154427_04dd3da737" width="300" height="199" /></a>Presenter: Matt Masson<br />
<a href="http://blogs.msdn.com/mattm/">http://blogs.msdn.com/mattm/</a></p>
<p>This talk describes the new MERGE statement and Change Data Capture (CDC) feature introduced in SQL Server 2008, and how to take advantage of them in SQL Server Integration Services. Well cover the traditional ways of doing incremental data loads, and see how these new key features make the process a whole lot easier. If you&#8217;re interested in learning best practices for this new SQL Server 2008 functionality, you won&#8217;t want to miss this session!<span id="more-544"></span></p>
<p>CDC and Merge are new in SQL Server 2008</p>
<p>Also 2008 has improved SCD processing</p>
<h3>Options to Capture Change</h3>
<ul type="disc">
<li>Audit      columns &#8211; created via triggers</li>
<li>Log      Scraping</li>
<li>Full DB      Diff compare</li>
</ul>

<h3>(New Options) Change Data Capture in SQL Server</h3>
<ul type="disc">
<li>Changes      captured from the log asynchronously
<ul type="circle">
<li>Really       just integrated log scraping</li>
</ul>
</li>
<li>Tells      you what changed at the source</li>
<li>Enabled      per table or DB</li>
<li>CDC      API&#8217;s provide access to change data</li>
</ul>
<h3>CDC Components</h3>
<ul type="disc">
<li>CDC      Tables</li>
<li>Capture      Job</li>
<li>Cleanup      Job</li>
<li>API</li>
</ul>
<h3>Change Tracking</h3>
<ul type="disc">
<li>Captures      that a row was changed, but not the changed data</li>
<li>Synchronous      capture mechanism</li>
<li>Less      overhead for applications that do not require the historical information</li>
</ul>
<h3>Turn CDC on:</h3>
<ul type="disc">
<li>sp_cdc_enable_db</li>
<li>sp_cdc_enable_table</li>
<li>LSN =      Log Sequence Number</li>
<li>Sp_cdc_generate_wrapper_function
<ul type="circle">
<li>Creates       a custom function DDL for reading CDC data</li>
</ul>
</li>
</ul>
<h3>Loading SSIS Package</h3>
<ul type="disc">
<li>Source      from the CDC Wrapper function</li>
<li>Split      on CDC operation
<ul type="circle">
<li>Insert</li>
<li>Update</li>
<li>Delete</li>
</ul>
</li>
</ul>
<h3>Lookup Changes in SQL 2008</h3>
<ul type="disc">
<li>Explicit      cache modes
<ul type="circle">
<li>Full</li>
<li>Partial</li>
<li>None</li>
</ul>
</li>
<li>Cache      connection manager</li>
</ul>
<h3>External Reference Data</h3>
<ul type="disc">
<li>Joins      can work but can be difficult to manage</li>
<li>Instead,      use the SSIS Lookup transform.</li>
</ul>
<h3>The MERGE Statement</h3>
<ul type="disc">
<li>Single      statement can deal with Inserts, Updates and Deletes all at once</li>
<li>Use      Cases
<ul type="circle">
<li>Conditionally       insert or update rows in a target table</li>
<li>Synchronize       two tables</li>
</ul>
</li>
<li>Built      to perform</li>
</ul>
<h3>Using MERGE in SSIS (Execute SQL Tasks in SSIS)</h3>
<ul type="disc">
<li>Stage
<ul type="circle">
<li>Store       data in a temp table</li>
</ul>
</li>
<li>Optimize
<ul type="circle">
<li>Create       indexes on join cols</li>
<li>Provides       addtl perf benefits</li>
</ul>
</li>
<li>Execute
<ul type="circle">
<li>Run       the MERGE SQL statement</li>
</ul>
</li>
</ul>
<p>When doing the insert, you must drop the FK constraints in the destination table.</p>
<h3>Taking Advantage of MERGE</h3>
<ul type="disc">
<li>Consume      CDC data</li>
<li>Update      Dimensions</li>
<li>Alternative      to the Slowly Changing Dimension Wizard</li>
</ul>
<h3>Additional Resources</h3>
<ul type="disc">
<li>SSIS Team      Blog
<ul type="circle">
<li><a href="http://blogs.msdn.com/mattm">http://blogs.msdn.com/mattm</a></li>
</ul>
</li>
<li>Comparing      Change Data Capture and Change Tracking
<ul type="circle">
<li><a href="http://msdn.microsoft.com/en-us/library/cc280519.aspx">http://msdn.microsoft.com/en-us/library/cc280519.aspx</a></li>
</ul>
</li>
<li>Optimizing      MERGE Statement Performance
<ul type="circle">
<li><a href="http://msdn.microsoft.com/en-us/library/cc879317.aspx">http://msdn.microsoft.com/en-us/library/cc879317.aspx</a></li>
</ul>
</li>
<li>MERGE      Destination
<ul type="circle">
<li><a href="http://www.codeplex.com/SQLSrvIntegrationSrv/Release/ProjectReleases.aspx?ReleaseId=19048">http://www.codeplex.com/SQLSrvIntegrationSrv/Release/ProjectReleases.aspx?ReleaseId=19048</a></li>
</ul>
</li>
</ul>
<img src="http://blog.tech4him.com/?ak_action=api_record_view&id=544&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://blog.tech4him.com/2009/04/sswug-vconf-incremental-data-warehouse-loads-with-merge-and-change-data-capture/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SSWUG vConf &#8211; SQL 103 &#8211; DMV&#8217;s and T-SQL for the DBA</title>
		<link>http://blog.tech4him.com/2009/04/sswug-vconf-sql-103-dmvs-and-t-sql-for-the-dba/</link>
		<comments>http://blog.tech4him.com/2009/04/sswug-vconf-sql-103-dmvs-and-t-sql-for-the-dba/#comments</comments>
		<pubDate>Wed, 22 Apr 2009 21:16:20 +0000</pubDate>
		<dc:creator>Tom</dc:creator>
				<category><![CDATA[Articles]]></category>
		<category><![CDATA[Featured]]></category>
		<category><![CDATA[caching]]></category>
		<category><![CDATA[dba]]></category>
		<category><![CDATA[performance]]></category>
		<category><![CDATA[sql]]></category>
		<category><![CDATA[sql server]]></category>
		<category><![CDATA[sswug]]></category>
		<category><![CDATA[statistics]]></category>

		<guid isPermaLink="false">http://blog.tech4him.com/?p=485</guid>
		<description><![CDATA[Presenter: Jeremy Lull
Jeremy@datarealized.com
DMV &#8211; Dynamic Management Views (and functions)

Returns      server state information that can be used to monitor the health of a      server instance, diagnose problems, and tune performance.* MSFT &#8211; 2008 BOL

DMV Categories (Not all are going to be in this session)

Change   [...]]]></description>
			<content:encoded><![CDATA[<p><a rel="external nofollow" href="http://www.flickr.com/photos/52877734@N00/992988536"></a><a href="http://www.flickr.com/photos/52877734@N00/992988536" target="_blank"><img class="alignleft size-medium wp-image-486" style="border: 0pt none; margin: 15px;" title="992988536_7856b384e6" src="http://blog.tech4him.com/wp-content/uploads/992988536_7856b384e6-225x300.jpg" alt="992988536_7856b384e6" width="225" height="300" /></a>Presenter: Jeremy Lull<br />
<a href="mailto:Jeremy@datarealized.com">Jeremy@datarealized.com</a></p>
<p>DMV &#8211; Dynamic Management Views (and functions)</p>
<ul type="disc">
<li>Returns      server state information that can be used to monitor the health of a      server instance, diagnose problems, and tune performance.* MSFT &#8211; 2008 BOL<span id="more-485"></span></li>
</ul>
<p>DMV Categories (Not all are going to be in this session)</p>
<ul type="disc">
<li>Change      Data Capture</li>
<li>Query      Notifications</li>
<li>Common      Language Runtime</li>
<li>Replication</li>
<li>Database      Mirroring</li>
<li>Resource      Governor</li>
<li>Database      Related</li>
<li>Service      Broker</li>
<li>Execution</li>
<li>SQL      Server Extended Events</li>
<li>Full-Text      Search</li>
<li>SQL      Server Operating System</li>
<li>Index</li>
<li>Transaction</li>
<li>I/O</li>
<li>Security</li>
<li>Object</li>
</ul>
<p>DMV&#8217;s help with the ever growing infrastructure and complexities. Allow you to monitor and manage your environment.</p>
<p>Key DMV&#8217;s</p>
<ul type="disc">
<li>Sys.dm_os_sys_info
<ul type="circle">
<li>General       Server Info</li>
</ul>
</li>
<li>Sys.dm_exec_requests
<ul type="circle">
<li>Sp_who(2)</li>
</ul>
</li>
<li>Sys.dm_db_index_operational_stats
<ul type="circle">
<li>Sp_lock</li>
</ul>
</li>
<li>Sys.dm_db_index_usage_stats
<ul type="circle">
<li>Base       DMV for Index Analysis and Recommendations</li>
</ul>
</li>
<li>Msdb.dbo.backupset
<ul type="circle">
<li>Base       table for backup history</li>
</ul>
</li>
<li>Sys.dm_exec_cached_plans
<ul type="circle">
<li>Shows       query plans that are cached by SQL Server</li>
<li>For       query plans, this DMV maps to the syscacheobjects table in SQL Server       2000</li>
</ul>
</li>
<li>Sys.dm_exec_query_stats
<ul type="circle">
<li>Performance       statistics for cached query plans</li>
<li>Top       10</li>
</ul>
</li>
<li>Sys.dm_io_virtual_file_stats
<ul type="circle">
<li>I/O       stats for data and log files</li>
</ul>
</li>
<li>Sys.dm_os_memory_pools
<ul type="circle">
<li>Monitors       Cache memory</li>
</ul>
</li>
<li>Sys.dm_exec_sql_text
<ul type="circle">
<li>Returns       the text of the SQL batch that is identified by the specified sql_handle.</li>
<li>This       table-valued function replaces the system function fn_get_sql</li>
<li>Obtained       from:
<ul type="square">
<li>Sys.dm_exec_query_stats</li>
<li>Sys.dm_exec_requests</li>
<li>Sys.dm_exec_cursors</li>
<li>Sys.dm_exec_xml_handles</li>
<li>Sys.dm_exec_query_memory_grants</li>
<li>Sys.dm_exec_connections</li>
</ul>
</li>
</ul>
</li>
</ul>
<p>&#8220;Use it early, use it often&#8221; &#8211; JeremyÂ  <img src='http://blog.tech4him.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>Love it that every technical person presenting a demo has hit at least one minor glitch. Let&#8217;s me know it&#8217;s not just me. Ha!</p>
<p>Resources</p>
<ul type="disc">
<li><a href="http://www.sswug.org/">http://www.sswug.org</a></li>
<li>Local      User Group</li>
<li>Books      On Line
<ul type="circle">
<li>SQL       Server 2008 Performance Studio
<ul type="square">
<li><a href="https://msevents.microsoft.com/cui/WebCastEventDetails.aspx?culture=en-US&amp;EventID=1032349947&amp;CountryCode=US">https://msevents.microsoft.com/cui/WebCastEventDetails.aspx?culture=en-US&amp;EventID=1032349947&amp;CountryCode=US</a></li>
<li><a href="http://www.microsoft.com/midsizebusiness/improve-operations.mspx">http://www.microsoft.com/midsizebusiness/business-goals/business-operations/</a></li>
</ul>
</li>
</ul>
</li>
</ul>
<img src="http://blog.tech4him.com/?ak_action=api_record_view&id=485&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://blog.tech4him.com/2009/04/sswug-vconf-sql-103-dmvs-and-t-sql-for-the-dba/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>MediaTemple Grid Server, Drupal and the Zend Optimizer</title>
		<link>http://blog.tech4him.com/2008/11/mediatemple-grid-server-drupal-and-the-zend-optimizer/</link>
		<comments>http://blog.tech4him.com/2008/11/mediatemple-grid-server-drupal-and-the-zend-optimizer/#comments</comments>
		<pubDate>Thu, 20 Nov 2008 04:43:46 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Articles]]></category>
		<category><![CDATA[General]]></category>
		<category><![CDATA[drupal]]></category>
		<category><![CDATA[mediatemple]]></category>
		<category><![CDATA[optimization]]></category>
		<category><![CDATA[performance]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[zend]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[Today was a great day. First off, the good Lord gave me another day on Earth to do His work. That's a good start. I also came across a <a href="http://kb.mediatemple.net/questions/232/How+can+I+Enable+Zend+Optimizer+(php4%7B47%7D5)+on+the+(gs)+Grid-Service%3F">KB article from MediaTemple</a> that provide great hope of some performance improvement on our grid service (gs) account. Now I came across this as a result of researching performance optmizations for Drupal on their dedicated virtuals (dv) that some of my clients sites run on.

]]></description>
			<content:encoded><![CDATA[<p><a rel="external nofollow" href="http://www.flickr.com/photos/18263075@N00/2081905148"><img class="alignright" style="border: 0pt none; margin-left: 8px; margin-right: 8px;" src="http://farm3.static.flickr.com/2282/2081905148_9bd4f8b133_m.jpg" border="0" alt="Krimson - Drupal Module Development Training" hspace="8" width="240" height="161" align="left" /></a>Today was a great day. First off, the good Lord gave me another day on Earth to do His work. That&#8217;s a good start. I also came across a <a href="http://kb.mediatemple.net/questions/232/How+can+I+Enable+Zend+Optimizer+(php4%7B47%7D5)+on+the+(gs)+Grid-Service%3F">KB article from MediaTemple</a> that provide great hope of some performance improvement on our grid service (gs) account. Now I came across this as a result of researching performance optmizations for Drupal on their dedicated virtuals (dv) that some of my clients sites run on.</p>
<p>I was so excited, I couldn&#8217;t wait to try it out. So, nothing too empirical other than firebug net download times with my browser cache cleaned out.</p>
<p>Test Instance with 8 blocks making up a single node page with 100 generated users.<br />
* Before the optimizer was enabled: avg. 4.4 secs total<br />
* After the optimizer was enabled: avg. 2.9 secs total</p>
<p>The change boils down to this:</p>
<p>Open your php.ini file for editing (KB: (gs) HOWTO: edit php.ini). Add these lines:</p>
<p>For PHP4 (Replace the x.x-x with the version number you want to use.)</p>
<p>&gt; zend_optimizer.optimization_level=15<br />
&gt; zend_extension=&#8221;/usr/local/php-4.x.x-x/zend/ZendOptimizer.so&#8221;</p>
<p>For PHP5 (Replace the x.x-x with the version number you want to use.)</p>
<p>&gt; zend_optimizer.optimization_level=15<br />
&gt; zend_extension=&#8221;/usr/local/php-5.x.x-x/zend/ZendOptimizer.so&#8221;</p>
<p>Save the changes and quit.</p>
<p>That&#8217;s a decent improvement with all things considered. There are plenty of other optimization items that can be done, but since this site provide zero income, I&#8217;m not ready to pay any more for some of those non-free options. <img src='http://blog.tech4him.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>I guess that leaves me with Drupal caching support, ZendOptimizer and MySQL Table optimization and indexing. No MySQL containers for me. If I ever move, it will probably be straight to a (dv).</p>
<p>Blessings!</p>
<img src="http://blog.tech4him.com/?ak_action=api_record_view&id=40&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://blog.tech4him.com/2008/11/mediatemple-grid-server-drupal-and-the-zend-optimizer/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
