首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >与RServe相关的可扩展性

与RServe相关的可扩展性
EN

Stack Overflow用户
提问于 2015-09-01 20:06:30
回答 1查看 916关注 0票数 1

我的需求是通过Java Webservice执行R脚本。webservice需要50的并发性。

我们使用RServe从Java代码中执行R脚本。为此,在linux服务器中,我们创建了50个RServe实例,从不同的端口开始。在java应用程序内部,创建了一个具有50个RConnection对象的连接池,每个对象都链接到创建的一个RServe实例。对于每次执行,我们从池中获取一个RConnection,执行R脚本,获取响应值,然后将RConnection返回到池中。

当我们在单个用户访问的情况下执行webservice时,R的执行在1秒内完成。但是,如果我尝试以50的并发性运行相同的try服务,那么在RServe中执行R脚本大约需要30秒。由于实际的R执行只需要1秒,如果以单用户执行,我认为我在RServe中做了一些错误的事情。任何提示都会有所帮助。

EN

回答 1

Stack Overflow用户

发布于 2016-11-24 09:43:30

虽然我认为最好是在Linux上使用一个Rserve实例,让它只派生子进程进行并行处理,但这可能根本不会加快处理速度。从你的问题中,不清楚应用程序是否被密集使用,并且许多并发请求正在被持续处理。如果是这样的话,我假设您的R代码是CPU密集型的,不同的进程只需要共享CPU时间,从而增加了完成所需的时钟时间。

我正是测试了这类场景,并在top中发现了以下结果

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
  PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND
33839 *****     20   0  269792  57104   3496 R  10.3  1.5   0:15.33 Rserve
33847 *****     20   0  269776  57100   3496 R  10.3  1.5   0:09.86 Rserve
33849 *****     20   0  269792  57104   3496 R  10.3  1.5   0:08.20 Rserve
33855 *****     20   0  269528  56840   3496 R  10.3  1.5   0:04.92 Rserve
29725 *****     20   0  268872  56836   4020 R  10.0  1.5   1360:13 Rserve
33841 *****     20   0  269784  57100   3496 R  10.0  1.5   0:14.42 Rserve
33843 *****     20   0  269796  57104   3496 R  10.0  1.5   0:12.50 Rserve
33844 *****     20   0  269792  57104   3496 R  10.0  1.5   0:11.72 Rserve
33852 *****     20   0  269512  56836   3496 R  10.0  1.5   0:06.38 Rserve
33856 *****     20   0  269520  56836   3496 R  10.0  1.5   0:04.05 Rserve
33842 *****     20   0  269776  57100   3496 R   9.3  1.5   0:13.20 Rserve
33851 *****     20   0  269784  57100   3496 R   9.3  1.5   0:06.69 Rserve
33857 *****     20   0  269512  56836   3496 R   9.3  1.5   0:03.15 Rserve
33834 *****     20   0  269792  57112   3496 R   9.0  1.5   0:18.56 Rserve
33835 *****     20   0  269784  57100   3496 R   9.0  1.5   0:17.33 Rserve
33837 *****     20   0  269776  57100   3496 R   9.0  1.5   0:16.46 Rserve
33846 *****     20   0  269784  57100   3496 R   9.0  1.5   0:10.17 Rserve
33848 *****     20   0  269796  57104   3496 R   9.0  1.5   0:08.61 Rserve
33853 *****     20   0  269532  56840   3496 R   9.0  1.5   0:05.34 Rserve
33858 *****     20   0  269532  56840   3496 R   9.0  1.5   0:02.27 Rserve
33838 *****     20   0  269796  57104   3496 R   8.6  1.5   0:15.74 Rserve

CPU百分比总和为200%,对应于两个可用的CPU核心。

正如您所看到的,这两个进程具有相同的优先级(PR=20),并且%CPU的份额几乎相等,大约为10%,因此,与只有一个Rserve实例的情况相比,所有这些进程分配的CPU时间都只有十分之一,因此完成所需的时间要长出10倍。

这不是20倍的时间,因为单个Rserve进程将只使用一个CPU核心,而让另一个核心“休眠”。

如果你想加快计算速度,你只需要更多的CPU。此外,如果您不希望第51个(或第101个或第100个)并发用户被拒绝访问,最好实现一个消息队列。您可以为队列创建多个工作进程,这可以在不同机器上的多个CPU上分配工作负载。

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

https://stackoverflow.com/questions/32340033

