【问题标题】:Commaide killed by OOM when analyzing a filecommaide 在分析文件时被 OOM 杀死
【发布时间】:2021-01-09 18:57:40
【问题描述】:

当我尝试编辑一个使用 10 个模块(主要是 Cro::HTTP )的文件时以及在分析开始后,逗号总是被 oom 杀死。我可以看到许多 raku 进程正在运行(为了分析?):

journalctl:

janv. 09 19:47:42 samuel-Virtual-Machine kernel: [   4722]  1000  4722      654       29    40960        0             0 comma.sh
janv. 09 19:47:42 samuel-Virtual-Machine kernel: [   4771]  1000  4771  1085318   155576  1949696        0             0 java
janv. 09 19:47:42 samuel-Virtual-Machine kernel: [   4825]  1000  4825      783       35    40960        0             0 fsnotifier64
janv. 09 19:47:42 samuel-Virtual-Machine kernel: [   5036]  1000  5036    52039    24008   364544        0             0 rakudo
janv. 09 19:47:42 samuel-Virtual-Machine kernel: [   5038]  1000  5038    51119    25114   372736        0             0 rakudo
janv. 09 19:47:42 samuel-Virtual-Machine kernel: [   5039]  1000  5039    52391    23805   368640        0             0 rakudo
janv. 09 19:47:42 samuel-Virtual-Machine kernel: [   5047]  1000  5047    51473    22787   352256        0             0 rakudo
janv. 09 19:47:42 samuel-Virtual-Machine kernel: [   5049]  1000  5049    51129    22929   356352        0             0 rakudo
janv. 09 19:47:42 samuel-Virtual-Machine kernel: [   5050]  1000  5050    49796    21981   348160        0             0 rakudo
janv. 09 19:47:42 samuel-Virtual-Machine kernel: [   5052]  1000  5052    50929    25154   368640        0             0 rakudo
janv. 09 19:47:42 samuel-Virtual-Machine kernel: [   5057]  1000  5057    52078    23535   364544        0             0 rakudo
janv. 09 19:47:42 samuel-Virtual-Machine kernel: [   5066]  1000  5066    51071    22735   348160        0             0 rakudo
janv. 09 19:47:42 samuel-Virtual-Machine kernel: [   5075]  1000  5075    51254    22555   356352        0             0 rakudo
janv. 09 19:47:42 samuel-Virtual-Machine kernel: [   5081]  1000  5081    49423    21271   335872        0             0 rakudo
janv. 09 19:47:42 samuel-Virtual-Machine kernel: [   5093]  1000  5093    49375    21590   344064        0             0 rakudo
janv. 09 19:47:42 samuel-Virtual-Machine kernel: [   5100]  1000  5100    50784    22763   352256        0             0 rakudo
janv. 09 19:47:42 samuel-Virtual-Machine kernel: [   5104]  1000  5104    49360    21141   335872        0             0 rakudo
janv. 09 19:47:42 samuel-Virtual-Machine kernel: [   5115]  1000  5115    46338    14169   282624        0             0 rakudo
janv. 09 19:47:42 samuel-Virtual-Machine kernel: oom-kill:constraint=CONSTRAINT_NONE,nodemask=(null),cpuset=/,mems_allowed=0,global_oom,task_memcg=/user.slice/user-1000.slice/user@1000.service,task=java,pid=4771,uid=1000
janv. 09 19:47:42 samuel-Virtual-Machine kernel: Out of memory: Killed process 4771 (java) total-vm:4341272kB, anon-rss:622236kB, file-rss:0kB, shmem-rss:68kB, UID:1000 pgtables:1904kB oom_score_adj:0
janv. 09 19:47:42 samuel-Virtual-Machine kernel: oom_reaper: reaped process 4771 (java), now anon-rss:0kB, file-rss:0kB, shmem-rss:68kB

这是正常行为吗?是否有限制并行 raku 进程数量的选项?

(我在一个 4GB 内存的小型虚拟机上工作)。

【问题讨论】:

  • 嗯,正如您在错误消息中看到的那样,它显示为Out of memory。它正在乞求更多,就在那里。

标签: raku commaide


【解决方案1】:

预计 Comma 将调用选定的 Raku 编译器以从模块中获取符号。这应该在开始使用特定模块编辑文件时发生一次,然后被缓存(并且缓存是整个项目的)。

除了产生的rakudo 实例的数量之外,java 进程本身的内存使用量看起来有点偏高。可能值得让 Comma 开发人员看看它,并提供一些更详细的信息。值得注意的是,帮助菜单有一个“收集日志和诊断数据”选项(它将提供一个可以发送给开发人员的 zip 文件,但请注意,它还可能包含有关您正在处理的项目的一些数据)。任何其他有助于复制的信息(例如正在使用的模块列表)也很有用。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-25
    • 2019-01-30
    • 2011-11-03
    • 1970-01-01
    • 2022-07-11
    • 2016-10-18
    相关资源
    最近更新 更多