2016-04-14 25 views
1

我有一個非常小的lambda函數,其唯一目的是從Segment.io接收webhook並通過HSET將用戶ID和時間戳添加到Redis哈希。簡單連接到redis的Lambda函數超時

這個過程是合理的量,每分鐘100-200個請求。然而,由於某種原因,我觀察到許多HSET請求超出了我在Lambda函數上設置的5秒限制。

image

我使用的Heroku Redis的自由層。我迷上了Redis的監控,這是所有我看到:

Redis

因此,它似乎並不像Redis的是時機了,但更多的是拉姆達有一個問題,或者由於某種原因不能LAMBDA不會與Redis建立連接並超時—,但我不確定。

這是怎麼回事?這是Heroku Redis的一個已知問題,我應該嘗試其他方法嗎?我希望使用Heroku Redis的原因是我使用Heroku Links(外部數據包裝器),但我也可以使用外部Redis實例設置FDW。

更新: 我試着動這一關拉姆達到一個單獨的microService服務器(Heroku的服務,要一致)。我看到了重複超時的完全相同的問題,Redis沒有緩慢操作的記錄。向服務器添加New Relic僅顯示出令人難以置信的指標 - 就New Relic而言,每個請求在5ms內完成,這意味着超時在應用程序之前發生。這是否可能發生在路由層?或者,對我來說(難以置信的是)節點以某種方式不能縮放到每秒這個數量的請求?

+0

散列的大小,多少個密鑰? – Niloct

+0

它有所不同,但我每10分鐘清除一次,所以不會很大。現在它有2個鍵,我仍然看到超時。 – jdotjdot

+0

免費套餐上的連接限制爲20.嘗試將您的實例升級幾分鐘,然後再次運行您的基準測試。 – Niloct

回答

0

這只是我們部分的一個愚蠢的錯誤—服務器在某些情況下沒有返回客戶端響應,因此超時。

相關問題