复制
相关文章
微信内打开链接如何直接跳转到默认浏览器打开
在微信在如果打开链接,微信默认是会检测是否是微信内的安全域名,如果这个域名是微信官方内的域名很容易被微信封掉,而且很不好解封。这样就造成用户推广的域名非常容易被屏蔽。为了解决这个办法我也是上网找攻略,最近本人在某平台发现一个完美解决这个办法的网站:
用户6252721
2019/09/15
14.2K0
微信内打开链接如何直接跳转到默认浏览器打开
如何设置谷歌浏览器在新窗口中打开链接?如何设置谷歌浏览器在新标签页中打开链接?
一、快捷键方式:   1、左键单击 ==》 在当前窗口中打开目标网页。   2、Shift + 左键单击 ==》 在新窗口中打开目标网页。   3、Ctrl + 左键单击 ==》 在新标签页中打开目标
黑泽君
2018/10/11
116.6K0
在 SwiftUI 视图中打开 URL 的若干方法
本文将介绍在 SwiftUI 视图中打开 URL 的若干种方式,其他的内容还包括如何自动识别文本中的内容并为其转换为可点击链接,以及如何自定义打开 URL 前后的行为等。
东坡肘子
2022/07/28
7.8K1
在 SwiftUI 视图中打开 URL 的若干方法
在新窗口打开链接
最近博主再用H+模板时候表单提交和链接都在新窗口打开,没看见target="_blank",一直没查出来,苦恼N久,今天百度了如何用JS css等等实现网页所有链接在新窗口打开,终于找到了原因,因如下代码导致。 代码如下:
雨落凋殇
2019/12/25
2.7K0
QQ打开链接跳转浏览器代码
QQ打开链接跳转浏览器代码:自动识别是否为QQ内打开,如是将自动跳转浏览器,也可复制网址自己打开,复制下方代码加入到你的页面中就可实现。 目的是为了防止QQ拦截;如有帮助到你,请记得收藏
云计算小黑
2022/12/28
3K0
python打开网页链接_怎么用python打开浏览器
以下为一个最简单的HTTP服务器,在浏览器中输入地址后,就能够访问到通目录下的HTML文件, 实现效果:
全栈程序员站长
2022/09/21
4.2K0
python打开网页链接_怎么用python打开浏览器
手机QQ链接跳转到浏览器打开
关于网址跳转到浏览器打开那些事。前天看见群里有人发出一个网址,点击进去网页就自动跳转到手机默认的浏览器打开感觉还不错。于是给大家分享。放在公共的php文件里或者首页文件里面。目前支持跳转的好像只有co
杨逸轩
2018/06/14
7.2K7
在 Python 中使用 Selenium 打开链接
使用 Selenium 打开链接的最简单方法是使用 WebDriver 对象的 get() 方法。此方法指示浏览器导航到指定的 URL。
很酷的站长
2023/08/11
7940
在 Python 中使用 Selenium 打开链接
chrome浏览器多开_双开软件默认打开软件更改
反反调试 HandleCount清0 PointCount清0 Name替换 HandleTableEntry清0
全栈程序员站长
2022/11/09
1.1K0
修改Unity中Lua文件的默认打开程序
项目中引用了XLua,而Lua文件又是以txt文件结尾的,当修改系统的扩展脚本编辑器为vs后双击lua文件(xx.txt)默认也使用vs打开了,无提示的黑白文本编辑
meteoric
2018/11/20
2.8K0
修改Unity中Lua文件的默认打开程序
浏览器怎么打开微信客户端连接服务器,微信“请在微信客户端打开链接”怎么办?-在浏览器中打开微信链接的方法 – 河东软件园…「建议收藏」
自从出现了电脑版的微信之后,很多用户都会在电脑中下载安装一个客户端,可就是电脑客户端中打开链接也会出错!微信中有的时候朋友或是公众号会发送一些链接,若是使用电脑单击打开就会被提示“请在微信客户端打开链接”,可是自己使用的就是电脑客户端,并且更换浏览器也不能解决这个现象,这是怎么一回事呢?因为在微信中是自动设置了使用默认浏览器打开的,无法识别的时候自然就不能打开了,我们可以在微信中直接将这个功能关闭!
全栈程序员站长
2022/09/06
7.7K0
浏览器怎么打开微信客户端连接服务器,微信“请在微信客户端打开链接”怎么办?-在浏览器中打开微信链接的方法 – 河东软件园…「建议收藏」
注意A链接的默认行为
无意间访问一家上市公司网站做的一个活动页,进去后会出现蒙板,让访客登录,右上角有一个关闭按钮。
meteoric
2018/11/16
5860
JavaScript判断浏览器内核,微信打开自动提示在浏览器打开
微信会屏蔽 URL 自定义的 scheme ,导致无法跳转手机中的浏览器。网上有一些工具类网站可以实现直接跳转浏览器,之后有机会我会整理一下。我们今天只讨论通过 JavaScript 判断是否在微信浏览器中打开,如果是则弹出提示,在浏览器中打开。
德顺
2019/11/19
4.3K0
pycharm中设置默认浏览器
我们用pycharm开发web项目的时候,是需要浏览器才能运行的,那么怎么设置默认浏览器呢?下面给大家分享一下!
小海怪的互联网
2020/10/18
2.2K0
Flutter--在浏览器打开URL
在使用Flutter开发的时候,希望在浏览器中打开URL,而在pub_env中已经存在url_launcher库可以实现该功能。
None_Ling
2021/11/24
2K0
Flutter--在浏览器打开URL
火狐浏览器单击链接总是在一个新的标签页打开的设置方法
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/113491.html原文链接:https://javaforall.cn
全栈程序员站长
2022/07/07
3.7K0
火狐浏览器单击链接总是在一个新的标签页打开的设置方法
使用 jQuery 在新窗口打开外部链接
我们一般都希望在新窗口打开外部链接,这样用户就不需要离开网站就能访问外部链接,但是如果每个外部链接都手工加上新窗口打开的属性(target="_blank")的话,会让人非常抓狂。使用 jQuery,我们只需要几行代码就能在新窗口中打开外部链接。
Denis
2023/04/15
2.7K0
PHP 获取指定 URL 页面中的所有链接
以下代码可以获取到指定 URL 页面中的所有链接,即所有 a 标签的 href 属性:
Z4
2020/04/22
7.7K0
QT软件开发: 打开系统默认浏览器搜索内容
使用代码一键打开系统默认浏览器,使用百度搜索想要内容,也可以打开百度翻译自动翻译内容,也可以打开CSDN搜索内容等。
DS小龙哥
2022/01/12
5600
QT软件开发: 打开系统默认浏览器搜索内容
flash中按钮添加链接打开网页
btn :按钮实例名; _blank:打开方式(新窗口打开) fn :函数名称;
2021/11/08
1.2K0

相似问题

在默认浏览器中打开所有超链接

35

Visual Basic web浏览器在默认浏览器中打开链接

14

如何从HTA在默认web浏览器中打开链接?

20

在web浏览器中打开链接

10

打开默认浏览器内的所有超链接。

26
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文