Monthly Archive for January, 2010

High performance WordPress

Also worth reading through this thread.

Optimizing MySQL for WordPress

A few of the links I referred to when optimizing MySQL settings on one of the VPS’:

HTTP Error when uploading MP3 with Flash Media Uploader

I started a new thread in the WordPress forums this morning because we seem to have a unique issue on our hands. Basically, WordPress’ Flash Media Uploader is working for every file type except for MP3. One suggestion I came across was that it might be a mod_security issue; I tried the recommended .htaccess addition, however, to little luck. It seems odd that the only file type that doesn’t work is MP3.

How to suspend an account on cPanel

Per last night’s outage, here’s how you suspend a cPanel account from the command line:

/scripts/suspendacct 'username'

If the cause of the usage spike is unknown, however, it won’t necessarily let you diagnose it.

Research on MySQL performance with WordPress on Slicehost

One of the sites we have on Slicehost has MySQL regularly using 50% to 150% of CPU, even though we have page and query caching using memcached. As such, I did a bit of research this morning in regards to optimization steps we can take. Keep in mind that this post was written at various times over several hours.

The first post I read, a rant by Jeff Atwood, lead to suggested MySQL setting configurations from Matt Mullenweg. Based on the conversation there, I looked over a few posts related to MySQL optimization including a conversation on Stack Overflow, explanation on a lightweight configuration on Debian, and a lengthy WordPress optimization tutorial. I also came across a forum thread on WordPress.org that indicates high CPU usage may actually have to do with pretty permalinks.

The steps I took today were to implement a few of Matt’s suggested memory settings. I also ran a Perl MySQL tuner script that suggested I disable InnoDB, which I did. The most proactive steps we can take, I think, are to better configure MySQL to cache queries, and reduce the number of queries made by the theme. The changes I made today, though, anecdotally have dropped the CPU usage by a third to a half.

Munin

Munin is a “networked resource monitoring tool that can help analyze resource trends and ‘what just happened to kill our performance?’ problems.” According to Max, you can install children on multiple servers and have them report back to aggregated data on a parent. It’s useful for monitoring site performance because you can configure notifications if the site load goes above a certain number, etc. This would be worth looking through at some point in the near future.

Review of Q&A 2.0 sites

Ryan Sholin did a review of Aardvark, Hunch, and Quora today on IdeaLab. I like his points at the bottom so much that I want to record them in perpetuity:

  • From Aardvark, we learn the value of reaching people wherever they are, however they consume and communicate information. Push notification on my iPhone during my commute home? Sure, I consume information that way.
  • From Hunch, we learn that if we hand a person a multiple choice quiz, we can record the results and let our algorithm learn something about them to bring to the table when they ask their next question.
  • From Quora, we learn the value of frictionless real-time interfaces. Don’t assume your application has to follow patterns generated by its predecessors. You’re building next year’s tools, not last year’s.

All three together? Mmm… delicious.

Canadian University Press conference

It’s this week, so I think we’re probably too late this year. We should make sure it’s on our radar next year though.

Secure copy from the command line

For future reference, the proper format to the command is:

scp -rv source_dir/* username@domain.com:/full/path/to/target/directory

More on Wikipedia. I had it backwards originally and copied a lot of files to the wrong place.

Draft wireframes for profiles in the Connection Engine

After Daniel outlined the basic models that will be used in the profile pages for the Connection Engine I drew up some rough wireframes. The first is a basic user profile page for an individual. The aim is to mesh contact information and the challenges the individual is putting into the system.

The second is a profile view for a news organization. Similar to the user view this would bring together contact information as well as support history for the news organization as a whole.

Any feedback, critiques, or ideas are completely welcome.