在一些机器上使用webbrick服务器的ruby-on-rails应用程序很慢

我在Mac上开发了一个相当简单的ruby-on-rails应用程序,该应用程序已经在Debiannetworking服务器上投入使用。 networking应用程序使用提供的默认webbrick服务器运行应用程序。

该应用程序在我的机器上以及我所在地区的其他许多设备上运行得很快 但是,它在几台机器上运行缓慢。 根据webbrick提供的日志,页面以毫秒为单位呈现,但在慢速的机器上,机器需要15 – 20秒才能获取消息来实际呈现页面。

我已经研究了可能的解决scheme,但是没有一个能够解决我的问题。

现在,我正在考虑将我的服务器切换到Apache来运行我的应用程序,但是我不确定同样的问题会持续下去,因为我不知道问题是什么。 有没有人有什么build议?


关于我testing过的机器的一些信息:

3 Mac Pro的(Mac OSX) – 所有快速运行应用程序。 计算机连接在我们的用户networking中

1 Mac Air(Mac OSX) – 快速运行。 连接在我们的networking内

1 Macbook Pro(Mac OSX) – 运行相当慢,但不是最慢的。 我们的networking内部没有连接

1戴尔笔记本电脑(Ubuntu) – 与Macbook Pro相同的性能

1戴尔工作站(Windows) – 最慢的一个。 大页面滞后。 连接在我们的networking内。 这是我们需要快速启动的机器。

1戴尔桌面(Windows) – 另一台速度慢的机器。 接入我们的networking

是不是你的开发者机器上的服务器只接受一个请求,生产中是否接受多个并发请求?

无论如何,Webrick对生产环境来说不是一个好的服务器。 我更喜欢独angular兽或彪马,但乘客是一个很好的select也更简单的configuration。

由于您的应用程序在多个工作站上运行,因此缓慢的原因可能是问题工作站上存在问题。

我将假设你的应用程序在每台机器上运行一致 – 也就是说,它在运行速度很快的机器上运行得很快。

计算机硬件,操作系统,软件和networking在工作的计算机和应用程序不工作的计算机之间有什么区别? 如果应用程序无法工作的计算机全部位于不同的子网上,则该子网上可能存在路由问题或高networking拥塞。 如果他们正在运行较旧的操作系统或较旧的浏览器,则可能与应用程序中的代码不完全兼容。 如果他们正在运行额外的后台任务或有less量的RAM或可用磁盘空间,请解决这些问题并重试。

网页devise中有太多的变数会影响性能,但就你的情况而言,我认为这是一个客户问题,而不是服务器问题。 当然,任何开发人员都知道,代码总是可以更好地优化。 即使这是客户端问题,您的应用中更优化的代码也可能会提高这些客户端的性能。 前往SO寻求帮助。

如果您的应用程序在每台计算机上运行不一致(如果它在之前快速运行的计算机上运行速度较慢),则可能存在服务器问题需要解决。 在这种情况下,请检查您的CPU,RAM和networking使用情况,并将其与您的慢速应用程序性能相关联。 您的networking服务器可能正在快速处理应用程序,但是在传送时遇到瓶颈。 你总是可以在Apache上试用它,看看是否能解决你的问题(Apache是​​免费的,而且相对容易设置,所以用它来testing并不困难)。