High Performance Drupal meetup at Filter Digital in Culver City on February 7, 2012

christefano's picture
Start: 
2012-02-07 18:30 - 21:30 America/Los_Angeles
Event type: 
User group meeting
Video: The Magic of NewRelic, by Robert J. Brown:
http://blip.tv/ladrupal/episode/5944185  
Video: Drupal and MongoDB, by Ashok Modi:
http://blip.tv/ladrupal/episode/5944184  

The High Performance Drupal meetup now meets on the 1st Tuesday of the month. We're meeting again on February 7, 2012 and will be at Filter Digital, a digital solutions agency in Culver City located just two blocks from Media Temple, a familiar venue of Drupal meetups on the Westside.

LA Drupal meetups follow a basic format and start off with Drupal news and announcements, local job announcements, raffle prizes and full-length presentations. As always, we'll also have community Q&A, during which time anyone in attendance can ask questions, divine answers from the crowd and give brief, 5-10 minute-long presentations known as lightning talks.

We'll finish off the night with more networking and a Drupal After Dark at 9:30pm.

For any changes to our agenda, stay tuned to this meetup announcement or click the Sign up button below (or both!) to be notified when the agenda has been updated.

About High Performance Drupal

What is the High Performance Drupal meetup about? The "high performance" part of the name is a catch-all to describe Drupal scalability, performance and benchmarking but we also discuss hosting, infrastructure, deployment, monitoring and highly repeatable processes. Also, this meetup has been held at coffeeshops in the past and the addition of caffeine makes our meetings feel as if they go faster and faster as the night goes on.

This is an LA Drupal meetup that focuses exclusively on advanced topics and there will not be a Users Helping Users portion to the evening.

Thank you to our sponsors!

Filter Digital Light food and refreshments will be served throughout the evening courtesy of our food, drink and venue sponsor, Filter Digital, a digital solutions agency.

Our client list spans global brands and Fortune 100 companies to startups and boutique firms. Let us help you create a digital solution that fits your needs!

Exaltation of Larks - Expert Drupal strategy, consulting, development and training Our projector for the evening is being provided by Exaltation of Larks, a Drupal strategy, consulting, development and training company with a team of Drupal experts in Los Angeles.

We like doing hard things on the web and excel at creating and maintaining exceptional Drupal sites with unexceptional budgets.

Agenda

   6:30pm
   Drupal Design Camp LA 2012 planning meeting
   Projector and tables / chairs setup

   7:30pm
   Introductions and job announcements
   News and upcoming events (Drupal Design Camp LA 2012, DrupalCon Denver, LA Drupal Business Summit, etc.)
   Community questions and answers

   8:30pm
   Presentations and Lightning Talks
   The Magic of NewRelic, by Robert J. Brown
   Deploying Drupal with Standing Cloud, by Christefano Reyes
   MongoDB, by Ashok Modi
   Raffle prizes!

   9:30pm
   Wrap-up, Clean-up and Close-up
   Drupal After Dark and networking session

Join us on Twitter, Google+ and IRC!

During the meetup, several of us will be in the #drupal-la channel on IRC and the LA Drupal hangout on Google+ and all are welcome to join us. The event organizers will also be monitoring Twitter for feedback and questions that mention @ladrupal or use the #ladrupal hashtag.

Drupal Design Camp LA 2012 planning meeting

The meetup begins at 7:30pm but the doors open a little earlier at 6:30pm for a Drupal Design Camp LA 2012 planning meeting. Stop by, hear how the conference was last year and join the conference organizing team! We'll be discussing venues, insurance matters, the first-ever LA Drupal business summit and other conference activities.

Presentations and Lightning Talks

The evening will have a mixture of full-length presentations and brief lightning talks, which are brief, 5-10 minute presentations, demos or discussions that anyone can give. It can be about a new website you're working on, a Drupal module you've written or come across recently that you'd like to talk about, or just a burning question you'd like to ask of the crowd.

