很长的时间只适用于我的一个模块

时间:2015-10-05 10:09:10

标签: google-app-engine go

我们的问题始于2015年9月2日17:46(巴黎时间),目前仍有问题。 我们有2个应用程序:一个用于测试和开发,另一个用于生产。问题出在生产应用程序中。

  1. 有5天我们没有修改生产应用程序中的代码,但突然间,上周五下午的时间变得非常长。之前的时间是100~300毫秒,但从那一刻开始变为30秒,并且满足所有要求!

  2. 我们对测试应用程序使用相同的代码,但所有这些代码都适用于此应用程序。

  3. 我们在生产应用程序中有几个模块,只有一个模块有这个问题,所有其他模块都运行良好。

  4. 在周末期间,我们进行了一些测试,但仍然无法找到原因。 例如,代码在这里:

    0
  5. 当我将此代码部署到生产应用程序中的有问题的模块时,则为2秒。然后我尝试将它部署到有问题的模块中的另一个版本,这种情况总是很长。 但是如果将此代码部署到生产应用程序中的其他模块(或者只是创建一个新模块),我会得到正常的延迟(~50ms)。

    1. 我们的配置文件非常简单:

      package app
      
      import (
          "net/http"
      )
      
      func init() {
          http.HandleFunc("/", HandlerHeartBeat)
      }
      
      func HandlerHeartBeat(w http.ResponseWriter, r *http.Request) {
          w.WriteHeader(202)
      }
      
    2. 我不知道是否有其他人遇到像我这样的问题。谢谢

1 个答案:

答案 0 :(得分:1)

Google基础架构很可能存在问题模块的问题。

可能它会为模块计算一些哈希码,并尝试在同一台机器上实例化同一模块的实例,以便在可能的情况下将应用程序代码缓存在(虚拟)机器级别上。如果该计算机出现问题(例如使用硬件),则会导致应用程序延迟增加。

我建议:

  1. 将代码部署到新模块并使用它(,如果可能),同时保持旧故障以进行故障排除。
  2. 缩小用例(ping等基本功能)&向Google提出问题。