2013-08-21 94 views
0

我有一個在ubuntu 12.04上的hiphop vm上運行的wordpress。我的服務器可以正常工作大約一個小時,然後停止提供請求並超時。當我執行ps -aux | grep "hhvm"時,我可以看到hhvm進程仍在運行,但它沒有響應任何請求。無論如何,我可以調試這個?沒有錯誤出現在我的日誌文件中,所以我不知道該從何處出發。在hhvm中運行時有沒有什麼辦法可以調試你的php代碼?如何調試hhvm服務器

UPDATE:

我UPED線程從50到300和服務器持續了24小時,現在同樣的事情再次發生。從管理頁/檢查保健

輸出

{ 
    "load":240 
, "queued":0 
, "hhbc-roarena-capac":0 
, "tc-size":17473376 
, "tc-stubsize":12588591 
, "targetcache":37280 
, "units":223 
} 

和/stats.html是

{ 
    "stats": { 
    "pages": [ 
    ] 
    } 
} 

回答

0

這聽起來像有可能是在版本HHVM的,你是一個錯誤使用線程逐漸掛起的位置,直到沒有更多的工作線程可用於爲傳入的請求提供服務。

您可以通過使用gdb(通過鍵入「gdb -p $ PID」,其中$ PID是hhvm的進程ID)附加到進程來收集一些詳細信息,然後鍵入「thread apply all bt」以獲取所有堆棧跟蹤線程。如果您在https://github.com/facebook/hiphop-php/issues處打開github問題並提供所有線程的堆棧跟蹤,那麼來自HHVM團隊的人員應該回應並幫助深入瞭解問題。您提供的關於如何重現問題的詳細信息(例如,提供一個可重現問題的小型完整代碼示例),可能會發現並修復該錯誤的可能性更大。另外,如果您使用的是舊版本的HHVM,則可能會嘗試升級到較新的版本,因爲在過去幾個月中存在一些錯誤修復。我不知道是否有線程卡住的錯誤修復,但可能升級可能會解決您的問題。