The Magic of NewRelic, by Robert J. Brown

Tuning Drupal performance is challenging to say the least. In the past, it has required detailed knowledge of your database engine, trips through the slow query log, caching layers such as Memcache, configuration settings in your http server of choice, PHP and xhprof profiling, front-end caching, and more. This has all become significantly easier in the age of NewRelic, a hosted application performance monitoring tool that has been optimized for Drupal.

In this presentation, Robert J. Brown (@rjbrown99) will provide background on the NewRelic monitoring tool, including installing and integrating it into an existing Drupal stack, understanding the output, and using it to tune your Drupal site. Real-world examples of performance improvements will be discussed, as well as a brief overview of their free server monitoring product.

Disclaimer: Your speaker has no affiliation with NewRelic, aside from being a happy customer and a former user of their free product which is excellent.

Deploying Drupal with Standing Cloud, by Christefano Reyes

Standing Cloud is a new player in the cloud platform management space and they've recently announced an Optimized Drupal offering that deploys Drupal on the hosting provider of your choice with just a couple of clicks. In this presentation, Christefano (@christefano) will demonstrate how Standing Cloud deploys optimized Drupal applications to the cloud.

Unlike other platforms like CloudFormation or RightScale, Standing Cloud deploys applications to its own servers across 15 different cloud providers (AWS, SoftLayer, GoGrid, RackSpace, etc.) and not server templates or machine images (like the Mercury AMI at AWS). Standing Cloud sets up each system's configuration for Drupal with Varnish, APC, Drush, memcache, etc. so that developers can focus on building applications and not administering servers.

MongoDB, by Ashok Modi

Ashok (@BTMash) will talk about the MongoDB project for Drupal. He will talk about the strengths and weaknesses of using MongoDB and will do a demonstration of how to set up MongoDB with Drupal in your own environment.

Raffle prizes! Collect them all! Must be present to win!

The raffle prizes this time include discount codes, magazines, DVDs and books! We are always grateful to our sponsors for their continued support. If you have any items you'd like to donate to the raffle, please contact any of the organizers at the meetup.

  • Invitation codes to Pantheon
    Pantheon is a Drupal hosting and development platform with the usual stack of Drupal, Apache, MySQL and PHP, but comes with extra high-performance goodness like Pressflow, Memcache, Varnish and Solr. If that weren't enough, Pantheon accounts have a complete environment where code and databases can be moved up and down from dev, test and production.

    Sound complicated? It actually isn't, because all this functionality is managed with an easy to use point-and-click interface.

Google Map

Location and directions

   Filter Digital
   5782 W. Jefferson Blvd.
   Los Angeles, CA 90016

Filter is located next to Corbis, on West Jefferson Street and is the brick building running along side of the large concrete building. When parking, please choose from one of the many unmarked spaces in the lot.

There is construction of a new metro stop across the street, so please plan to arrive a few minutes early.

FROM THE NORTH:

Head South on S. La Cienega Blvd. (Note, this is what Fairfax eventually turns into). Continue on S. La Cienega until you reach the intersection of S. La Cienega and Jefferson Blvd. Quickly after that you will see the See's Candy store on your right. Turn right (on Corbett) as if turning into their parking lot. Continue down that lane all the way to the end. You will see a sign that says 5788 on the left. There take a right into our parking lot and park anywhere. To find our office, just take a right at the cafe tables.

FROM THE SOUTH:

Head North on S. La Cienega Blvd. Continue North on S. La Cienega through the intersection of S. La Cienega and Rodeo Rd. You will see Target on your left and The Chinese Laundry shoe outlet. Quickly after The Chinese Laundry turn left (on Corbett) as if turning into the See's Candy store. Continue down that lane all the way to the end. You will see a sign that says 5788 on the left. There take a right into our parking lot and park anywhere. To find our office, just take a right at the cafe tables.

FROM THE EAST:

