2015-10-05 54 views
2

我們的問題開始02/Sep/2015 17:46(巴黎時間),目前仍然存在問題。 我們有2個應用程序:一個用於測試和開發,另一個用於生產。問題出在生產應用中。非常漫長,只爲我的模塊之一

  1. 已經有5天沒有修改生產應用程序中的代碼,但是最後一個星期五下午突然變得非常長。最早的時間是100〜300ms之前,但是從那一刻開始變成了30s,並且滿足了所有的要求!

  2. 我們使用的測試應用程序相同的代碼,但都爲這個應用程序很好地工作。

  3. 我們在生產中的應用幾個模塊,並且只有一個模塊都有這個問題,所有其他mudules工作。

  4. 週末期間,我們做了一些測試,但仍然無法找到原因。 對於爲例,這裏的代碼:

    package app 
    
    import (
        "net/http" 
    ) 
    
    func init() { 
        http.HandleFunc("/", HandlerHeartBeat) 
    } 
    
    func HandlerHeartBeat(w http.ResponseWriter, r *http.Request) { 
        w.WriteHeader(202) 
    } 
    

當我部署此代碼在生產中的應用有問題的模塊時,潛伏期爲2秒。然後我嘗試將它部署到有問題的模塊中的另一個版本,這個延遲總是很長。 但是,如果將此代碼部署到生產應用程序中的其他模塊(或者只是創建一個新模塊),我會得到正常的延遲(〜50ms)。

  • 我們的配置文件是非常簡單的:

    application: APP_NAME 
    module: MODULE_NAME 
    version: 1 
    runtime: go 
    api_version: go1 
    
    handlers: 
    - url: /.* 
        script: _go_app 
    
  • 我不知道是否有其他人達到了同樣的問題和我一樣。謝謝

    回答

    1

    這是非常可能的原因是谷歌的基礎設施,服務有問題的模塊的問題。

    也許它計算某些哈希代碼的模塊,並且嘗試如果可能這樣的應用程序代碼在(虛擬)機水平如果可能緩存在同一臺機器上實例化同一模塊的一個實例。如果該機器出現問題(,例如硬件),則會導致您的應用程序延遲增加。

    我會建議:

    1. 代碼部署到新的模塊,並使用它(如果可能的話),同時保持舊的故障排除。
    2. 狹窄的用例(ping的基本功能)&對Google提出了一個問題。