我遇到了一个我以前从未遇到过的Rails的奇怪问题。我使用Mongoid将Rails 5应用程序放到Google Compute Engine上以使用该平台,我正在进行一些负载测试。我使用了siege和我制作的自定义脚本发送请求,等待响应,然后发送另一个请求,永远循环。我的脚本可在此处找到:https://gist.github.com/welkie/bf3efa62bab2194d4b679c1f69957d2a
围攻测试在50次交易中始终失败1-4次,我的脚本在运行约20-100个请求响应周期后返回500响应。 Rails的调试日志有一个分段错误。这里有大量错误消息:https://gist.github.com/welkie/e200760852917c68cc9de650362618d3
我认为这是一个内存或CPU问题所以我尝试了一个高CPU GCE实例,但问题仍然存在。然后我认为这是一个GCP问题所以我把同一个应用程序扔到了AWS上,我得到了完全相同的行为。
以前有人遇到过这个吗?
更新
我已经在我的本地计算机上执行了测试,并且我没有在本地遇到此问题。我也在本地使用Docker来模仿我的设置。我只在AWS和GCP上遇到过它。
更新
我现在还在GCP上进行了另一次测试,但这次没有Docker,这次我没有得到任何段错误。它还在使用Puma。在这一点上,我能指出的唯一组合是在云主机上使用Puma和Docker。