…as Java types, but we can't go all the way. Regardless of how great the underlying VM is, if you can't hold to its immutable truths, you're walking against the wind. Ruby on Dart would probably not be any faster than Ruby on JVM, because you'd still have to implement mutable types and growable objects in pretty much the same way. Ruby on PyPy might be able to go farther, since the VM is designed for mutable types and growable objects, but you might have to sacrifice …
You can install New Relic Server Monitoring on your VM in Joyent's cloud from their pkgsrc repository. Pkgsrc is a SmartOS-optimized package repo, sort of like a yum or aptitude for SmartOS packages.
First, you need to have a New Relic account. Sign up here if you haven't already.
Make sure your pkgin database is up to date: pkgin update
Next install New Relic Server Monitoring from the Joyent pkgsrc repo: pkgin install nrsysmond
Server Monitoring…
…while there may be cases where you don't need that (e.g. for a database VM), a VM without your code mounted into it is pretty useless.
The fix wasn't too hard:
I created a blank Vagrantfile (no recipes, just a simple box definition).
vagrant up and wait for the box to fail.
vagrant ssh to enter the box, or start with the GUI option and login through it.
execute sudo /etc/init.d/vboxadd setup
Then, exit the VM and execute the following: vagrant package vm_name --output …
It also doesn't hurt to assign names, so you know which VM you're dealing with when GUI is enabled: db_config.vm.customize [ "modifyvm", :id, "--name", "DB", ]
Hardware
It doesn't hurt to have lots of CPU and RAM, but also configure the VMs accordingly. I run up to four virtual machines on a Macbook Air — usually configured with 256 to 512 MB. I imagine this would go smoother with VMWare Fusion, but since our team contains …
…method cache expiry is global. That is, any time you make a change to any class anywhere, the entire VM's method caches get busted at the same time. This is why you'll frequently hear people saying that "calling Object#extend is bad".
Actually, it's not just Object#extend . Charlie Somerville put together what I believe to be an exhaustive list of things that clear MRI's method caches. Method cache busting is so pervasive that it's almost …
Single core VM
528M RAM
Host-Only network
1 Box with http/php, 1 box with memcache or mysql started
libmemcached PECL module
Zend Cache Backend Libmemcached
Here is the rough code for this benchmark: // Identical config/code for memcached vs InnoDB $frontendOpts = array( 'caching' => true, 'lifetime' => 3600, 'automatic_serialization' => true ); $memcacheOpts = array( 'servers' =>array( …
@ vambenepe : The server huggers have regrouped. Now they're VM huggers, ironically. Fighting PaaS with all their might.
@ jezhumble : If the developers can't self-service everything they need programmatically through an API, it's not a private cloud.
@ Bremmel : Foursquare users crawl the real world like Google's spiders crawl the web - Dennis Crowley
@ mollstam : SimCity's API (and I'm guessing region …
In Algorithm Design for Performance Aware VM Consolidation we learn some shocking facts (gambling in Casablanca?):
Average server utilization in many data centers is low, estimated between 5% and 15%. This is wasteful because an idle server often consumes more than 50% of peak power.
Surely that's just for old style datacenters? Nope. In Google data centers, workloads that are consolidated use only 50% of the processor cores. Every other processor core is left unused simply to ensure that performance does not degrade.
…processor. I have a newer ARM-based Chromebook, but there is currently no ARM port of the Dart VM. I used the 32-bit version of the JDK and the 32-bit version of Dart Editor.
I'm pretty excited that this works because this is one of the few things that was preventing me from fully switching to a Chromebook :) Now, all I need to do is get my hands on a Chromebook Pixel !
We were able to get it installed on a Debian VM, but it does not pass all the Phusion Passenger unit tests. It fails on some tests with obscure errors that seem to indicate bugs in Ruby, e.g. errors in which Ruby cannot figure out where the exception came from.
We recommend sticking with 1.9.3 in the mean time until the next Ruby 2.0 patchlevel release.
Release Candidate 2 timeline & download
Phusion Passenger Enterprise customers are given priority access to Release Candidate…