Head West on W. Jefferson Blvd. Continue on S. La Cienega until you reach the intersection of S. La Cienega and Jefferson Blvd. There, take a left to head South on S. La Cienega Blvd. Quickly after that you will see the See's Candy store on your right. Turn right (on Corbett) as if turning into their parking lot. Continue down that lane all the way to the end. You will see a sign that says 5788 on the left. There take a right into our parking lot and park anywhere. To find our office, just take a right at the cafe tables.

FROM THE WEST:

Head East on National Blvd. When you reach the intersection of National Blvd and Jefferson, continue going straight into our parking lot (You'll notice a metal marquee with both "Worldwide Possible" and "Filter" listed). Park anywhere, then head to the building with the jagged roof and take a right. To find our office, just take a right at the cafe tables.

Drupal After Dark

Even if you can't make it to the meetup, you're welcome to join us for a Drupal After Dark. After we wrap up the meeting and clean up, a group of us will go to a nearby restaurant or pub.

What to bring

Just bring your laptop, your business cards or whatever else you need. You're also welcome to bring some light food, sodas or beers to share with others at the meetup.

About Filter Digital

Filter provides creative marketing solutions and staffing resources. Our services are distinguished by outstanding quality, talented people and exceptional value.

We are both more agile and more cost-effective than traditional agencies because of our unique approach to resourcing and staffing our engagements. Let us help you create a digital solution that fits your needs. Our client list spans global brands and Fortune 100 companies to startups and boutique firms.

About LA Drupal

LA Drupal is one of the world's largest regional Drupal user groups and is Southern California's largest hub for all things Drupal. In addition to scheduling up to 6 regular meetups a month and occasional trainings and social gatherings, LA Drupal members produce special events, code sprints, and the annual DrupalCamp LA and Drupal Design Camp LA conferences.

Attending LA Drupal events is one of the best ways to meet and talk with other Drupaleros and we encourage you to attend meetings and special events regularly. Whether it's to find solutions to problems you've been having, sharing something you've learned or just meeting interesting like-minded people, the LA Drupal events are an essential resource for Drupal professionals and hobbyists alike.

If you aren't already part of LA Drupal, it's easy to become a member and find events in our community calendar at http://groups.drupal.org/la/events

Comments

Would anyone like to present

christefano's picture

Would anyone like to present on something at the High Performance Drupal meetup this month? Oliver and I have a few presentations lined up already, but they're probably going to be closer to 10-15 minutes in length. That leaves us just enough time for another presentation.

Topics we'd love to hear about are:

  • nginx
  • Chef
  • Puppet
  • NewRelic
  • HipHop
  • MongoDB
  • MariaDB

If there are other high performance- and deployment-related topics you'd like to present or see presented, please add them here in the comments.

Chef from the stevenator?

stevenator's picture

It's quite possible that I can do a chef install and go demo as I have been working with @craigmc on it. If timing is necessary, I can roll a full presentation as some of the demo requires 2-3 mins for an instance to spin up. I am still putting my schedule together for next week but if there is interest out there on Chef then ping this thread and I will do my best to have it ready.

Not yet sure if I can make it

BTMash's picture

Not yet sure if I can make it but I would be interested in the chef install demo. I'll find out tonight if I can make it but I would most likely be able to present on nginx/php-fpm or on mongodb and drupal (the latter is what I'd like to present on most but I have to make time and work with it a little more).

Confirmed

BTMash's picture

I should be able to make it so the topics above are on the table :)

stevenator and BTMash should do their presentations

oseldman's picture

Instead of my GA presentation, I'd like to suggest that stevenator should do a chef install and BTMash do a mongoDB presentation (what he'd like to present on most).

It would be equally appropriate for me to give a GA presentation at one of the other meetups, and their topics are more directly "high performance" -- and honestly I'd rather see their presentations on those subjects.

We're hiring!

jstoller's picture

I'll be stopping by to pitch my job announcement.

Many thanks to Filter

christefano's picture

