Roadmap Preview 3: resource control features
Phusion Passenger is an Apache and Nginx module for deploying Ruby and Python web applications. It has a strong focus on ease of use, stability and performance. Phusion Passenger is built on top of tried-and-true, battle-hardened Unix technologies, yet at the same time introduces innovations not found in most traditional Unix servers. Since mid-2012, it aims to be the ultimate polyglot application server.
In Preview 1 and Preview 2 we introduced the upcoming Phusion Passenger Enterprise. This time we’ll uncover another few features.
Resource control
Web applicatons do not always behave correctly, whether it’s because of a bug in the web application or a problem in an external system such as the database. Phusion Passenger Enterprise provides the ability to limit various aspects of application processes’ resource usage.
Request time limiting
Phusion Passenger Enterprise can enforce a maxiumum time limit on a request. If the process is not done sending its response after that time, it is forcefully shut down with SIGKILL. This time limit can be configured on a per-request basis.
Memory usage limiting
Phusion Passenger Enterprise can enforce a maximum per-process memory usage. Unlike most memory limit enforcement tools, Phusion Passenger Enterprise measures memory usage by calculating the private dirty RSS. This is the best method to calculate the true memory usage of a process beacause it does not count shared memory.
Phusion Passenger Enterprise’s memory usage limiting is graceful. This means that it shuts down the process after it is done with all current requests, so that visitors do not get to see any errors.
Mechanisms such as vsize ulimit and rss ulimit are incorrect (they measure the wrong memory usage), buggy (rss ulimit does not work on Linux) or are not graceful (ulimit forcefully kills the process).
Stay tuned!
These resource control features make it extremely easy to keep your app processes in line with a flip of the switch. Furthermore, we’ve taken the opportunity to use non-traditional methods to measure memory usage and we try to impact visitors as least as possible even when enforcing resource limits.
The release is very soon now. We will be introducing an early bird pricing so be quick, because it won’t last forever. If you want to be among the first to grab an early bird license, fill in your email address below and we’ll keep you up to date!