All software projects can run into performance problems, including Rails projects.
There are two common situations that cause Rails projects to run into performance problems.
1. Popularity
An application becomes more popular than expected. This unplanned additional popularity puts stress on the system and can cause failures. Very often the failures are in a few areas, called performance stress points. Other times, the level of popularity is so great that the application as a whole cannot keep up.
2. Gradual weakening
The second way performance problems can occur is when performance decreases little-by-little over time. You can't pinpoint one thing that slowed everything, down but you can see that the performance now is much worse than it was a year ago.
Affects anyone and everyone
Any team and application can run into a performance problem. That being said, they are more common with teams which lack a history of Rails development and Rails performance tuning.
Fixing performance problems
Luckily, performance problems are typically straight-forward to repair. They still take time and might require difficult changes, but the process is simple.
-
First start with a complete performance audit of the entire system.
-
Review the audit and look for areas with the largest negative performance impact. This can be frequently used areas that are a bit slow or infrequently used areas that are extremely slow.
-
Begin a performance optimization process on these areas.
-
Repeat the audit and continue until the performance is improved enough.
When it gets out of hand
Sometimes, the performance problems get out of hand. Either the development team can't solve them with their experience, or there are too many problems to keep up with.
At this point, the project becomes a Rails Rescue project.
A Rails Rescue project is basically a Rails project that has gotten into trouble. The trouble might be temporary, permanent, caused by external factors, internal factors, and so on.
Performance Rescues are a type of Rails Rescue projects when the Rails application's performance is suffering and the current team is unable to fix it.
Knowing how and where to repair a Performance Rescue takes experience. There isn't one technique that works every time, so having a collection of techniques is required to finding the best one.
Are you struggling with a Rails Performance Rescue? The Rails Rescue Review can help pinpoint what to do and how to do it.