Slicehost 使用什么来提供服务?快速选项如下: Mongrel 或 apache 的 mod_rails(也称为乘客 phusion 或类似的东西) 这些是运行您的 rails 应用程序实例的专用服务器(或服务器插件)。
如果您的主机没有使用它,那么它可能默认为 CGI。Rails 附带了一个简单的 CGI 脚本,它将为页面提供服务,但它会为每个页面重新加载应用程序。
(编辑:我怀疑这是最有可能的情况,即您的应用程序正在运行 /webapp_directory/public/dispatch.cgi 中的 CGI,这可以解释速度缓慢。这往往是许多主机上的默认部署,因为它不需要额外的配置,但它并没有提供良好的性能)
如果你的主机支持“Fast CGI”,rails 也支持。Fast CGI 将打开一个 CGI 会话,并为多个页面保持打开状态,因此您可以获得更好的性能,但它不如 Mongrel 或 mod_rails 好。
其次,它是处于“生产”模式还是“开发”模式?最简单的判断方法是转到您的应用程序中出现错误的页面。如果它向您显示堆栈跟踪,则它处于开发模式,比生产模式慢。Mongrel 和 mod_rails 有启动选项来确定是在生产模式还是开发模式下运行应用程序。
最后,如果您的数据库由于某种原因运行缓慢,这也将是一个很大的瓶颈。如果您在生产模式下确实有良好的部署(Mongrel/mod_rails/etc.),请尝试调查。