Many thanks to Filter Digital, our gracious venue, and to our presenters, Robert J. Brown and Ashok Modi, for making this meetup an event not to be missed! We had a solid turnout of 23 people in spite of rain and starting over at a new venue. This bodes very well for our future meetups.

We postponed the Standing Cloud presentation until next time (a representative from Standing Cloud is coming to an upcoming High Performance Drupal meetup and will give a better presentation than I ever could). Instead, we had a lightning talk about memcache performance by Corwin and a followup from mike stewart on the Long Beach meetups.

The meetup wasn't streamed as originally planned but the NewRelic and MongoDB presentations were recorded. They'll be on http://blip.tv/ladrupal soon and on the UCI Replay even sooner. I'll try to get two projectors for the next meetup so that we can project both the LA Drupal hangout on Google+ and the main presentation, as we did at last month's Downtown LA Drupal meetup.

Brief Meeting Minutes

bvirtual's picture

Hi,

I write up meeting minutes for most of the Drupal events I attend. The level of details vary. The purpose is to aid attendance, letting people know what they missed, encouraging membership growth, soliciting speakers, and giving reasons to watch the webcast, a table of contents of sorts. All mistakes are mine.

The meeting started with four job announcements, and that our venue host, www.FilterDigital.com, the LA office being one of four in the USA, has many needs, for freelancing and others, in all sorts of Drupal, and non Drupal positions.

LA Drupal on February 14th, Monday, has their meeting at the Santa Monica Library.

Robert Brown presents www.NewRelic.com - Drupal and PHP Profiling and others

Robert Brown spoke on his web site's http://gochicorgohome.com/ usage of www.NewRelic.com, a PHP profiler that works better with Drupal, on a server basis, easily with Apache with mod_php, can be used with other web servers, and with heartache on others, and perhaps not at all with cgi or fcgi PHP modes. Time spent in each PHP function, both PHP library or Drupal functions. Configuration parameters support excluding undesired functions, eliminating them from one or more various recording databases, reporting mechanisms and statistic outputs. There is a Free version supporting the last 30 minutes, and a Standard version, $50, requiring access to a port number at NewRelic.com, ad Advanced for $200 or more.

Profiling can be done for java, ApacheSolr and .net. Installing from a PPA repo is possible. A license key is needed. Alerts are a new addition and may be enhanced to be more configurable, granular and robust. Talking to their tech support one finds them very supportive of the community and with enough "data" for your issue, you have a good chance of finding a patch soon enough. Drupal modules are supported.

Sign up now and see if you do not get a free T-shirt, perhaps a Data Nerd T-shirt.

BTW, I visited www.gochicorgohome.com and the fashion sense here speaks to all types of women clothing, which I really liked.

Ashok Modi presented Drupal and MongoDB

First out in 2009, written in C++, similar in appearance to JSON or PHP arrays, whitehouse.gov serves up 180 million documents out of MongoDB. Various Drupal tables have their abstraction support changed from MySQL or other to MongoDB, not all tables, but the MongoDB module gives you good granular control over which tables, where table sessions gives good performance increase (over a factor of 2 times faster), but cache tables remain better served via APC or memCache, and Drupal 7 Field storage is great. There is a MongoDB module for Drupal 6. It's not ACID compliant, and defaults to the faster async write mode. Sync writes may be a big hog. Disable dblog as it's not needed. All fields are automatically indexed, and due to the schema-less setup, new fields/collections are dynamically added, with no configuration needed.

Joins are not possible, but by duplicating a column inside a collection, such can be cobbled together. View joins will not work, but all fields are exposed in views, automatically. Module Materialized Views (mv) by David Strauss appears to eliminate table joins. Search API might be used to index collections/fields, then they become available in Views.

Other Tidbits

memCacheD is not as good as memCache, sometimes 40% slower. Using a real IP improves it. localhost mode is bad. Binary log mode is slower.

