我有一个Node.js应用程序,当应用程序启动时,它会将一些数据从Mysql加载到Redis中。在我们修改Mysql中的数据之前,它一直工作得很好。现在它只是退出一个Killed消息。我试图找出问题,但很难调试使用节点检查器,因为问题不会出现时,运行在--debug。我不认为我的问题在于数据本身,因为它在我的本地机器上工作,但在我的生产机器上不工作。我的问题是,是什么导致了Killed消息?它是Node.js还是Mysql驱动程序或其他地方?
Killed
ut6juiuv1#
检查您的系统日志,查看有关Node被杀死的消息。您的Node应用程序可能会使用过多的内存,并被Out-Of-Memory killer杀死。
r55awzrz2#
不确定Redis是否是导致Killed消息的原因,但这是我的问题的原因。我发送了很多数据到multi,因为我最初认为这是使用流水线的方式(这是自动的)。
rekjcdws3#
我使用Docker、Node、Express和Prisma。这是在笑话测试中发生的。通常情况下,使用node --max-old-space-size=4096 jest --runInBand时,增加内存是有帮助的。然而,我已经将.wslconfig中的内存设置为4GB(试图修复一个不同的问题),所以它无法使用max-old-space-size中提到的额外内存。我将它设置回6GB并重新启动Docker。这解决了Killed问题。
node --max-old-space-size=4096 jest --runInBand
.wslconfig
max-old-space-size
3条答案
按热度按时间ut6juiuv1#
检查您的系统日志,查看有关Node被杀死的消息。您的Node应用程序可能会使用过多的内存,并被Out-Of-Memory killer杀死。
r55awzrz2#
不确定Redis是否是导致Killed消息的原因,但这是我的问题的原因。
我发送了很多数据到multi,因为我最初认为这是使用流水线的方式(这是自动的)。
rekjcdws3#
我使用Docker、Node、Express和Prisma。这是在笑话测试中发生的。通常情况下,使用
node --max-old-space-size=4096 jest --runInBand
时,增加内存是有帮助的。然而,我已经将.wslconfig
中的内存设置为4GB(试图修复一个不同的问题),所以它无法使用max-old-space-size
中提到的额外内存。我将它设置回6GB并重新启动Docker。这解决了Killed
问题。