Rstudio Server 启动时卡死
在使用 linux 服务器版 RstudioServer 的过程中,发现出现了一个问题,导致没有办法正常载入工作页面,网页提示信息是“R is taking longer to start than usual”,直接翻译过来就是“这次启动 R 会比平常更久一点儿”。
下方有三个选项,分别是 reload、safe mode、terminate R,但是点任何一个键都无法解决,这种启动时卡死的状态如何解决呢?
解决方法
-
删除上一次会话的session文件
打开 SSH 连接服务器,进入家目录~
,然后按以下步骤运行:
######## 删除上次的session文件#######
# 先通过 cd ~/.rstudio/sessions/ 判断是否存在
# 再通过rm -rf命令删除上次的sessions
# rm -rf ~/.rstudio/sessions/*
rm -rf ~/.local/share/rstudio/sessions/*
由于不同系统的差异,存放Rstudio session的目录可能有两个,选择正确的即可,如果是centos 7.9系统一般是在这个目录:~/.local/share/rstudio/sessions/
-
删除R session进程
输入以下命令查询PID进程编号:
rstudio-server active-sessions
返回信息中第一列的PID是进程编号,如果有多个用户的话需要选择自己账户对应的PID。 然后运行以下命令删除进程,注意[PID]是刚刚查到的那个值,比如上图中的5631,需要根据实际情况而定。
rstudio-server kill-session [PID]
-
重新打开Rstudio server网页
此时恢复正常,能够正常登录。
原因解释
可能是由于上一次关闭服务器时,环境中还有很多变量没有保存也没有清除,直接通过关闭浏览器的方式退出,这样做会导致系统自动将环境内的数据写入到当前用户家目录下session文件夹保存。
当用户下一次登录时,系统会自动读取session中的文件,并加载到环境中,正常来说这个功能非常好,能保证工作状态记忆同步。
但是当某次用户读入了非常多的数据,环境变量占用的内存很高,此时这个读写和载入过程会变得很漫长,而且有可能卡死,这就造成了文章开头那种情况。
有没有使用技巧能避免卡死?
分析大数据过程中(内存占用量超过5G以上),每次想要退出Rstudioserver时,先将当前的环境中变量都保存为Rdata,然后运行gc()
回收内存,然后再关闭浏览器。下次启动时直接加载Rdata即可恢复变量。
另外,养成良好的编程习惯,对垃圾内存进行回收,避免长期占用。
行文至此,希望今天分享的内容能对你有所帮助,如果觉得有用请收藏转发,感谢支持。
参考资料
https://blog.csdn.net/qq_42458954/article/details/131592927
https://www.jianshu.com/p/e0bde67d3836
https://www.jianshu.com/p/5015eca04d26
本文由 mdnice 多平台发布