Jeff Geerling's blog

Diagnosing Disk I/O issues: swapping, high IO wait, congestion

One one small LEMP VPS I manage, I noticed munin graphs that showed anywhere between 5-50 MB/second of disk IO. Since the VM has an SSD instead of traditional spinning hard drive, performance wasn't too bad, but all that disk I/O definitely slowed things down.

I wanted to figure out what was the source of all the disk I/O, so I used the following techniques to narrow down the culprit (spoilers: it was MySQL, which was using some swap space because it was tuned to use a little too much memory).

iotop

First up was iotop, a handy top-like utility for monitoring disk IO in real-time. Install it via yum or apt, then run it with the command sudo iotop -ao to see an aggregated summary of disk IO over the course of the utility's run. I let it sit for a few minutes, then checked back in to find:

Drupal 8 - A Brief Introduction (DrupalCamp STL.14 Presentation)

I presented Drupal 8 - A Brief Introduction at DrupalCamp STL.14 on April 26, 2014.

Drupal 8 brings a lot of changes. Many standby contributed modules are now included with Drupal Core, and many small changes add up to the most exciting Drupal release yet! This presentation guides you through many of the biggest changes, highlighting how Drupal 8 will accelerate your web development and provide tools to make Drupal the best content management platform on any device.

View the slideshow below, or follow the links at the bottom of the post to view the full presentation and video.

Links for full slideshow/video:

DrupalCon and DrupalCamp news + free DrupalCon ticket!

DrupalCon Austin

This week, the DrupalCon Austin sessions have been posted, and I'm thrilled to have one of my session submissions (in the DevOps track) selected: DevOps for Humans: Ansible for Drupal Deployment Victory!.

The session will go over how Ansible can be used to realize faster, easier, and more successful Drupal deployments, as well as Ansible's ability to make sure that every environment is 'like production', so you don't ever have surprises when you deploy code to its final destination.

If you're interested in building a DevOps culture for your company or consultancy, or if you're already using tools like Puppet or Chef, and want to see what Ansible might offer (YAML and Twig-like template syntax (Jinja2), for starters—just like Drupal 8!), please join me for the session at DrupalCon. The session will cover some of the material I'm writing about in my book-in-progress, Ansible for DevOps.

Switching an SVN repository to Git with KDE's Svn2Git

Some places where I've worked have used SVN for version control, and while the supposed simplicity and centralization of SVN can be nice in certain situations, SVN can't hold a torch to Git's speed, flexibility, and ubiquity (nowadays) for source control. Not to mention SVN doesn't have real tags or branches, just quasi-directories that can easily be mangled into a horrific mess (I see this quite often).

I've had to use some incredibly large (10,000+ revisions, 2GB+ total size) SVN repositories, and while I've managed them using git svn sometimes (see Switching an SVN repository to Git using git svn), it's much nicer to be able to migrate the entire team from SVN to Git so everyone can work on the repository much more efficiently.

For small repositories, using Git's built-in git-svn tool is not a big issue; it takes a few minutes to clone an entire SVN repository, and as long as the repository follows conventional SVN layout (branches/, tags/ and trunk/ are the only three root-level directories, and all branches/tags are flat within their respective directories...), it is simple enough to do the initial clone.

Meet Phergie, an efficient PHP IRC bot

The Drupal community uses IRC extensively for collaboration and community building. A permanent and ever-helpful fixture of the official #drupal-* IRC channels, and in the Drupal community itself, is the humble Druplicon bot. Druplicon is a Drupal-based IRC bot that was created in 2005, and is still going strong as part of the Bot module for Drupal.

Bots like Druplicon do a lot of nice things—they can remind people of things after they were away for a while, they can store facts, track karma, throw people virtual beers, store and retrieve helpful facts, and relay important information. For example, when a build fails in Jenkins, a bot can post a message in IRC. Similarly, if a server goes down, or is under heavy load, the bot could post a message.

What if you want your own bot for a different IRC channel? Drupal's Bot requires an entire Drupal environment to run, and while the bot is not too heavy on resources, an always-connected, efficient and pluggable bot would be better off on its own. And in PHP-land, there's just such a bot. Meet Phergie, a PHP IRC Bot.

Phergie logo

Announcing DrupalCamp STL.2014 - April 26 in St. Louis, MO

DrupalCamp STL 2014 Logo

St. Louis is getting ready for its first-ever DrupalCamp! On April 26, 2014, DrupalCamp St. Louis will open up with a keynote by Brad Nowak, a Business Development Manager at Palantir. The Camp will have sessions covering a variety of topics, like Drupal 8 and how your business can benefit from Drupal's flexibility. It will be held at Washington University's West Campus in Clayton, MO, just a few blocks from a MetroLink station and only a few minutes away from Downtown St. Louis!

Online registration is open already, and for the next couple of weeks, earlybird registration is only $15! For that tiny fee you get:

  • A free lunch from Lywelyns
  • An snazzy t-shirt
  • A full day's worth of Drupal learning from some great Drupal users and developers in St. Louis and the midwest
  • A fun after party paid for by our excellent sponsors

Space is limited, so register early to guarantee a spot at the first DrupalCamp in the region!

Also, if you're interested in speaking at the Camp, please submit your session; we'd love to hear about sites you've built, new things in Drupal, business uses of Drupal, project management, site building, etc.!

Pages

Subscribe to RSS - Jeff Geerling's blog