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