在Ubuntu 20.04LTS上,Rstudio服务器和RstudioDesktop之间的r-Cstack_info(



在运行代码时,我很难摆脱CStack限制。我设法通过附加来消除这个错误

* hard stack unlimited
* soft stack unlimited
* soft memlock unlimited
* hard memlock unlimited
root soft stack unlimited
root hard stack unlimited
root soft memlock unlimited
root hard memlock unlimited

CCD_ 1修复了RStudio Desktop上的问题。

运行Cstack_info((得到以下输出

> Cstack_info()
size    current  direction eval_depth 
NA         NA          1          2 

这是桌面终端上ulimit -s的输出

coolshades@coolshades-ws:~$ ulimit -s
unlimited

代码在RStudio Desktop上完美运行。

同一台机器上,我还运行RStudio服务器(免费(远程运行代码。在运行RStudio Server时,这些设置似乎不会一直存在。

这是RStudio服务器上Cstack_info((的输出

> Cstack_info()
size    current  direction eval_depth 
7969177      26336          1          2 

这是RStudio服务器上终端的ulimit输出

coolshades@coolshades-ws:~$ ulimit -s
8192

我可以使用ulimit -s unlimited将限制更改回无限制。但它只有在Rsession重新启动后才会生效。然而,当我重新启动R会话时,ulimit -s的输出返回到8192。

我不知道如何最好地解决这个问题,希望一个更有经验的RStudio服务器用户能够就此事提供建议。

我已经解决了这个问题。

我不得不对以下文件进行以下更改:

sudo nano /etc/systemd/user.conf添加DefaultLimitSTACK=134217728

sudo nano /etc/systemd/system.conf添加DefaultLimitSTACK=134217728

确保你定义的数字是2的幂,否则Ubuntu会因为某种原因无法登录。

我有128GB的RAM。所以我把我的限制设置为2^27。

希望这能帮助到有同样问题的人。

DefaultLimitSTACK=134217728似乎得到了128MB的RAM,而不是128GB的RAM,如R中的系统("ulimit-s"(所示。DefaultLimit斯塔克似乎以字节为输入单位。

然而,DefaultLimitSTACK的更改是更改R studio服务器c堆栈使用限制的关键。

不要忘记重新启动计算机,因为更改是系统级别,而不是用户级别或Rstudio服务器级别。

最新更新