The Long Beach Drupal Meetup is doing great things in teaching how to contribute, to resolve Drupal.org/project/*/issues, including core patches. Teaching hands on doing of moving a patch through the peer review process. A good benefit to LA members is to add their submitted Issue Numbers to the LB Wiki for such, so we might review them, a benefit to being a LA member, to have your fellow members move your patch through Community Review, in a more timely way.

Thanks to Filter

Thanks go to Filter Digital for the lit parking, easy access to their front door, right into the meeting room, and the plentiful refreshments. So much food, that the After Dark was held right there. Gavin of Filter was our host, and locked the doors not at 9 PM, but when we wanted. Many thanks to Gavin for making this Drupal meeting such a grand success.

Peter

LA's Open Source User Group Advocate - Volunteer at DrupalCamp LA and SCALE

What's the recommended

craigmc's picture

What's the recommended version of the memcache PHP plugin? Trying to chase down some issues and I think this could be fruitful.

Los Angeles, CA

Look for Memchache(d) version 1.4

stevenator's picture

I don't have a direct answer to your question, but I do have a little information about memcache(d) itself after sitting in on a very informative presentation this past SCALE. Alan Kasindorf is one of the memcache maintainers of the utility and he has been ramping up the release cycles again after it was left for almost 2 years. Without going to far into it, you are best served to look for the 1.4 version and therefore whatever php module that pins memcache as such. The 1.6 release adds a bit more flexibility to memcache(d) and the storage sizes, but wasn't recommended if your use case was simple query storage.

So I know that doesn't answer the question but it should help narrow down any of the versions. I am not an expert so I would bend to anyone else who can put more information in here about the memcache(d) utility.

memcache

BTMash's picture

Based on http://drupalcode.org/project/memcache.git/blob/refs/heads/6.x-1.x:/READ... (nearly same readme for 7.x), the memcache library (so no 'd') is recommended.

Agree

rjbrown99's picture

Agree, right now it's suggested to use memcache, which as of this writing is 3.0.6. I asked this a few months ago in the memcache issue queue here and the advice came from catch, who is the module maintainer. Note that the pecl memcache extension doesn't work with binary mode so keep that in mind.

Thanks

rjbrown99's picture

Thanks to Christefano for the invite last night and thanks to Ashok for his talk. I am already using the MongoDB module for Drupal but still learned some new things about it.

A few questions came up last night so I thought I'd expand on things I didn't directly answer.

1) How does the NewRelic PHP extension communicate?"

There is a system daemon called newrelic-daemon that is installed. This daemon, which is started as root on my system from the standard system startup scripts, looks in /etc/newrelic/newrelic.cfg. The config file specifies the license key, collector host, whether or not the traffic sent to NewRelic should be SSL encrypted or not (default: no), and an optional location for the socket. By default, when the newrelic-daemon is started it creates a socket in /tmp/.newrelic.sock. The purpose of this daemon and socket is to receive information from the PHP extension and forward it along to the NewRelic servers.

The NewRelic extension is loaded into the php interpreter in the same manner as your other extensions (apc, curl, pdo, mysqli, etc.) The newrelic.ini file that controls the loading of the extension and configuration options supports a setting "newrelic.daemon" which specifies the socket location (again by default it knows to look in /tmp/.newrelic.sock.) So that's the answer as to how it all fits together - the daemon starts and creates a socket, the php extension sends information to the socket, which is picked up by the daemon and sent via port 80 back to the NewRelic collector server.

2) Why can't I easily configure NewRelic for multiple sites when using Nginx with PHP+FCGI?

There is a configuration page detailing how this should work here. After following the instructions, I had properly configured daemons, with one NewRelic socket per site /tmp/.newrelic_site1.sock and so forth. So far so good.

Next I moved on to the per-directory INI settings documentation page here. Using nginx, I changed the fastcgi_param PHP_VALUE "newrelic.appname=My Blog" and that worked fine. However, when I went in to have a look at phpinfo(), I saw this:

newrelic.daemon   /tmp/.newrelic.sock /tmp/.newrelic.sock

... and I saw failure messages in the log. I thought "gee that should be easy enough to fix, I'll just do this":

fastcgi_param PHP_VALUE "newrelic.daemon=/tmp/.newrelic_site1.sock"

BZZT, nope. That doesn't work. I can restart Nginx and the php-cgi process but no soup for me. The setting does not change. Why? Because the php newrelic.daemon setting falls under the SYSTEM scope per this documentation page. And you can't override SYSTEM settings at runtime, only via the php ini file.

I opened a ticket with NewRelic about this. My goal was to configure one daemon+socket per website, but I can't do a runtime configuration specifying where to point the socket (either in the nginx config file or via ini_set()).

The other answer may be to use per-directory settings for php-cgi, or run one php-cgi per site with different php.ini files. I mention this here because the online documentation was not clear about this and was somewhat misleading. It may have been updated by now after my ticket, but just changing newrelic.appname is not all that you might need to do.

Hope that helps, and feel free to ask more questions if you have them.

One more note...

rjbrown99's picture

Lewis Cirne, CEO of NewRelic, did an interview in December at the CloudBeat conference. Here's the video. It's worth watching if you are interested in learning about NewRelic from a non-technical viewpoint. He outlines quite a bit about their vision for building the company and their philosophy.

Forgot

rjbrown99's picture

I keep remembering things I should have talked about.

There is a NewRelic Drupal module that builds some additional integration with the service. One of the other things you can do with NewRelic is to mark a point in time when you deploy. So for example, let's say you update a module on your site. You can report that deployment to NewRelic and it will draw a line on all of your charts. This is very helpful when trying to determine the impact of a change you made to the site. The Drupal module allows you to very easily create and push a deployment note. You could do this with cURL and the command line but the module makes it quite easy. I recommend it if you are going to roll out NewRelic.

It was great to finally meet you.

BTMash's picture

I'd seen your posts on GDO so it was that I finally got to meet you and I really enjoyed your presentation as well! I had played around with New Relic last year when I got vps hosting for myself and wanted to see how D7 was performing on it. However, I'd only played around with it on a very basic level and I didn't know about the solr/memcache integrations and the site monitoring though so I am happy to learn about it :) I also didn't know about materialized views which does sound interesting (though sad that the project hasn't seen movement in a while).

From last night, I've uploaded the slides to http://speakerdeck.com/u/btmash/p/mongodb-and-drupal-drupal-in-la-feb-2012 and I'm glad the video is up as well :)

The videos from this meetup

christefano's picture

The videos from this meetup are now up on Blip:

   The Magic of NewRelic, by Robert J. Brown
   http://blip.tv/ladrupal/episode/5944185

   Drupal and MongoDB, by Ashok Modi
   http://blip.tv/ladrupal/episode/5944184

Thanks again to our speakers for their excellent presentations, our wonderful organizers, Oliver, Pete, Gavin and John, and to John at UCI for the help with the video recordings.

hmm how do you see these

gateway69's picture

hmm how do you see these videos, im getting a You are not authorized to see this post?

Sorry about that! I could see

christefano's picture

Sorry about that! I could see the videos when I posted my comment… but I had just uploaded the videos to Blip and was still logged in. It's possible that Blip uses some caching for non-logged in traffic.

Try it again when you have time. The video from last month's case study on Marketplace.org is also available:

   Marketplace.org Case Study
   http://blip.tv/ladrupal/episode/5944371

Videos on UCI Replay

jromine's picture

You can also view the LA Drupal videos at http://replay.uci.edu/clients/drupal/. There are full resolution and mobile versions.

John Romine

Now thats a hidden Gem!

gateway69's picture

Now thats a hidden Gem! thanks!

High performance

Group notifications

This group offers an RSS feed. Or subscribe to these personalized, sitewide feeds:

Hot content this week