首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >乘客在Ajax调用上产生新的ruby实例

乘客在Ajax调用上产生新的ruby实例
EN

Stack Overflow用户
提问于 2010-07-16 20:03:21
回答 2查看 345关注 0票数 0

我对Passenger和ajax调用有一些严重的性能问题。似乎每次我调用ajax时,都会启动一个新的ruby实例,而不是使用响应原始页面请求的ruby实例,这使得它非常慢。可以在短短几秒钟内发出多个ajax请求的事实并没有使情况变得更好。

我调用的操作本身相当慢(它生成一个PDF,通常需要5-10秒),但是当通过Ajax调用时,响应时间是1-3分钟!这在我的开发环境中没有问题,因为我使用的是一个单一的混合实例,但是Passenger在这里真的有麻烦。

我已经尝试了for this SO question提供的Apache/Passenger选项,但没有成功。

有谁遇到过类似的问题并找到了解决方法?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-07-22 14:43:26

实际上,答案就在问题中。问题在于,Passenger派生到许多新的应用程序实例,而不是使用现有的池。因此,解决此问题的一种方法是设置最大工作进程数:

代码语言:javascript
运行
复制
PassengerMaxPoolSize 2

这解决了我的问题,并将响应时间缩短到原始时间的10%-25%。

更新

一种更好的方法是限制可以处理单个用户的工作进程的数量。这是我最终使用的方法:

代码语言:javascript
运行
复制
PassengerMaxInstancesPerApp 1
票数 0
EN

Stack Overflow用户

发布于 2010-07-21 23:26:27

什么时候触发AJAX请求?也许它与页面加载重叠?

在触发AJAX请求之前,等待DOM load事件可能会有所帮助。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3264616

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档