Weblog
I'll be speaking at the Silicon Valley Ruby Conference
Silicon Valley Ruby Conference is a weekend conference, Saturday and Sunday, April 22nd and 23rd in Santa Clara, CA. Considering the rest of the speaker’s I think it’s a reasonably priced at $199-$249.My talk is
Scale With Rails: Real-life capacity and deployment planning for small to large scale Rails applications.
If you’re coming, please make sure to say “Hi”, I love meeting our peoples.
Abstract
Ruby On Rails is an opinionated framework for developing web applications, and has a considerable amount of flexibility in the back end. While the framework is quite successful in removing the need for developers to worry about many back-end specific things, this separation tends to make issues with deployment, scaling and financing appear at inopportune times. Besides making the critical point that “to scale” means being able to take your application both up and down in size, the talk will cover the full range of considerations in detail: power, space, location, hardware, components, network, operating system(s), development, staging, the choices in web, database and application servers and, most importantly, the cost. The perspective is one that will interest everyone involved in the development, deployment and financing of Rails-based applications.
One example will be the choices made during the building of the Joyent Grid, a highly available, redundant and modular setup that has a determinable QoS, is easily administered and can be right-sized and geographically distributed without issue. This is the shared infrastructure behind all of Joyent’s and TextDrive’s products.
Bio
Jason Hoffman is the CTO of Joyent Inc and was a co-founder, with Dean Allen, of TextDrive Inc. Joyent Inc is a platform software and utility computing company that has a number of online applications and provides infrastructure to a wide range of other projects and companies. Jason has a BS and MS from UCLA, a PhD from UCSD and has backgrounds in cancer biology, bioinformatics, grid computing and collaborative applications
·:· Posted 22 March 2006, 22:00 by Jason Hoffman to Stuff | Comment? [1]
In town for ETech?
If you’re in San Diego for ETech, shoot me an email (jason at joyent dot com or textdrive dot com). Besides me normally living here, some of us are having dinner Sunday night, and then we’ll be doing a Joyent Shindig on Tuesday night.
I’ll be swinging by the Downtown Hyatt at 8pm tonight (Sunday) to get Scott and then we’ll just be heading a little north into the Gas Lamp.
·:· Posted 6 March 2006, 00:02 by Jason Hoffman to Stuff | Got something to say?
McBook
Would you like some fries with your McBook maam?
I don’t like the name
I like power.
Don’t think putting “pro” on the end helps.
·:· Posted 10 January 2006, 23:13 by Jason Hoffman to Stuff | eh? [9]
Two things I can't stop thinking about: ZFS and Joyent
People often ask me what I’m most excited about technology-wise and I have to be honest that this week it’s two things: ZFS and Joyent. They’re at different levels in the grand scheme of server things but whenever I find myself idle, my mind drifts to them and then buzz buzz buzzes. And I can actually see myself being excited about these for quite sometime (so excuse the use of “this week”).
ZFS
ZFS is Sun’s 128 bit file system (most file systems now are 32 or 64 bit, it’s what limits their size and number of possible files). It was announced about a year ago, has been in development for over 4 years and then this last Halloween found it put into Solaris Express. So it looks like it should be available via there in the next couple of weeks.ZFS is a file system that among other things has a copy-on-write design with abilities like relatively unlimited and instantaneous read/write snapshots. Because of this plus other things it is very much like Netapp’s WAFL (Write Anywhere File Layout; there is a pdf here ; and our grand systems emperor Jan looooooooooooooves netapp). When you add it’s additional features and a size limit that in order to reach you’d have to comsume all the silicon on the planet Earth, then it’s far to call it a solid advance.
What does ZFS do for us and others? Well, we have a large number of SCSI drives (TBs and TBs worth), SCSI enclosures that can direct connect to several other servers and it then becomes relatively easy to then put together a solid, solid NAS, effectively a “poor man’s netapp”. OK, ok, a frugal man’s Netapp at an entry level price of about 1/10th-1/50th. And that’s the entry level price, when you can reconfigure things that you already have, then it’s even better.
Joyent
Now joyent. Oh nice clean wonderful joyent. I was lucky enough to get a demo yesterday from David, the CEO and Founder, in the lobby of the Hilton San Francisco. And I can tell you that after professionally using (literally) ever application like this over the last decade, this is was the first time that I was done trying something out and really, seriously had no issues with it. Nothing but love. I think 4 minutes into it, my mouth was permanently open and I was siezed by nothing but the desire to start using it even in place of things like Mail.app. And it looks great. Great great great. And what really struck me (as an “executive”) is that this team if anything must be amazingly disciplined and well lead, they had obviously and successfully resisted every little thing that has ended up being irritants in software like this (even at their stage). If they can keep that going as they come up to releasing it then …. Wow.
Among other things, this app is one that finally gets that it has a relational database as a backend (umm … for example, when you access files via WebDAV on your computer, it auto-creates a normal looking file hierarchy from how you tag a file. You don’t have to create “folders” or decide whether a file should be here or there).
And it’s a Rails app
Smart guys.
·:· Posted 5 November 2005, 20:09 by Jason Hoffman to Stuff | Comment? [11]
Fun
Rails got upgraded, people tool around with their typos on there, then they had their daedalus hit the site, site a little sluggish, so it restarts lighttpd, but see that doesn’t touch the dispatch.fcgi files, it just launches 2-4 more, then they had their daedalus hit the site, site a little sluggish, so it restarts lighttpd, but see that doesn’t touch the dispatch.fcgi files, it just launches 2-4 more, then they had their daedalus hit the site, site a little sluggish, so it restarts lighttpd, but see that doesn’t touch the dispatch.fcgi files, it just launches 2-4 more, then they had their daedalus hit the site, site a little sluggish, so it restarts lighttpd, but see that doesn’t touch the dispatch.fcgi files, it just launches 2-4 more, then they had their daedalus hit the site, site a little sluggish, so it restarts lighttpd, but see that doesn’t touch the dispatch.fcgi files, it just launches 2-4 more, then they had their daedalus hit the site, site a little sluggish, so it restarts lighttpd, but see that doesn’t touch the dispatch.fcgi files, it just launches 2-4 more, then they had their daedalus hit the site, site a little sluggish, so it restarts lighttpd, but see that doesn’t touch the dispatch.fcgi files, it just launches 2-4 more, then they had their daedalus hit the site, site a little sluggish, so it restarts lighttpd, but see that doesn’t touch the dispatch.fcgi files, it just launches 2-4 more, then they had their daedalus hit the site, site a little sluggish, so it restarts lighttpd, but see that doesn’t touch the dispatch.fcgi files, it just launches 2-4 more,then they had their daedalus hit the site, site a little sluggish, so it restarts lighttpd, but see that doesn’t touch the dispatch.fcgi files, it just launches 2-4 more,then they had their daedalus hit the site, site a little sluggish, so it restarts lighttpd, but see that doesn’t touch the dispatch.fcgi files, it just launches 2-4 more,then they had their daedalus hit the site, site a little sluggish, so it restarts lighttpd, but see that doesn’t touch the dispatch.fcgi files, it just launches 2-4 more,then they had their daedalus hit the site, site a little sluggish, so it restarts lighttpd, but see that doesn’t touch the dispatch.fcgi files, it just launches 2-4 more,then they had their daedalus hit the site, site a little sluggish, so it restarts lighttpd, but see that doesn’t touch the dispatch.fcgi files, it just launches 2-4 more,then they had their daedalus hit the site, site a little sluggish, so it restarts lighttpd, but see that doesn’t touch the dispatch.fcgi files, it just launches 2-4 more,then they had their daedalus hit the site, site a little sluggish, so it restarts lighttpd, but see that doesn’t touch the dispatch.fcgi files, it just launches 2-4 more,then they had their daedalus hit the site, site a little sluggish, so it restarts lighttpd, but see that doesn’t touch the dispatch.fcgi files, it just launches 2-4 more,then they had their daedalus hit the site, site a little sluggish, so it restarts lighttpd, but see that doesn’t touch the dispatch.fcgi files, it just launches 2-4 more,then they had their daedalus hit the site, site a little sluggish, so it restarts lighttpd, but see that doesn’t touch the dispatch.fcgi files, it just launches 2-4 more,then they had their daedalus hit the site, site a little sluggish, so it restarts lighttpd, but see that doesn’t touch the dispatch.fcgi files, it just launches 2-4 more,then they had their daedalus hit the site, site a little sluggish, so it restarts lighttpd, but see that doesn’t touch the dispatch.fcgi files, it just launches 2-4 more,then they had their daedalus hit the site, site a little sluggish, so it restarts lighttpd, but see that doesn’t touch the dispatch.fcgi files, it just launches 2-4 more,then they had their daedalus hit the site, site a little sluggish, so it restarts lighttpd, but see that doesn’t touch the dispatch.fcgi files, it just launches 2-4 more,then they had their daedalus hit the site, site a little sluggish, so it restarts lighttpd, but see that doesn’t touch the dispatch.fcgi files, it just launches 2-4 more,then they had their daedalus hit the site, site a little sluggish, so it restarts lighttpd, but see that doesn’t touch the dispatch.fcgi files, it just launches 2-4 more,then they had their daedalus hit the site, site a little sluggish, so it restarts lighttpd, but see that doesn’t touch the dispatch.fcgi files, it just launches 2-4 more,then they had their daedalus hit the site, site a little sluggish, so it restarts lighttpd, but see that doesn’t touch the dispatch.fcgi files, it just launches 2-4 more,then they had their daedalus hit the site, site a little sluggish, so it restarts lighttpd, but see that doesn’t touch the dispatch.fcgi files, it just launches 2-4 more,then they had their daedalus hit the site, site a little sluggish, so it restarts lighttpd, but see that doesn’t touch the dispatch.fcgi files, it just launches 2-4 more,then they had their daedalus hit the site, site a little sluggish, so it restarts lighttpd, but see that doesn’t touch the dispatch.fcgi files, it just launches 2-4 more,then they had their daedalus hit the site, site a little sluggish, so it restarts lighttpd, but see that doesn’t touch the dispatch.fcgi files, it just launches 2-4 more,then they had their daedalus hit the site, site a little sluggish, so it restarts lighttpd, but see that doesn’t touch the dispatch.fcgi files, it just launches 2-4 more,then they had their daedalus hit the site, site a little sluggish, so it restarts lighttpd, but see that doesn’t touch the dispatch.fcgi files, it just launches 2-4 more,then they had their daedalus hit the site, site a little sluggish, so it restarts lighttpd, but see that doesn’t touch the dispatch.fcgi files, it just launches 2-4 more,then they had their daedalus hit the site, site a little sluggish, so it restarts lighttpd, but see that doesn’t touch the dispatch.fcgi files, it just launches 2-4 more,then they had their daedalus hit the site, site a little sluggish, so it restarts lighttpd, but see that doesn’t touch the dispatch.fcgi files, it just launches 2-4 more,then they had their daedalus hit the site, site a little sluggish, so it restarts lighttpd, but see that doesn’t touch the dispatch.fcgi files, it just launches 2-4 more,then they had their daedalus hit the site, site a little sluggish, so it restarts lighttpd, but see that doesn’t touch the dispatch.fcgi files, it just launches 2-4 more,then they had their daedalus hit the site, site a little sluggish, so it restarts lighttpd, but see that doesn’t touch the dispatch.fcgi files, it just launches 2-4 more,then they had their daedalus hit the site, site a little sluggish, so it restarts lighttpd, but see that doesn’t touch the dispatch.fcgi files, it just launches 2-4 more,then they had their daedalus hit the site, site a little sluggish, so it restarts lighttpd, but see that doesn’t touch the dispatch.fcgi files, it just launches 2-4 more,then they had their daedalus hit the site, site a little sluggish, so it restarts lighttpd, but see that doesn’t touch the dispatch.fcgi files, it just launches 2-4 more,then they had their daedalus hit the site, site a little sluggish, so it restarts lighttpd, but see that doesn’t touch the dispatch.fcgi files, it just launches 2-4 more,then they had their daedalus hit the site, site a little sluggish, so it restarts lighttpd, but see that doesn’t touch the dispatch.fcgi files, it just launches 2-4 more,then they had their daedalus hit the site, site a little sluggish, so it restarts lighttpd, but see that doesn’t touch the dispatch.fcgi files, it just launches 2-4 more,then they had their daedalus hit the site, site a little sluggish, so it restarts lighttpd, but see that doesn’t touch the dispatch.fcgi files, it just launches 2-4 more,then they had their daedalus hit the site, site a little sluggish, so it restarts lighttpd, but see that doesn’t touch the dispatch.fcgi files, it just launches 2-4 more,then they had their daedalus hit the site, site a little sluggish, so it restarts lighttpd, but see that doesn’t touch the dispatch.fcgi files, it just launches 2-4 more,then they had their daedalus hit the site, site a little sluggish, so it restarts lighttpd, but see that doesn’t touch the dispatch.fcgi files, it just launches 2-4 more,then they had their daedalus hit the site, site a little sluggish, so it restarts lighttpd, but see that doesn’t touch the dispatch.fcgi files, it just launches 2-4 more,then they had their daedalus hit the site, site a little sluggish, so it restarts lighttpd, but see that doesn’t touch the dispatch.fcgi files, it just launches 2-4 more,then they had their daedalus hit the site, site a little sluggish, so it restarts lighttpd, but see that doesn’t touch the dispatch.fcgi files, it just launches 2-4 more,then they had their daedalus hit the site, site a little sluggish, so it restarts lighttpd, but see that doesn’t touch the dispatch.fcgi files, it just launches 2-4 more,then they had their daedalus hit the site, site a little sluggish, so it restarts lighttpd, but see that doesn’t touch the dispatch.fcgi files, it just launches 2-4 more,then they had their daedalus hit the site, site a little sluggish, so it restarts lighttpd, but see that doesn’t touch the dispatch.fcgi files, it just launches 2-4 more,then they had their daedalus hit the site, site a little sluggish, so it restarts lighttpd, but see that doesn’t touch the dispatch.fcgi files, it just launches 2-4 more,then they had their daedalus hit the site, site a little sluggish, so it restarts lighttpd, but see that doesn’t touch the dispatch.fcgi files, it just launches 2-4 more,then they had their daedalus hit the site, site a little sluggish, so it restarts lighttpd, but see that doesn’t touch the dispatch.fcgi files, it just launches 2-4 more,then they had their daedalus hit the site, site a little sluggish, so it restarts lighttpd, but see that doesn’t touch the dispatch.fcgi files, it just launches 2-4 more,then they had their daedalus hit the site, site a little sluggish, so it restarts lighttpd, but see that doesn’t touch the dispatch.fcgi files, it just launches 2-4 more,then they had their daedalus hit the site, site a little sluggish, so it restarts lighttpd, but see that doesn’t touch the dispatch.fcgi files, it just launches 2-4 more,then they had their daedalus hit the site, site a little sluggish, so it restarts lighttpd, but see that doesn’t touch the dispatch.fcgi files, it just launches 2-4 more,then they had their daedalus hit the site, site a little sluggish, so it restarts lighttpd, but see that doesn’t touch the dispatch.fcgi files, it just launches 2-4 more,then they had their daedalus hit the site, site a little sluggish, so it restarts lighttpd, but see that doesn’t touch the dispatch.fcgi files, it just launches 2-4 more, then they had their daedalus hit the site, site a little sluggish, so it restarts lighttpd, but see that doesn’t touch the dispatch.fcgi files, it just launches 2-4 more,then they had their daedalus hit the site, site a little sluggish, so it restarts lighttpd, but see that doesn’t touch the dispatch.fcgi files, it just launches 2-4 more,then they had their daedalus hit the site, site a little sluggish, so it restarts lighttpd, but see that doesn’t touch the dispatch.fcgi files, it just launches 2-4 more,then they had their daedalus hit the site, site a little sluggish, so it restarts lighttpd, but see that doesn’t touch the dispatch.fcgi files, it just launches 2-4 more,then they had their daedalus hit the site, site a little sluggish, so it restarts lighttpd, but see that doesn’t touch the dispatch.fcgi files, it just launches 2-4 more,then they had their daedalus hit the site, site a little sluggish, so it restarts lighttpd, but see that doesn’t touch the dispatch.fcgi files, it just launches 2-4 more,then they had their daedalus hit the site, site a little sluggish, so it restarts lighttpd, but see that doesn’t touch the dispatch.fcgi files, it just launches 2-4 more,then they had their daedalus hit the site, site a little sluggish, so it restarts lighttpd, but see that doesn’t touch the dispatch.fcgi files, it just launches 2-4 more,then they had their daedalus hit the site, site a little sluggish, so it restarts lighttpd, but see that doesn’t touch the dispatch.fcgi files, it just launches 2-4 more,then they had their daedalus hit the site, site a little sluggish, so it restarts lighttpd, but see that doesn’t touch the dispatch.fcgi files, it just launches 2-4 more,then they had their daedalus hit the site, site a little sluggish, so it restarts lighttpd, but see that doesn’t touch the dispatch.fcgi files, it just launches 2-4 more,then they had their daedalus hit the site, site a little sluggish, so it restarts lighttpd, but see that doesn’t touch the dispatch.fcgi files, it just launches 2-4 more,then they had their daedalus hit the site, site a little sluggish, so it restarts lighttpd, but see that doesn’t touch the dispatch.fcgi files, it just launches 2-4 more,then they had their daedalus hit the site, site a little sluggish, so it restarts lighttpd, but see that doesn’t touch the dispatch.fcgi files, it just launches 2-4 more,then they had their daedalus hit the site, site a little sluggish, so it restarts lighttpd, but see that doesn’t touch the dispatch.fcgi files, it just launches 2-4 more,then they had their daedalus hit the site, site a little sluggish, so it restarts lighttpd, but see that doesn’t touch the dispatch.fcgi files, it just launches 2-4 more,then they had their daedalus hit the site, site a little sluggish, so it restarts lighttpd, but see that doesn’t touch the dispatch.fcgi files, it just launches 2-4 more,then they had their daedalus hit the site, site a little sluggish, so it restarts lighttpd, but see that doesn’t touch the dispatch.fcgi files, it just launches 2-4 more,then they had their daedalus hit the site, site a little sluggish, so it restarts lighttpd, but see that doesn’t touch the dispatch.fcgi files, it just launches 2-4 more,then they had their daedalus hit the site, site a little sluggish, so it restarts lighttpd, but see that doesn’t touch the dispatch.fcgi files, it just launches 2-4 more,then they had their daedalus hit the site, site a little sluggish, so it restarts lighttpd, but see that doesn’t touch the dispatch.fcgi files, it just launches 2-4 more,then they had their daedalus hit the site, site a little sluggish, so it restarts lighttpd, but see that doesn’t touch the dispatch.fcgi files, it just launches 2-4 more,then they had their daedalus hit the site, site a little sluggish, so it restarts lighttpd, but see that doesn’t touch the dispatch.fcgi files, it just launches 2-4 more,then they had their daedalus hit the site, site a little sluggish, so it restarts lighttpd, but see that doesn’t touch the dispatch.fcgi files, it just launches 2-4 more,then they had their daedalus hit the site, site a little sluggish, so it restarts lighttpd, but see that doesn’t touch the dispatch.fcgi files, it just launches 2-4 more,then they had their daedalus hit the site, site a little sluggish, so it restarts lighttpd, but see that doesn’t touch the dispatch.fcgi files, it just launches 2-4 more,then they had their daedalus hit the site, site a little sluggish, so it restarts lighttpd, but see that doesn’t touch the dispatch.fcgi files, it just launches 2-4 more,then they had their daedalus hit the site, site a little sluggish, so it restarts lighttpd, but see that doesn’t touch the dispatch.fcgi files, it just launches 2-4 more,then they had their daedalus hit the site, site a little sluggish, so it restarts lighttpd, but see that doesn’t touch the dispatch.fcgi files, it just launches 2-4 more,then they had their daedalus hit the site, site a little sluggish, so it restarts lighttpd, but see that doesn’t touch the dispatch.fcgi files, it just launches 2-4 more,then they had their daedalus hit the site, site a little sluggish, so it restarts lighttpd, but see that doesn’t touch the dispatch.fcgi files, it just launches 2-4 more,
And see
When you combine with a big fat-ass fscking memory leak
What happens?
It completely fried a server.
Yes in fact, it fried two servers and nearly some more. In the last week, we’ve have $1500/each procs, a stick of RAM and a raid controller get completely fried in two $5000 servers. So bad that the drives had to be pulled (seriously that’s what the pictures on flickr are ). And guess what the long repetitive string of entries in the process accounting logs where? Wanna guess? Wanna? Go ahead. Guess. The retrieved core dump?
The last time I saw a server get fried that like I was tooling around with lighttpd’s config (seriously I did completely fry two drives putting … well maybe I shouldn’t say).
So we put in all that hard (used to be soft) memory, process, open file limits etc.
And what happened, half a dozen people on barclay hit them. All typo users, and then it exposed that memory leak in rails itself.
So … FUN FUN!
And Scott and Scott, and the entire teams, were beyond perfect in their handling of it. Worked just like an open source project should (actually better than just about any professional operation).
And hey don’t think for one second this is critical of Rails, it isn’t. I find someone posting on their blog that it is, and I’ll personally kick you in the nards.
Stuff is better than Tacos and that’s sayin’ somethin’.
·:· Posted 26 October 2005, 05:33 by Jason Hoffman to Stuff | What? [11]
Recently:
- The weblog is heading over to Joyeur.com
- The Scale with Rails workshops
- By popular demand, the plain FSCK You shirts are out
- Apache 2.2, mod_proxy_balancer and Mongrel
- Apache 2.2 worker on solaris to a remote mongrel
- I made some other web server points over at Joyeur
- Beware the trailing slash in Apache's proxy balancer
- What about Apache to Mongrel for Rails applications?
- Lighttpd versus Litespeed with Mongrel as a backend for Rails applications
- Moving a ZFS filesystem and all of its snapshots from one zpool to another
- Watch Out for Software Updates
- Two simple tips for freezing your rails
- #1 in Google for ZFS snapshots
- I'll be speaking at the Silicon Valley Ruby Conference
- Joyeur and the Dell Selling Machine
- In town for ETech?
- DragonflyBSD porting ZFS
- ZFS Snapshots
- Correction on Zeus versus Litespeed hitting a static image file
- Rails with Zeus and Mongrel or FCGI

