Commaide 在分析文件时被 OOM 杀死 [英] Commaide killed by OOM when analyzing a file
问题描述
当我尝试编辑我使用 10 个模块(主要是 Cro::HTTP )的文件并且在分析开始之后,逗号总是被 oom 杀死.我可以看到许多 raku 进程正在运行(为了分析?):
Comma is always killed by oom when I try to edit a file in which I use 10 modules (mainly Cro::HTTP ) and after the start of analysis. I can see that many raku process are running (in order to analyze?) :
日志:
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 进程数量的选项?
Is this a normal behavior? Is there an option to limit the number of parallel raku process ?
(我在一个带有 4GB 内存的小型虚拟机上工作).
(I work on a small Vm with 4GB of memory).
推荐答案
Comma 将调用选定的 Raku 编译器以从模块中获取符号.这应该在开始使用特定模块编辑文件时发生一次,然后被缓存(并且缓存作为一个整体贯穿整个项目).
It's expected that Comma will invoke the selected Raku compiler in order to obtain symbols from modules. That should take place once at the start of editing a file using a particular module and then be cached (and the caching is across the project as a whole).
除了产生的 rakudo
实例的数量之外,java
进程本身的内存使用量看起来有点偏高.也许值得让逗号开发人员看一看,并提供一些更详细的信息.值得注意的是,帮助菜单有一个收集日志和诊断数据".选项(它将提供一个可以发送给开发人员的 zip 文件,但请注意,它也可能包含有关您正在处理的项目的一些数据).任何其他有助于复制的信息(例如正在使用的模块列表)也很有用.
Aside from the number of rakudo
instances spawned, the memory usage of the java
process itself looks a bit on the high side. Probably it's worth asking the Comma developers to take a look at it, and providing some more detailed information. Of note, the Help menu has a "Collect Logs and Diagnostic Data" option (which will provide a zip file that can be sent to the developers, although note it may also include some data about the project you are working on). Any other information to aid reproduction (such as the list of modules being used) would also be useful.
这篇关于Commaide 在分析文件时被 OOM 杀死的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!