2014-07-08 48 views
2

假設我有一個Heroku應用程序隨時間或不同用戶部署到各種不同尺寸的dynos。我怎樣才能可靠地確定應用程序運行的大小dyno?我知道$DYNO會告訴我進程名稱是什麼(例如web.123worker.456),但Heroku環境變量中沒有一個表明這是256MB 1X,1024MB 2X還是6GB PX dyno。在運行時以編程方式檢測Heroku大小尺寸?

回答

1

Heroku的支持提供了這個答案,他們拒絕記錄,因爲這是一個黑客,他們打算在未來提供一個合理的解決方案。

要做到這一點,唯一的方法是掏腰包並致電ulimit -u以獲取最大任務數。 1X dynos爲256,2X爲512,PX爲MAX_SUPPORTED_BY_LINUX。

擊例如:

function dyno_size() { 
    case $(ulimit -u) in 
    256) 
     echo "1X" 
     ;; 
    512) 
     echo "2X" 
     ;; 
    32768) 
     echo "PX" 
     ;; 
    *) 
     echo "unknown" 
     ;; 
    esac 
} 
相關問題