为什么RStudio Server这么慢?
开发十年,就只剩下这套Java开发体系了 >>>
鉴于某位朋友嫌文章发的太冷清,本着语不惊人死不休的精神,今天这篇文章就是来拉仇恨的了,呵呵
今天发的这些东西肯定是片面的,不客观的!但为了让自己少掉坑,也为了解答吃瓜群众的疑惑,有些“真相”不吐不快,路见不平的朋友请高抬贵手,欢迎拔嘴相喷,修养高的朋友就权当看笑话吧。
用RStudio也有一段时间了,但真正开始使用RStudio Server版则只有半年多的时间,自从接触了这个Server版之后,就让我越来越羞愧,不管是工作上还是生活上越来越抬不起头!
为啥?难道是男人的难言之隐?哈哈,事情也没那么复杂,说起来就三个字:不痛快!说明白点,一句话:不能手起刀落,砍瓜切菜般解决问题了!作为一个老司机,这怎么能忍?
这个RStudio Server真有说的这么恐怖?今天得空,就仔细的审视剖析了一番:
首先我们先数落一下RStudio Server的一些“罪状”:
1.资源耗尽时,直接崩溃,environment直接清空,完全不给你挽救的机会;
2.执行过程不透明,执行了N天最后憋出来一个崩溃,仅凭一点点事后残留的“JY”,完全不知道执行到哪出错了;
3.工作空间加载缓慢,有时候不小心关了浏览器,对不起,你想再进来,先在外面凉快凉快!
4.“工会”很“团结”,一旦罢工就是联合罢工,看着满屏的圈圈,心都凉了半截!
……
好了,说了这么多RStudio Server的缺点,那这些究竟是什么原因造成的呢?
所谓冰冻三尺非一日之寒,我在这里也给大家挖一挖RStudio Server的“寒毒”
1.RStudio Server的解决方案:
首先我们得从RStudio Server的使命说起,Server版的RStudio,最主要的任务就是能在web界面上执行R,那如何才能做到这一点呢?先看看RStudio Server的信息传递链:
RSession -> C++ -> Java -> WebSocket -> html+js
咋一看去,涉及到的环节还挺多的,看到骨子里,其实就三块:R+数据桥梁+web服务
2.分析原因:
用fiddler抓包看了看RStudio Server的通讯过程,其中就包含了许多rpc请求
1. web界面上的js会向Java发送一个rpc请求,Java如果处理不过来,该请求就会阻塞,直至超时;
2. web界面判断未完成的任务,还会定期发送rpc/event作为心跳,与Java保持沟通;
3.RSession执行完后返回给c++,c++通过event通知Java,Java等待下次rpc/event时就会将结果呈现到web界面;
搞清除了RStudio工作的大致流程,我们可以看出,RStudio目前的架构很糟糕,不适合大规模并发请求,对时间要求很高很频繁的互动性操作恐怕也不太胜任。本来想针对RStudio的问题做一些优化工作,但看到基本盘是这样的,优化的动力瞬间没了。
这种架构本身就是具有高度阻塞风险的,所以如果一旦RStudio Server界面卡顿,有以下几项措施可以尝试下:
1.多刷新几次(千万不要整体刷新,局部刷新界面上的模块就好了),有可能Java Web阻塞了界面中的某项请求,刷新一下就能出来;
2.RSession可能执行死掉了,重启RSession,或者直接到服务器上kill掉RSession;
对RStudio Server的建议:
1.采用无阻塞的异步式架构,不一定非要用Java web技术,可以用nodejs等,这样不必等待某个卡住的模块,其他模块照样能正常提供服务;
2.整个界面都是由rpc请求完成,这是不太合适的,完全可以把一部分不会变化的html和js框架部分由简单的http服务器完成,这样即使rpc服务超时了,至少始终还有部分功能是能使用的;
好了,黑了这么多,总而言之,RStudio还是一款很优秀的R集成开发环境,
俗话说的好,工具是死的,人是活的,就看你怎么用。
但我还是要最后黑一句:你把Server版做好一点能死人吗?屌丝可没功夫琢磨怎么用好你,计算交给你,时间留给妹子和娃 ;-)
为什么RStudio Server这么慢?相关推荐
- r语言 服务器网页版ide RStudio Server 简介
目录 介绍 安装R 安装RStudio Server 创建账号 开始使用 注意事项 无法打开登录页 多用户使用 服务卡死 端口占用 外网使用 终端工具推荐 RStudio Server是网页版的RSt ...
- R︱Linux+Rstudio Server尝鲜笔记(打造最佳Rstudio体验+报错的解决方案)
Rstudio Server 是Rstudio开发的基于R语言的网页版(只能在Linux),你在手机上都可以运行R,还是挺方便的.就是配置起来有点麻烦. 官方下载链接:https://ww ...
- 网页版Rstudio︱RStudio Server多人在线协作开发
网页版Rstudio︱RStudio Server多人在线协作开发 想了解一下RStudio Server,太给力的应用,可以说成是代码分布式运行,可以节省时间,放大空间. RStudio是一个非常优 ...
- 华为云服务部署Rstudio Server
0. 系统配置 linux版本ubuntu20.0.4LTS 华为云服务器HECS 2核4G 1M,带宽有点拉 1 下载,安装详见官网 Download RStudio Server for Debi ...
- 安装Rstudio Desktop和Rstudio Server免费版本
Rstudio Desktop 和 Rstudio Server安装 之前一直想要配置Rstudio-server,当时可能未下载正确的rstudio版本,所以未能配置成功. 今天无意发现我的ubun ...
- 云服务器上安装 R语言 以及 RStudio Server 详细图文操作(全)
目录 前言 1. 更换镜像源 2. 安装R 2.1 R包版本(最新) 3. 安装RStudio Server 4. 后续细节 4.1 关闭防火墙 4.2 入口规则(端口) 4.3 增加用户 5. 验证 ...
- linux服务器上装r,linux服务器安装R语言及Rstudio server
在linux服务器上使用R语言及Rstudio server cat /etc/redhat-release: 查看服务器系统版本 1. R 程序包获取 查看最新版本的下载链接,使用wget获取 wg ...
- Ubuntu 20.04 服务器安装 R / RStudio / RStudio Server
记录:笔者是一名计算机菜鸟,但是最近在一位同济老师的指导下进行一个生信相关的项目(单细胞水平的基因表型分类相关),原本是在本地的电脑上进行,但复现一篇NC上的文章代码,发现一个case竟然吃那么大的 ...
- 在Ubuntu 16.04中安装RStudio Server
由于Rstudio server老是白屏,于是打算卸载重装了,卸载命令如下: sudo apt-get remove --purge rstudio-server 再重新安装最新版本的rstudio ...
最新文章
- 使用计算机的好处,电脑的好处
- c bitset get_Java BitSet get()方法与示例
- 内核程序员的职位面试技巧
- linux安装JDK环境,JDK6.0即java 1.6.0
- html text align属性,CSS中的text-align属性怎么用
- 三维点云学习(4)5-ransac
- 毕业之际,个人学习感言和收获
- java oracle连接数据库_Java 连接 Oracle 数据库
- 黑龙江职业学院校赛第二场题解
- 生成和解析二维码(zxing)
- C++ map, 运用map统计单词出现的次数
- [f]class获取元素函数
- 大数据计算服务MaxCompute
- 蓝桥杯2019B组 C++
- 一款精简的webshell管理工具 -- Assassin
- 【JS】1007- JavaScript实现网页截屏的5种方法
- 在codecademy上学习Python
- oracle数据库无法查询,【案例】Oracle报错ORA-01194 ORA-01110 由于数据库SCN不一致导致无法启动...
- 【将金令】1.19晚评:欧版QE箭在弦上,破高有望
- 嵌入式硬盘录像机与视频采集卡的不同
热门文章
- numpy中的一些常见函数
- 普通人CV领域论文创新常见思路与方向总结
- VINS-Mono(经典论文阅读)
- Neural-RGBD: 从单目视频序列中估计深度及其不确定度
- HTML复选框和提交按钮组合设置
- [错误收录] the pyflakes.vim plugin requires Vim to be compiled with +python
- 决策树算法(二)——构建数据集
- txt 导入 mysql python_Python导入txt数据到mysql的方法
- 9文一览:近期必读微生物组生信论文
- IJMS:牧医所奶业创新团队在瘤胃微生物新型脲酶抑制剂开发方面取得新进展